summaryrefslogtreecommitdiff
path: root/ale_linters/go
diff options
context:
space:
mode:
authorw0rp <w0rp@users.noreply.github.com>2018-02-25 11:54:05 +0000
committerGitHub <noreply@github.com>2018-02-25 11:54:05 +0000
commitb6ccd60dd04e49ef394d6c75be4543e75e155aca (patch)
tree2803812a39fa48b8523778273a41ab1b797230bc /ale_linters/go
parentb5209d31e85bdb5f2f1c7c1bdd9ee6fd42ca9574 (diff)
parentab5257c3442f5d5b5236905a4c77f4f09a24d8b5 (diff)
downloadale-b6ccd60dd04e49ef394d6c75be4543e75e155aca.zip
Merge pull request #1351 from svanharmelen/f-issue-936
This fixes issue #936 by linting the whole package
Diffstat (limited to 'ale_linters/go')
-rw-r--r--ale_linters/go/staticcheck.vim24
1 files changed, 23 insertions, 1 deletions
diff --git a/ale_linters/go/staticcheck.vim b/ale_linters/go/staticcheck.vim
index 255fd17c..ce9e6e38 100644
--- a/ale_linters/go/staticcheck.vim
+++ b/ale_linters/go/staticcheck.vim
@@ -1,10 +1,32 @@
" Author: Ben Reedy <https://github.com/breed808>
" Description: staticcheck for Go files
+call ale#Set('go_staticcheck_options', '')
+call ale#Set('go_staticcheck_lint_package', 0)
+
+function! ale_linters#go#staticcheck#GetCommand(buffer) abort
+ let l:filename = expand('#' . a:buffer . ':t')
+ let l:options = ale#Var(a:buffer, 'go_staticcheck_options')
+ let l:lint_package = ale#Var(a:buffer, 'go_staticcheck_lint_package')
+
+ " BufferCdString is used so that we can be sure the paths output from
+ " staticcheck can be calculated to absolute paths in the Handler
+ if l:lint_package
+ return ale#path#BufferCdString(a:buffer)
+ \ . 'staticcheck'
+ \ . (!empty(l:options) ? ' ' . l:options : '') . ' .'
+ endif
+
+ return ale#path#BufferCdString(a:buffer)
+ \ . 'staticcheck'
+ \ . (!empty(l:options) ? ' ' . l:options : '')
+ \ . ' ' . ale#Escape(l:filename)
+endfunction
+
call ale#linter#Define('go', {
\ 'name': 'staticcheck',
\ 'executable': 'staticcheck',
-\ 'command': 'staticcheck %s',
+\ 'command_callback': 'ale_linters#go#staticcheck#GetCommand',
\ 'callback': 'ale#handlers#unix#HandleAsWarning',
\ 'output_stream': 'both',
\ 'lint_file': 1,