aboutsummaryrefslogtreecommitdiff
path: root/autoload/prettier/utils/buffer.vim
diff options
context:
space:
mode:
Diffstat (limited to 'autoload/prettier/utils/buffer.vim')
-rw-r--r--autoload/prettier/utils/buffer.vim9
1 files changed, 8 insertions, 1 deletions
diff --git a/autoload/prettier/utils/buffer.vim b/autoload/prettier/utils/buffer.vim
index c22fec7..7bc7ab1 100644
--- a/autoload/prettier/utils/buffer.vim
+++ b/autoload/prettier/utils/buffer.vim
@@ -8,6 +8,12 @@ function! prettier#utils#buffer#replace(lines, startSelection, endSelection) abo
return
endif
+ " https://vim.fandom.com/wiki/Restore_the_cursor_position_after_undoing_text_change_made_by_a_script
+ " create a fake change entry and merge with undo stack prior to do formating
+ normal! ix
+ normal! x
+ try | silent undojoin | catch | endtry
+
" delete all lines on the current buffer
silent! execute '%delete _'
@@ -23,12 +29,13 @@ function! prettier#utils#buffer#replace(lines, startSelection, endSelection) abo
" Restore view
call winrestview(l:winview)
+
endfunction
" Replace and save the buffer
function! prettier#utils#buffer#replaceAndSave(lines, startSelection, endSelection) abort
call prettier#utils#buffer#replace(a:lines, a:startSelection, a:endSelection)
- write
+ noautocmd write
endfunction
" Returns 1 if content has changed