1. Bug reports / GitHub issues
2. Submitting a patch
3. General style notes
4. Syntax checker notes
Please note that the preferred channel for posting bug reports is the issue tracker at GitHub. Reports posted elsewhere are less likely to be seen by the core team.
When reporting a bug make sure you search the existing GitHub issues
for the same/similar issues. If you find one, feel free to add a +1
comment with any additional information that may help us solve the
issue.
When creating a new issue be sure to state the following:
:ver
to find out);:SyntasticInfo
).For syntax checker bugs also state the version of the checker executable that you are using. Adding debugging information is typically useful too:
g:syntastic_debug
to 1 or 3;:mes
.Before you consider adding features to syntastic, please spend a few minutes (re-)reading the latest version of the manual. Syntastic is changing rapidly at times, and it's possible that some features you want to add exist already.
To submit a patch:
Small, focused patches are preferred.
Large changes to the code should be discussed with the core team first. Create an issue and explain your plan and see what we say.
Also, make sure to update the manual whenever applicable. Nobody can use features that aren't documented.
Follow the coding conventions/styles used in the syntastic core:
endfunction
, not endfun
(there's always room for more fun!);l:
prefixes for variables unless actually required (i.e.
almost never);Make sure to read the guide if you plan to add new syntax checkers.
Use the existing checkers as templates, rather than writing everything from scratch.
The preferred style for error format strings is one "clause" per line.
E.g. (from the coffee
checker):
let errorformat =
\ '%E%f:%l:%c: %trror: %m,' .
\ 'Syntax%trror: In %f\, %m on line %l,' .
\ '%EError: In %f\, Parse error on line %l: %m,' .
\ '%EError: In %f\, %m on line %l,' .
\ '%W%f(%l): lint warning: %m,' .
\ '%W%f(%l): warning: %m,' .
\ '%E%f(%l): SyntaxError: %m,' .
\ '%-Z%p^,' .
\ '%-G%.%#'