Commit 3dc3fa0d authored by Paul Sbarra's avatar Paul Sbarra Committed by David Symonds

vim: Send GoFmt errors to a location list

R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/5043046
parent 76d82dbc
...@@ -17,12 +17,26 @@ command! -buffer Fmt call s:GoFormat() ...@@ -17,12 +17,26 @@ command! -buffer Fmt call s:GoFormat()
function! s:GoFormat() function! s:GoFormat()
let view = winsaveview() let view = winsaveview()
%!gofmt silent %!gofmt
if v:shell_error if v:shell_error
%| " output errors returned by gofmt let errors = []
" TODO(dchest): perhaps, errors should go to quickfix for line in getline(1, line('$'))
let tokens = matchlist(line, '^\(.\{-}\):\(\d\+\):\(\d\+\)\s*\(.*\)')
if !empty(tokens)
call add(errors, {"filename": @%,
\"lnum": tokens[2],
\"col": tokens[3],
\"text": tokens[4]})
endif
endfor
if empty(errors)
% | " Couldn't detect gofmt error format, output errors
endif
undo undo
echohl Error | echomsg "Gofmt returned error" | echohl None if !empty(errors)
call setloclist(0, errors, 'r')
endif
echohl Error | echomsg "Gofmt returned error" | echohl None
endif endif
call winrestview(view) call winrestview(view)
endfunction endfunction
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment