X-Git-Url: http://www.git.stargrave.org/?p=dotfiles.git;a=blobdiff_plain;f=vim%2F.vim%2Fautoload%2Ffmt.vim;h=0ba912b5efbd56580ba58d92d4b861aefe087b98;hp=5e7a001c5b4fdd2e4204d8e867de0226976673db;hb=f0f5d759e21858dc6a50f88ce80cdec24493a52c;hpb=68ef15d382d0b6f10c6ad30a7370db57ed8318e9 diff --git a/vim/.vim/autoload/fmt.vim b/vim/.vim/autoload/fmt.vim index 5e7a001..0ba912b 100644 --- a/vim/.vim/autoload/fmt.vim +++ b/vim/.vim/autoload/fmt.vim @@ -1,7 +1,21 @@ vim9script export def Do() - var view = winsaveview() - normal gg=G - winrestview(view) + var lines = [] + job_start(&equalprg, { + in_io: "buffer", in_buf: bufnr("%"), + callback: (chan, msg) => { + lines = add(lines, msg) + }, + exit_cb: (job, status) => { + if status != 0 + cgetexpr lines + copen + return + endif + var view = winsaveview() + silent execute ":%!" .. &equalprg + winrestview(view) + } + }) enddef