|
|
|
|
@@ -25,19 +25,21 @@
|
|
|
|
|
3. [Recommended settings](#settings)
|
|
|
|
|
4. [FAQ](#faq)
|
|
|
|
|
4.1. [I installed syntastic but it isn't reporting any errors...](#faqinfo)
|
|
|
|
|
4.2. [The `python` checker complains about syntactically valid Python 3 constructs...](#faqpython3)
|
|
|
|
|
4.3. [Are there any local checkers for HTML5 that I can use with syntastic?](#faqhtml5)
|
|
|
|
|
4.4. [The `perl` checker has stopped working...](#faqperl)
|
|
|
|
|
4.5. [What happened to the `rustc` checker?](#faqrust)
|
|
|
|
|
4.6. [What happened to the `xcrun` checker?](#faqxcrun)
|
|
|
|
|
4.7. [I run a checker and the location list is not updated...](#faqloclist)
|
|
|
|
|
4.7. [I run`:lopen` or `:lwindow` and the error window is empty...](#faqloclist)
|
|
|
|
|
4.8. [How can I pass additional arguments to a checker?](#faqargs)
|
|
|
|
|
4.9. [Syntastic supports several checkers for my filetype - how do I tell which one(s) to use?](#faqcheckers)
|
|
|
|
|
4.10. [What is the difference between syntax checkers and style checkers?](#faqstyle)
|
|
|
|
|
4.11. [I have enabled multiple checkers for the current filetype. How can I display all errors from all checkers together?](#faqaggregate)
|
|
|
|
|
4.12. [How can I jump between the different errors without using the location list at the bottom of the window?](#faqlnext)
|
|
|
|
|
4.13. [The error window is closed automatically when I :quit the current buffer but not when I :bdelete it?](#faqbdelete)
|
|
|
|
|
4.2. [How can I check scripts written for different versions of Python?](#faqpython)
|
|
|
|
|
4.3. [How can I check scripts written for different versions of Ruby?](#faqruby)
|
|
|
|
|
4.4. [Are there any local checkers for HTML5 that I can use with syntastic?](#faqhtml5)
|
|
|
|
|
4.5. [The `perl` checker has stopped working...](#faqperl)
|
|
|
|
|
4.6. [What happened to the `rustc` checker?](#faqrust)
|
|
|
|
|
4.7. [What happened to the `xcrun` checker?](#faqxcrun)
|
|
|
|
|
4.8. [I run a checker and the location list is not updated...](#faqloclist)
|
|
|
|
|
4.8. [I run`:lopen` or `:lwindow` and the error window is empty...](#faqloclist)
|
|
|
|
|
4.9. [How can I pass additional arguments to a checker?](#faqargs)
|
|
|
|
|
4.10. [Syntastic supports several checkers for my filetype - how do I tell which one(s) to use?](#faqcheckers)
|
|
|
|
|
4.11. [What is the difference between syntax checkers and style checkers?](#faqstyle)
|
|
|
|
|
4.12. [I have enabled multiple checkers for the current filetype. How can I display all errors from all checkers together?](#faqaggregate)
|
|
|
|
|
4.13. [How can I jump between the different errors without using the location list at the bottom of the window?](#faqlnext)
|
|
|
|
|
4.14. [My favourite checker needs to load a configuration file from the project's root rather than the current directory...](#faqconfig)
|
|
|
|
|
4.15. [The error window is closed automatically when I :quit the current buffer but not when I :bdelete it?](#faqbdelete)
|
|
|
|
|
5. [Resources](#otherresources)
|
|
|
|
|
|
|
|
|
|
- - -
|
|
|
|
|
@@ -150,7 +152,7 @@ You now have pathogen installed and can put syntastic into `~/.vim/bundle` like
|
|
|
|
|
this:
|
|
|
|
|
```sh
|
|
|
|
|
cd ~/.vim/bundle && \
|
|
|
|
|
git clone https://github.com/scrooloose/syntastic.git
|
|
|
|
|
git clone --depth=1 https://github.com/scrooloose/syntastic.git
|
|
|
|
|
```
|
|
|
|
|
Quit vim and start it back up to reload it, then type:
|
|
|
|
|
```vim
|
|
|
|
|
@@ -227,19 +229,40 @@ or the error output for a syntax checker may have changed. In this case, make
|
|
|
|
|
sure you have the latest version of the syntax checker installed. If it still
|
|
|
|
|
fails then post an [issue][bug_tracker] - or better yet, create a pull request.
|
|
|
|
|
|
|
|
|
|
<a name="faqpython3"></a>
|
|
|
|
|
<a name="faqpython"></a>
|
|
|
|
|
|
|
|
|
|
__4.2. Q. The `python` checker complains about syntactically valid Python 3 constructs...__
|
|
|
|
|
__4.2. Q. How can I check scripts written for different versions of Python?__
|
|
|
|
|
|
|
|
|
|
A. Configure the `python` checker to call a Python 3 interpreter rather than
|
|
|
|
|
Python 2, e.g:
|
|
|
|
|
```vim
|
|
|
|
|
let g:syntastic_python_python_exec = '/path/to/python3'
|
|
|
|
|
```
|
|
|
|
|
A. Install a Python version manager such as [virtualenv][virtualenv]
|
|
|
|
|
or [pyenv][pyenv], activate the environment for the relevant version
|
|
|
|
|
of Python, and install in it the checkers you want to use. Set
|
|
|
|
|
`g:syntastic_python_checkers` accordingly in your `vimrc`, and run [Vim][vim]
|
|
|
|
|
from the virtual environment.
|
|
|
|
|
|
|
|
|
|
If you're starting Vim from a desktop manager rather than from a terminal you
|
|
|
|
|
might need to write wrapper scripts around your checkers, to activate the
|
|
|
|
|
virtual environment before running the actual checks. Then you'll need to
|
|
|
|
|
point the relevant `g:syntastic_python_<checker>_exec` variables to the wrapper
|
|
|
|
|
scripts.
|
|
|
|
|
|
|
|
|
|
<a name="faqruby"></a>
|
|
|
|
|
|
|
|
|
|
__4.3. Q. How can I check scripts written for different versions of Ruby?__
|
|
|
|
|
|
|
|
|
|
A. Install a Ruby version manager such as [rvm][rvm] or [rbenv][rbenv],
|
|
|
|
|
activate the environment for the relevant version of Ruby, and install in it
|
|
|
|
|
the checkers you want to use. Set `g:syntastic_ruby_checkers` accordingly in
|
|
|
|
|
your `vimrc`, and run [Vim][vim] from the virtual environment.
|
|
|
|
|
|
|
|
|
|
If you're starting Vim from a desktop manager rather than from a terminal you
|
|
|
|
|
might need to write wrapper scripts around your checkers, to activate the
|
|
|
|
|
virtual environment before running the actual checks. Then you'll need to
|
|
|
|
|
point the relevant `g:syntastic_ruby_<checker>_exec` variables to the wrapper
|
|
|
|
|
scripts.
|
|
|
|
|
|
|
|
|
|
<a name="faqhtml5"></a>
|
|
|
|
|
|
|
|
|
|
__4.3. Q. Are there any local checkers for HTML5 that I can use with syntastic?__
|
|
|
|
|
__4.4. Q. Are there any local checkers for HTML5 that I can use with syntastic?__
|
|
|
|
|
|
|
|
|
|
[HTML Tidy][tidy_old] has a fork named [HTML Tidy for HTML5][tidy]. It's a drop
|
|
|
|
|
in replacement, and syntastic can use it without changes. Just install it
|
|
|
|
|
@@ -259,7 +282,7 @@ let g:syntastic_html_validator_api = 'http://localhost:8888/'
|
|
|
|
|
|
|
|
|
|
<a name="faqperl"></a>
|
|
|
|
|
|
|
|
|
|
__4.4. Q. The `perl` checker has stopped working...__
|
|
|
|
|
__4.5. Q. The `perl` checker has stopped working...__
|
|
|
|
|
|
|
|
|
|
A. The `perl` checker runs `perl -c` against your file, which in turn
|
|
|
|
|
__executes__ any `BEGIN`, `UNITCHECK`, and `CHECK` blocks, and any `use`
|
|
|
|
|
@@ -275,14 +298,14 @@ let g:syntastic_enable_perl_checker = 1
|
|
|
|
|
|
|
|
|
|
<a name="faqrust"></a>
|
|
|
|
|
|
|
|
|
|
__4.5. Q. What happened to the `rustc` checker?__
|
|
|
|
|
__4.6. Q. What happened to the `rustc` checker?__
|
|
|
|
|
|
|
|
|
|
A. It is now part of the [rust.vim][rust] plugin. If you install this plugin the
|
|
|
|
|
checker should be picked up automatically by syntastic.
|
|
|
|
|
|
|
|
|
|
<a name="faqxcrun"></a>
|
|
|
|
|
|
|
|
|
|
__4.6. Q. What happened to the `xcrun` checker?__
|
|
|
|
|
__4.7. Q. What happened to the `xcrun` checker?__
|
|
|
|
|
|
|
|
|
|
A. The `xcrun` checker used to have a security problem and it has been removed.
|
|
|
|
|
A better checker for __Swift__ is part of the [vim-swift][swift] plugin. If you
|
|
|
|
|
@@ -290,8 +313,8 @@ install this plugin the checker should be picked up automatically by syntastic.
|
|
|
|
|
|
|
|
|
|
<a name="faqloclist"></a>
|
|
|
|
|
|
|
|
|
|
__4.7. Q. I run a checker and the location list is not updated...__
|
|
|
|
|
__4.7. Q. I run`:lopen` or `:lwindow` and the error window is empty...__
|
|
|
|
|
__4.8. Q. I run a checker and the location list is not updated...__
|
|
|
|
|
__4.8. Q. I run`:lopen` or `:lwindow` and the error window is empty...__
|
|
|
|
|
|
|
|
|
|
A. By default the location list is changed only when you run the `:Errors`
|
|
|
|
|
command, in order to minimise conflicts with other plugins. If you want the
|
|
|
|
|
@@ -303,7 +326,7 @@ let g:syntastic_always_populate_loc_list = 1
|
|
|
|
|
|
|
|
|
|
<a name="faqargs"></a>
|
|
|
|
|
|
|
|
|
|
__4.8. Q. How can I pass additional arguments to a checker?__
|
|
|
|
|
__4.9. Q. How can I pass additional arguments to a checker?__
|
|
|
|
|
|
|
|
|
|
A. Almost all syntax checkers use the `makeprgBuild()` function. Those checkers
|
|
|
|
|
that do can be configured using global variables. The general form of the
|
|
|
|
|
@@ -319,7 +342,7 @@ See `:help syntastic-checker-options` for more information.
|
|
|
|
|
|
|
|
|
|
<a name="faqcheckers"></a>
|
|
|
|
|
|
|
|
|
|
__4.9. Q. Syntastic supports several checkers for my filetype - how do I tell it
|
|
|
|
|
__4.10. Q. Syntastic supports several checkers for my filetype - how do I tell it
|
|
|
|
|
which one(s) to use?__
|
|
|
|
|
|
|
|
|
|
A. Stick a line like this in your `vimrc`:
|
|
|
|
|
@@ -360,7 +383,7 @@ filetype of the current file is `php`).
|
|
|
|
|
|
|
|
|
|
<a name="faqstyle"></a>
|
|
|
|
|
|
|
|
|
|
__4.10. Q. What is the difference between syntax checkers and style checkers?__
|
|
|
|
|
__4.11. Q. What is the difference between syntax checkers and style checkers?__
|
|
|
|
|
|
|
|
|
|
A. The errors and warnings they produce are highlighted differently and can
|
|
|
|
|
be filtered by different rules, but otherwise the distinction is pretty much
|
|
|
|
|
@@ -390,7 +413,7 @@ See `:help syntastic_quiet_messages` for details.
|
|
|
|
|
|
|
|
|
|
<a name="faqaggregate"></a>
|
|
|
|
|
|
|
|
|
|
__4.11. Q. I have enabled multiple checkers for the current filetype. How can I
|
|
|
|
|
__4.12. Q. I have enabled multiple checkers for the current filetype. How can I
|
|
|
|
|
display all errors from all checkers together?__
|
|
|
|
|
|
|
|
|
|
A. Set `g:syntastic_aggregate_errors` to 1 in your `vimrc`:
|
|
|
|
|
@@ -402,7 +425,7 @@ See `:help syntastic-aggregating-errors` for more details.
|
|
|
|
|
|
|
|
|
|
<a name="faqlnext"></a>
|
|
|
|
|
|
|
|
|
|
__4.12. Q. How can I jump between the different errors without using the location
|
|
|
|
|
__4.13. Q. How can I jump between the different errors without using the location
|
|
|
|
|
list at the bottom of the window?__
|
|
|
|
|
|
|
|
|
|
A. Vim provides several built-in commands for this. See `:help :lnext` and
|
|
|
|
|
@@ -412,9 +435,28 @@ If you use these commands a lot then you may want to add shortcut mappings to
|
|
|
|
|
your `vimrc`, or install something like [unimpaired][unimpaired], which provides such
|
|
|
|
|
mappings (among other things).
|
|
|
|
|
|
|
|
|
|
<a name="faqconfig"></a>
|
|
|
|
|
|
|
|
|
|
__4.14. My favourite checker needs to load a configuration file from the
|
|
|
|
|
project's root rather than the current directory...__
|
|
|
|
|
|
|
|
|
|
A. You can set up an `autocmd` to search for the configuration file in the
|
|
|
|
|
current directory and upwards, and add it to the checker's options when found.
|
|
|
|
|
For example for `jscs`:
|
|
|
|
|
|
|
|
|
|
```vim
|
|
|
|
|
function! FindConfig(prefix, what, where)
|
|
|
|
|
let cfg = findfile(a:what, escape(a:where, ' ') . ';')
|
|
|
|
|
return cfg !=# '' ? ' ' . a:prefix . ' ' . cfg : ''
|
|
|
|
|
endfunction
|
|
|
|
|
|
|
|
|
|
autocmd FileType javascript let b:syntastic_javascript_jscs_args =
|
|
|
|
|
\ get(g:, 'syntastic_javascript_jscs_args', '') .
|
|
|
|
|
\ FindConfig('-c', '.jscsrc', expand('<amatch>:p:h', 1))
|
|
|
|
|
```
|
|
|
|
|
<a name="faqbdelete"></a>
|
|
|
|
|
|
|
|
|
|
__4.13. Q. The error window is closed automatically when I :quit the current buffer
|
|
|
|
|
__4.15. Q. The error window is closed automatically when I :quit the current buffer
|
|
|
|
|
but not when I :bdelete it?__
|
|
|
|
|
|
|
|
|
|
A. There is no safe way to handle that situation automatically, but you can
|
|
|
|
|
@@ -458,9 +500,12 @@ a look at [ghcmod-vim][ghcmod], [jedi-vim][jedi], [python-mode][python_mode], [v
|
|
|
|
|
[pathogen]: https://github.com/tpope/vim-pathogen
|
|
|
|
|
[perlrun]: http://perldoc.perl.org/perlrun.html#*-c*
|
|
|
|
|
[plug]: https://github.com/junegunn/vim-plug/
|
|
|
|
|
[pyenv]: https://github.com/yyuu/pyenv
|
|
|
|
|
[python_mode]: https://github.com/klen/python-mode
|
|
|
|
|
[rbenv]: https://github.com/rbenv/rbenv
|
|
|
|
|
[roktas]: https://github.com/roktas/syntastic-more
|
|
|
|
|
[rust]: https://github.com/rust-lang/rust.vim
|
|
|
|
|
[rvm]: https://rvm.io/
|
|
|
|
|
[stack_overflow]: http://stackoverflow.com/questions/tagged/syntastic
|
|
|
|
|
[swift]: https://github.com/kballard/vim-swift
|
|
|
|
|
[tidy]: http://www.htacg.org/tidy-html5/
|
|
|
|
|
@@ -469,6 +514,7 @@ a look at [ghcmod-vim][ghcmod], [jedi-vim][jedi], [python-mode][python_mode], [v
|
|
|
|
|
[vam]: https://github.com/MarcWeber/vim-addon-manager
|
|
|
|
|
[vim]: http://www.vim.org/
|
|
|
|
|
[vimgo]: https://github.com/fatih/vim-go
|
|
|
|
|
[virtualenv]: https://virtualenv.pypa.io/en/stable/
|
|
|
|
|
[vnu]: http://about.validator.nu/
|
|
|
|
|
[vnu_jar]: https://github.com/validator/validator/releases/latest
|
|
|
|
|
[vnu_server]: http://validator.github.io/validator/#standalone
|
|
|
|
|
|