X-Git-Url: http://www.git.stargrave.org/?p=dotfiles.git;a=blobdiff_plain;f=vim%2F.vim%2Fautoload%2Ffmt.vim;h=0aafcbc0cbf265b4cf3cee5c6c205e9541cb9443;hp=5e7a001c5b4fdd2e4204d8e867de0226976673db;hb=1e761ea8af276caa2ff605cb4d7d0a63fac51a36;hpb=68ef15d382d0b6f10c6ad30a7370db57ed8318e9 diff --git a/vim/.vim/autoload/fmt.vim b/vim/.vim/autoload/fmt.vim index 5e7a001..0aafcbc 100644 --- a/vim/.vim/autoload/fmt.vim +++ b/vim/.vim/autoload/fmt.vim @@ -2,6 +2,22 @@ vim9script export def Do() var view = winsaveview() - normal gg=G + silent execute ":%!" .. &equalprg + if v:shell_error != 0 + var errs = [] + for line in getline(1, line("$")) + var cols = matchlist(line, '^.*:\(\d\+\):\(\d\+\):\s*\(.*\)$') + if empty(cols) | continue | endif + errs = add(errs, { + filename: @%, + lnum: str2nr(cols[1]), + col: str2nr(cols[2]), + text: cols[3], + }) + endfor + silent undo + if !empty(errs) | setqflist(errs, "r") | endif + echohl Error | echomsg "fmt error" | echohl None + endif winrestview(view) enddef