Enabled with 'let g:syntastic_ocaml_use_ocamlbuild = 1' in .vimrc,
also creates .annot files for <Leader>t.
Not enabled by default because it writes to disk (_build dir).
quotes with shellescape(). cmd.exe on win32/64 does not recognize
single quotes properly. shellescape() correctly wraps arguments with
spaces using double quotes on win32/64.
Move the locaml->lcaml alias function out of the ocaml checker as this
code wont be loaded for locaml files - only syntax checkers for filetype
that are in use get sourced
Only cache the imports when the syntax checker is first loaded. Also,
there was a bug in the logic that was causing the imports to be set to
"" on the second run.
Make the imports var script local since we are not allowing users to
change it.
The jslint guys have changed their error format again. Update the syntax
checker to handle it.
Currently jslint outputs a "use strict" error if a function doesnt have
'use strict' at the top. This is not good for our purposes, so just
filter this out for now.
The js syntax checker was 4 checkers stuffed into 1 file. Now it is
broken down so that each checker is in its own file inside
syntax_checkers/javascript/ while syntax_checkers/javascript.vim just
determines which file to source.
Change the names of the global js checker config variables so that
they all start with "syntastic_javascript_". This is purely for
namespacing.
Remove some unneeded logic around the config variables too. Not sure how
it got in there, but it was more confusing than helpful without offering
any benefits...
I installed the latest version of lessc and they have modified their
output slightly. Update the errorformat for this.
Also, they new output is colorized by default. So I have added an option
to specify args to the checker that currently defaults to "--no-color".
This means that if people want to use an older version of lessc, they
will need to reset this option to an empty string.
Many of the syntax checkers were setting the 'bufnr' key for each
error manually and one was setting 'text' if it didnt exist too.
Add the 'defaults' option to SyntasticMake to set default values in the
returned error list - it only sets values if they are empty.
PHPCS has a wide variety of commandline flags, including
support for various syntaxes. These must be configurable,
otherwise phpcs generates a high number of spurious errors for
code written to any standard other than the PEAR standard.
Previously, if we edited a new bash script then we would have to wipeout
the buffer and recreate it to get syntastic to recognise it as a bash
script. This is because it parsed out a magic number and cached that -
and it trivially fails to find a magic number when you create a new
file.
So recheck for a magic number if it is currently empty.
Also, do a small refactor.
This was missing errors like this:
/tmp/foo.js:1:(-002) Error parsing file at token ")". Unable to check the rest of file.
The reason is because of the minus sign in front of the 002. It is using
%m to match that, which appears to only match positive numbers - so just
ignore the minus sign.
This is in response to #88 where errors like this were getting missed:
SyntaxError: In simpleMapComponent.js.coffee, Reserved word "function" on line 10
at SyntaxError (unknown source)
at Lexer.identifierError (/usr/lib/node_modules/coffee-script/lib/lexer.js:458:13)
at Lexer.identifierToken (/usr/lib/node_modules/coffee-script/lib/lexer.js:80:16)
at Lexer.tokenize (/usr/lib/node_modules/coffee-script/lib/lexer.js:31:19)
at Object.compile (/usr/lib/node_modules/coffee-script/lib/coffee-script.js:29:34)
at /usr/lib/node_modules/coffee-script/lib/command.js:149:33
at /usr/lib/node_modules/coffee-script/lib/command.js:115:26
at [object Object].<anonymous> (fs.js:107:5)
at [object Object].emit (events.js:61:17)
at afterRead (fs.js:878:12)
To fix this I have added another error matcher on the front of the
errorformat and have made a fix to the %-G matcher on the end (i.e. it
wasnt actually matching anything before).
The errorformat may need more updating.
We dont need to manually hack the bufnr for each entry in the loc list
since that the error output includes a file name.
Ignore the last line of the error message since it seems to always just
be "use --trace for a backtrace"
Add the g:syntastic_javascript_checker option so the user can specify
which javascript syntax checker to use. If none is specified then just
use the first syntax checker we find installed.
Define a user-configurable variable g:syntastic_python_checker and
otherwise default to an available checker.
Make the highlighting catch all pyflakes errors
Add a header to the file
Make the errorformat handle columns provided by pep8 through flake8
The previous implementation was crashing the make vim utility, after
saving it was required to use :redraw! in order to keep using the editor.
After a lot of investigation, I realized that the use of && in commands is not
of the like to the :make vim utility.
The use of the && command was updated with "{ commad1; command2 }" approach,
this way we got the result we wanted without any obnoxious side effect.
The current implementation only supports puppet < 2.6, when using
2.7.x it will complain all the time saying that the executable to check
syntax has changed. With this patch, it will work for version <= 2.7.x
some ruby warnings were getting output when "haml -c" was run - these
were not getting handled by the syntax checker
use SyntasticMake instead of custom hax0r to parse the errors - this way
it is trivial to ignore all output that we dont care about
Previously ghc was being used, but this was not good because
ghc would work only on individual files. As soon you included
an external module also developed on the current project, ghc would
barf at you saying that the module couldn't be found. ghc-mod
doesn't check dependencies, just syntax, also it has the lint
utility that is pretty handy.
Added a more specific c syntax checker errorformat before the more
general ones so the jumping is not broken by assuming the line number is
a part of the file.
Signed-off-by: kongo2002 <kongo2002@googlemail.com>