summaryrefslogtreecommitdiff
path: root/ale_linters
diff options
context:
space:
mode:
authorNicolas Pauss <nicolas.pauss@gmail.com>2018-06-25 09:51:50 +0200
committerNicolas Pauss <nicolas.pauss@intersec.com>2018-06-25 10:28:59 +0200
commitbedd30ee11953bde13856c32a1b8b7a17ef5916a (patch)
treea547624fbe5e9547f751fb01ab873b24f74d93e9 /ale_linters
parent620951b6d3420ca69754f3e1068167729d8c651b (diff)
downloadale-bedd30ee11953bde13856c32a1b8b7a17ef5916a.zip
Improve pyrex cython linter.
Like many other linters, use variables for the executable and options used by the linter. By default, the linter now report every warnings as errors with `--warning-errors`. Also add include directory and set working directory to file directory.
Diffstat (limited to 'ale_linters')
-rw-r--r--ale_linters/pyrex/cython.vim23
1 files changed, 20 insertions, 3 deletions
diff --git a/ale_linters/pyrex/cython.vim b/ale_linters/pyrex/cython.vim
index bd5a447f..d5c6238e 100644
--- a/ale_linters/pyrex/cython.vim
+++ b/ale_linters/pyrex/cython.vim
@@ -1,10 +1,27 @@
-" Author: w0rp <devw0rp@gmail.com>
+" Author: w0rp <devw0rp@gmail.com>,
+" Nicolas Pauss <https://github.com/nicopauss>
" Description: cython syntax checking for cython files.
+call ale#Set('pyrex_cython_executable', 'cython')
+call ale#Set('pyrex_cython_options', '--warning-extra --warning-errors')
+
+function! ale_linters#pyrex#cython#GetExecutable(buffer) abort
+ return ale#Var(a:buffer, 'pyrex_cython_executable')
+endfunction
+
+function! ale_linters#pyrex#cython#GetCommand(buffer) abort
+ let l:local_dir = ale#Escape(fnamemodify(bufname(a:buffer), ':p:h'))
+
+ return ale#Escape(ale_linters#pyrex#cython#GetExecutable(a:buffer))
+ \ . ' --working ' . l:local_dir . ' --include-dir ' . l:local_dir
+ \ . ' ' . ale#Var(a:buffer, 'pyrex_cython_options')
+ \ . ' --output-file ' . g:ale#util#nul_file . ' %t'
+endfunction
+
call ale#linter#Define('pyrex', {
\ 'name': 'cython',
\ 'output_stream': 'stderr',
-\ 'executable': 'cython',
-\ 'command': 'cython --warning-extra -o ' . g:ale#util#nul_file . ' %t',
+\ 'executable_callback': 'ale_linters#pyrex#cython#GetExecutable',
+\ 'command_callback': 'ale_linters#pyrex#cython#GetCommand',
\ 'callback': 'ale#handlers#unix#HandleAsError',
\})