diff options
| author | mitermayer <mitermayer.reis@gmail.com> | 2019-09-14 05:17:33 +0000 |
|---|---|---|
| committer | mitermayer <mitermayer.reis@gmail.com> | 2019-09-14 05:17:33 +0000 |
| commit | 87f217f953b64103e8bef48980c0f002aa0f00c7 (patch) | |
| tree | 86e67592b6ba6918fe1f51a343877bb9048abee1 /autoload | |
| parent | cacdf22fdeef9998d304be2e6330d14b4cd1d3d7 (diff) | |
| download | vim-prettier-87f217f953b64103e8bef48980c0f002aa0f00c7.tar.xz | |
issues/184-fixing-undo-step - Fixing undo step
- in order to bypass vimdefaults we can fake a change prior to
formatting and merging that back to undostack operation
Diffstat (limited to 'autoload')
| -rw-r--r-- | autoload/prettier/utils/buffer.vim | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/autoload/prettier/utils/buffer.vim b/autoload/prettier/utils/buffer.vim index d09c568..821abda 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,6 +29,7 @@ function! prettier#utils#buffer#replace(lines, startSelection, endSelection) abo " Restore view call winrestview(l:winview) + endfunction " Replace and save the buffer |
