From: Sergey Matveev Date: Sat, 16 Jul 2022 12:01:26 +0000 (+0300) Subject: Take fmt errors into account X-Git-Url: http://www.git.stargrave.org/?p=dotfiles.git;a=commitdiff_plain;h=1e761ea8af276caa2ff605cb4d7d0a63fac51a36 Take fmt errors into account --- 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