diff --git a/ale_linters/go/gometalinter.vim b/ale_linters/go/gometalinter.vim index e6cd7250..671b77cf 100644 --- a/ale_linters/go/gometalinter.vim +++ b/ale_linters/go/gometalinter.vim @@ -6,7 +6,9 @@ if !exists('g:ale_go_gometalinter_options') endif function! ale_linters#go#gometalinter#GetCommand(buffer) abort - return 'gometalinter --include=''^' . expand('%:p') . '.*$'' ' + let l:filename = expand('#' . a:buffer . ':p') + + return 'gometalinter --include=''^' . l:filename . '.*$'' ' \ . ale#Var(a:buffer, 'go_gometalinter_options') \ . ' ' . ale#Escape(fnamemodify(bufname(a:buffer), ':p:h')) endfunction diff --git a/autoload/ale/pattern_options.vim b/autoload/ale/pattern_options.vim index 77d0b59f..a42a39d9 100644 --- a/autoload/ale/pattern_options.vim +++ b/autoload/ale/pattern_options.vim @@ -2,7 +2,7 @@ " Description: Set options in files based on regex patterns. function! ale#pattern_options#SetOptions() abort - let l:filename = expand('%:p') + let l:filename = expand('%:p') " no-custom-checks let l:options = {} for l:pattern in keys(g:ale_pattern_options) diff --git a/custom-checks b/custom-checks index c4b329ca..6145478b 100755 --- a/custom-checks +++ b/custom-checks @@ -55,6 +55,7 @@ check_errors() { RETURN_CODE=1 echo "$match $message" done < <(grep -n "$regex" "$directory"/**/*.vim \ + | grep -v 'no-custom-checks' \ | grep -o '^[^:]\+:[0-9]\+' \ | sed 's:^\./::') done @@ -77,5 +78,6 @@ check_errors $'\t' 'Use four spaces, not tabs' # This check should prevent people from using a particular inconsistent name. check_errors 'let g:ale_\w\+_\w\+_args =' 'Name your option g:ale___options instead' check_errors 'shellescape(' 'Use ale#Escape instead of shellescape' +check_errors "expand(['\"]%" "Use expand('#' . a:buffer . '...') instead. You might get a filename for the wrong buffer." exit $RETURN_CODE