I would like to change a setting or edit a line of code in the Python syntax checker, but Syntastic comes with five of them. How can I find out which one is in use?
Asked
Active
Viewed 2,180 times
2 Answers
10
Syntastic has a built-in function for this. I believe which syntax checkers are available depend on your system.
:SyntasticInfo
Syntastic info for filetype: python
Available checkers: python
Currently active checker(s): python
Press ENTER or type command to continue

timss
- 9,982
- 4
- 34
- 56
0
Frustratingly there doesn't seem to be a direct way to return the available checkers as a vim script string or list. Wrote this function that uses :redir
to do so:
function! s:syntastic_checkers(...)
redir => output
silent SyntasticInfo
redir END
let result=split(output, "\n")
let checkers=split(split(result[-2], ':')[-1], '\s\+')
if checkers[0]=='-'
let checkers=[]
else
call extend(checkers, split(split(result[-1], ':')[-1], '\s\+')[:1])
endif
if a:0 "just echo the result
echo 'Checkers: '.join(checkers, ', ')
else
return checkers
endif
endfunction
command! SyntasticCheckers
Call it with any argument to print a list of checkers, and call it without any arguments to return a vim list of checkers, plus the current checker in the final position of the list.

Luke Davis
- 2,548
- 2
- 21
- 43