summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorw0rp <devw0rp@gmail.com>2017-06-06 10:22:52 +0100
committerw0rp <devw0rp@gmail.com>2017-06-06 10:22:52 +0100
commita0e0408ecc39d0fc7b8b66ac39c2dc5e7805e787 (patch)
treeaafb0fc1d8809c25972a1003743cd48e2c9e613d
parentd41f15bcbcc53d9a71eaa23dddcd6eb94328f7b7 (diff)
downloadale-a0e0408ecc39d0fc7b8b66ac39c2dc5e7805e787.zip
Complain about incorrect uses of expand('%...')
-rw-r--r--ale_linters/go/gometalinter.vim4
-rw-r--r--autoload/ale/pattern_options.vim2
-rwxr-xr-xcustom-checks2
3 files changed, 6 insertions, 2 deletions
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_<filetype>_<lintername>_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