1
0
Fork 0
mirror of synced 2024-11-17 22:45:34 -05:00
ultimate-vim/sources_non_forked/syntastic/CONTRIBUTING.md

106 lines
3.5 KiB
Markdown
Raw Normal View History

2014-07-02 07:18:18 -04:00
# CONTRIBUTING
- - -
1\. [Bug reports / GitHub issues](#bugreps)
2\. [Submitting a patch](#patches)
3\. [General style notes](#generalstyle)
4\. [Syntax checker notes](#checkerstyle)
- - -
2014-07-02 07:18:18 -04:00
<a name="bugreps"></a>
## 1. Bug reports / GitHub issues
Please note that the preferred channel for posting bug reports is the
2016-06-26 14:30:37 -04:00
[issue tracker at GitHub][bug_tracker]. Reports posted elsewhere are less likely
2014-07-02 07:18:18 -04:00
to be seen by the core team.
When reporting a bug make sure you search the existing GitHub issues
2016-03-14 06:04:57 -04:00
for the same/similar issues. If you find one, feel free to add a `+1`
2014-07-02 07:18:18 -04:00
comment with any additional information that may help us solve the
issue.
When creating a new issue be sure to state the following:
2014-07-02 07:18:18 -04:00
* steps to reproduce the bug;
* the version of Vim you are using (run `:ver` to find out);
* the version of syntastic you are using (see `:SyntasticInfo`).
For syntax checker bugs also state the version of the checker executable
2016-03-14 06:04:57 -04:00
that you are using. Adding debugging information is typically useful
2014-07-02 07:18:18 -04:00
too:
* open a file handled by your checker;
* set `g:syntastic_debug` to 1 or 3;
* run the checker;
* copy the output of `:mes`.
<a name="patches"></a>
## 2. Submitting a patch
2016-03-14 06:04:57 -04:00
Before you consider adding features to syntastic, _please_ spend a few minutes
2016-06-26 14:30:37 -04:00
(re-)reading the latest version of the [manual][manual]. Syntastic is changing
2016-03-14 06:04:57 -04:00
rapidly at times, and it's possible that some features you want to add exist
already.
2014-07-02 07:18:18 -04:00
To submit a patch:
2016-06-26 14:30:37 -04:00
* fork the [repo][github] on GitHub;
* make a [topic branch][branches] and start hacking;
2014-07-02 07:18:18 -04:00
* submit a pull request based off your topic branch.
2014-07-02 07:18:18 -04:00
Small, focused patches are preferred.
2014-07-02 07:18:18 -04:00
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.
2016-03-14 06:04:57 -04:00
Also, make sure to update the manual whenever applicable. Nobody can use
2014-07-02 07:18:18 -04:00
features that aren't documented.
2014-07-02 07:18:18 -04:00
<a name="generalstyle"></a>
2014-07-02 07:18:18 -04:00
## 3. General style notes
2014-07-02 07:18:18 -04:00
Follow the coding conventions/styles used in the syntastic core:
2014-07-02 07:18:18 -04:00
* use 4 space indents;
* don't use abbreviated keywords - e.g. use `endfunction`, not `endfun`
(there's always room for more fun!);
* don't use `l:` prefixes for variables unless actually required (i.e.
almost never);
* code for maintainability; we would rather a function be a couple of
2016-06-26 14:30:37 -04:00
lines longer and have (for example) some [explaining variables][variables] to
2014-07-02 07:18:18 -04:00
aid readability.
2014-07-02 07:18:18 -04:00
<a name="checkerstyle"></a>
## 4. Syntax checker notes
2016-06-26 14:30:37 -04:00
Make sure to read the [guide][guide] if you plan to add new syntax checkers.
2014-07-02 07:18:18 -04:00
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):
```vim
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%.%#'
```
2014-07-02 07:18:18 -04:00
2016-06-26 14:30:37 -04:00
[bug_tracker]: https://github.com/scrooloose/syntastic/issues
[manual]: https://github.com/scrooloose/syntastic/blob/master/doc/syntastic.txt
[github]: https://github.com/scrooloose/syntastic
[branches]: https://github.com/dchelimsky/rspec/wiki/Topic-Branches#using-topic-branches-when-contributing-patches
[variables]: http://www.refactoring.com/catalog/extractVariable.html
[guide]: https://github.com/scrooloose/syntastic/wiki/Syntax-Checker-Guide