From f00f52be343291998bbba272c425741083c5633c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kim=20=E9=87=91=E5=8F=AF=E6=98=8E?= Date: Sun, 13 Aug 2023 09:37:25 +0200 Subject: [PATCH] fix: use writefile() rather than %!tree command (resolves #309) --- autoload/doge.vim | 2 +- test/undo-cursor-pos.vader | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 test/undo-cursor-pos.vader diff --git a/autoload/doge.vim b/autoload/doge.vim index dabda910..31ddf696 100644 --- a/autoload/doge.vim +++ b/autoload/doge.vim @@ -22,7 +22,7 @@ function! doge#run_parser() abort let l:current_line = l:cursor_pos[1] let l:tempfile = tempname() - keepjumps call execute('%!tee ' . l:tempfile, 'silent!') + keepjumps call writefile(getline(line('^'), line('$')), l:tempfile) let l:args = [ \ '--filepath', l:tempfile, diff --git a/test/undo-cursor-pos.vader b/test/undo-cursor-pos.vader new file mode 100644 index 00000000..d44cb0b3 --- /dev/null +++ b/test/undo-cursor-pos.vader @@ -0,0 +1,32 @@ +# ============================================================================== +# Make sure that pressing 'u' after generating a docblock doesn't jump to the +# top of the file. +# +# See https://github.com/kkoomen/vim-doge/issues/309 +# ============================================================================== +Given javascript(function): + function foo() { + // + } + + function bar() { + // + } + +Do (trigger doge): + :call cursor(5,8)\ + \ + u + +Expect javascript (no changes): + function foo() { + // + } + + function bar() { + // + } + +Then (the cursor should be at the same pos as before generating the comment): + AssertEqual 5, line('.') + AssertEqual 8, col('.')