Redirected checkers no longer need to add
"syntax_checkers/<filetype>/*.vim" to &runtimepath.
Parameters "exec" and "enable" to CreateAndRegisterChecker() are now
inherited from the source checker, but can be overridden in the target
if needed.
YCM has now its own navigation functions, so there is no longer any need
to call it from syntastic.
g:syntastic_delayed_redraws is also gone. Syntastic doesn't use popup
menus, and the only purpose of this variable was to provide a workaround
for a problem triggered by YCM.
References:
https://github.com/Valloric/YouCompleteMe/pull/763
(1) Checkers now have an _exec attribute, and an accessor getExec().
(2) CreateAndRegisterChecker() initializes _exec from an optional argument
'exec'. If this argument is missing, 'name' is used instead.
(3) Functions SyntaxCheckers_*_IsAvailable() are now dictionary functions.
(4) Functions SyntaxCheckers_*_IsAvailable() are now optional. When
they are missing, they are assumed to return executable(expand(self.getExec())).
(5) Argument 'exe' of function syntastic#makeprg#build() is now optional.
If this argument is missing, expand(self.getExec()) is used to set checker
executables.
Make SyntaxCheckers_*_GetLocList() dictionary functions.
Pass a reference to the current checker to syntastic#makeprg#build().
Add an optional 'redirect' argument to CreateAndRegisterChecker().
Change the sh checker to use the new dictionary functions.
Add a new registry method getLocListRaw() (needed for the sh checker).
Scenario:
- a C file is recognized as having filetype cpp
- run :SyntasticInfo
- run :setf c
- run :SyntasticInfo again
The only checker recognized will be oclint. The reason is, oclint is
registered as a c checker when called from cpp initialization, and that
prevents registering other c checkers when calling ':setf c'.
Solution: always initialize all checkers for a filetype.