Skip to content

Commit 2bc9378

Browse files
authored
Merge pull request #207 from /issues/184-fixing-undo-step
Issues/184 fixing undo step
2 parents e98b108 + 46fd329 commit 2bc9378

3 files changed

Lines changed: 11 additions & 4 deletions

File tree

autoload/prettier/job/async/neovim.vim

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ function! s:onExit(status, info, out, err) abort
7373
try
7474
silent exec 'sp '. escape(bufname(a:info.buf_nr), ' \')
7575
call nvim_buf_set_lines(a:info.buf_nr, a:info.start, a:info.end, 0, l:out)
76-
write
76+
noautocmd write
7777
catch
7878
call prettier#logging#error#log('PARSING_ERROR')
7979
finally
@@ -91,7 +91,7 @@ function! s:onExit(status, info, out, err) abort
9191
" TODO
9292
" we should be auto saving in order to work similar to vim8
9393
call nvim_buf_set_lines(a:info.buf_nr, a:info.start, a:info.end, 0, l:out)
94-
write
94+
noautocmd write
9595
endif
9696

9797
let s:prettier_job_running = 0

autoload/prettier/utils/buffer.vim

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,12 @@ function! prettier#utils#buffer#replace(lines, startSelection, endSelection) abo
88
return
99
endif
1010

11+
" https://vim.fandom.com/wiki/Restore_the_cursor_position_after_undoing_text_change_made_by_a_script
12+
" create a fake change entry and merge with undo stack prior to do formating
13+
normal! ix
14+
normal! x
15+
try | silent undojoin | catch | endtry
16+
1117
" delete all lines on the current buffer
1218
silent! execute '%delete _'
1319

@@ -23,12 +29,13 @@ function! prettier#utils#buffer#replace(lines, startSelection, endSelection) abo
2329

2430
" Restore view
2531
call winrestview(l:winview)
32+
2633
endfunction
2734

2835
" Replace and save the buffer
2936
function! prettier#utils#buffer#replaceAndSave(lines, startSelection, endSelection) abort
3037
call prettier#utils#buffer#replace(a:lines, a:startSelection, a:endSelection)
31-
write
38+
noautocmd write
3239
endfunction
3340

3441
" Returns 1 if content has changed

plugin/prettier.vim

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,6 @@ nnoremap <silent> <Plug>(PrettierCliPath) :PrettierCliPath<CR>
140140
augroup Prettier
141141
autocmd!
142142
if g:prettier#autoformat
143-
autocmd BufWritePre *.js,*.jsx,*.mjs,*.ts,*.tsx,*.css,*.less,*.scss,*.json,*.graphql,*.md,*.vue,*.yaml,*.html call prettier#Autoformat()
143+
autocmd BufWritePre *.js,*.jsx,*.mjs,*.ts,*.tsx,*.css,*.less,*.scss,*.json,*.graphql,*.md,*.vue,*.yaml,*.html noautocmd | call prettier#Autoformat()
144144
endif
145145
augroup end

0 commit comments

Comments
 (0)