summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Paxton <ben.paxton@headforwards.com>2018-03-20 14:19:48 +0000
committerBen Paxton <ben.paxton@headforwards.com>2018-03-20 14:19:48 +0000
commit6452c5e2f0aded3044a4263189f5b46c37409981 (patch)
tree31363ece819ed2530900cc5466253eb1660ed6d9
parent0cb3e3655419e80226e3738f94d514836a382b87 (diff)
downloadale-6452c5e2f0aded3044a4263189f5b46c37409981.zip
Use govet handler for gosimple, gotype, staticcheck
-rw-r--r--ale_linters/go/gosimple.vim2
-rw-r--r--ale_linters/go/gotype.vim2
-rw-r--r--ale_linters/go/govet.vim19
-rw-r--r--ale_linters/go/staticcheck.vim2
-rw-r--r--autoload/ale/handlers/go.vim25
-rw-r--r--test/handler/test_go_generic_handler.vader (renamed from test/handler/test_govet_handler.vader)10
6 files changed, 31 insertions, 29 deletions
diff --git a/ale_linters/go/gosimple.vim b/ale_linters/go/gosimple.vim
index 12ef3b94..dbdc3fcf 100644
--- a/ale_linters/go/gosimple.vim
+++ b/ale_linters/go/gosimple.vim
@@ -9,7 +9,7 @@ call ale#linter#Define('go', {
\ 'name': 'gosimple',
\ 'executable': 'gosimple',
\ 'command_callback': 'ale_linters#go#gosimple#GetCommand',
-\ 'callback': 'ale#handlers#unix#HandleAsWarning',
+\ 'callback': 'ale#handlers#go#Handler',
\ 'output_stream': 'both',
\ 'lint_file': 1,
\})
diff --git a/ale_linters/go/gotype.vim b/ale_linters/go/gotype.vim
index 82737e28..f4bb274e 100644
--- a/ale_linters/go/gotype.vim
+++ b/ale_linters/go/gotype.vim
@@ -15,6 +15,6 @@ call ale#linter#Define('go', {
\ 'output_stream': 'stderr',
\ 'executable': 'gotype',
\ 'command_callback': 'ale_linters#go#gotype#GetCommand',
-\ 'callback': 'ale#handlers#unix#HandleAsError',
+\ 'callback': 'ale#handlers#go#Handler',
\ 'lint_file': 1,
\})
diff --git a/ale_linters/go/govet.vim b/ale_linters/go/govet.vim
index aae5969d..edf9eb66 100644
--- a/ale_linters/go/govet.vim
+++ b/ale_linters/go/govet.vim
@@ -8,28 +8,11 @@ function! ale_linters#go#govet#GetCommand(buffer) abort
return ale#path#BufferCdString(a:buffer) . ' go vet .'
endfunction
-function! ale_linters#go#govet#Handler(buffer, lines) abort
- let l:pattern = '\v^([a-zA-Z]?:?[^:]+):(\d+):?(\d+)?:? ?(.+)$'
- let l:output = []
- let l:dir = expand('#' . a:buffer . ':p:h')
-
- for l:match in ale#util#GetMatches(a:lines, l:pattern)
- call add(l:output, {
- \ 'filename': ale#path#GetAbsPath(l:dir, l:match[1]),
- \ 'lnum': l:match[2] + 0,
- \ 'col': l:match[3] + 0,
- \ 'text': l:match[4],
- \ 'type': 'E',
- \})
- endfor
- return l:output
-endfunction
-
call ale#linter#Define('go', {
\ 'name': 'go vet',
\ 'output_stream': 'stderr',
\ 'executable': 'go',
\ 'command_callback': 'ale_linters#go#govet#GetCommand',
-\ 'callback': 'ale_linters#go#govet#Handler',
+\ 'callback': 'ale#handlers#go#Handler',
\ 'lint_file': 1,
\})
diff --git a/ale_linters/go/staticcheck.vim b/ale_linters/go/staticcheck.vim
index ce9e6e38..a3464015 100644
--- a/ale_linters/go/staticcheck.vim
+++ b/ale_linters/go/staticcheck.vim
@@ -27,7 +27,7 @@ call ale#linter#Define('go', {
\ 'name': 'staticcheck',
\ 'executable': 'staticcheck',
\ 'command_callback': 'ale_linters#go#staticcheck#GetCommand',
-\ 'callback': 'ale#handlers#unix#HandleAsWarning',
+\ 'callback': 'ale#handlers#go#Handler',
\ 'output_stream': 'both',
\ 'lint_file': 1,
\})
diff --git a/autoload/ale/handlers/go.vim b/autoload/ale/handlers/go.vim
new file mode 100644
index 00000000..224df664
--- /dev/null
+++ b/autoload/ale/handlers/go.vim
@@ -0,0 +1,25 @@
+" Author: neersighted <bjorn@neersighted.com>
+" Description: go vet for Go files
+"
+" Author: John Eikenberry <jae@zhar.net>
+" Description: updated to work with go1.10
+"
+" Author: Ben Paxton <ben@gn32.uk>
+" Description: moved to generic Golang file from govet
+
+function! ale#handlers#go#Handler(buffer, lines) abort
+ let l:pattern = '\v^([a-zA-Z]?:?[^:]+):(\d+):?(\d+)?:? ?(.+)$'
+ let l:output = []
+ let l:dir = expand('#' . a:buffer . ':p:h')
+
+ for l:match in ale#util#GetMatches(a:lines, l:pattern)
+ call add(l:output, {
+ \ 'filename': ale#path#GetAbsPath(l:dir, l:match[1]),
+ \ 'lnum': l:match[2] + 0,
+ \ 'col': l:match[3] + 0,
+ \ 'text': l:match[4],
+ \ 'type': 'E',
+ \})
+ endfor
+ return l:output
+endfunction
diff --git a/test/handler/test_govet_handler.vader b/test/handler/test_go_generic_handler.vader
index b4bfdc93..624e56c1 100644
--- a/test/handler/test_govet_handler.vader
+++ b/test/handler/test_go_generic_handler.vader
@@ -1,10 +1,4 @@
-Before:
- runtime ale_linters/go/govet.vim
-
-After:
- call ale#linter#Reset()
-
-Execute(The govet handler should return the correct filenames):
+Execute(The golang handler should return the correct filenames):
AssertEqual
\ [
\ {
@@ -22,7 +16,7 @@ Execute(The govet handler should return the correct filenames):
\ 'filename': ale#path#Simplify(expand('%:p:h') . '/other.go'),
\ },
\ ],
- \ ale_linters#go#govet#Handler(bufnr(''), [
+ \ ale#handlers#go#Handler(bufnr(''), [
\ 'test.go:27: some error',
\ 'other.go:27:5: some error with a column',
\ ])