sponsor Vim development Vim logo Vim Book Ad

Syntastic : Automatic syntax checking

 script karma  Rating 1116/382, Downloaded by 17649  Comments, bugs, improvements  Vim wiki

created by
Marty Grenfell
script type
Syntastic is a syntax checking plugin that runs files through external syntax checkers and displays any resulting errors to the user. This can be done on demand, or automatically as files are saved. If syntax errors are detected, the user is notified and is happy because they didn't have to compile their code or execute their script to find them.

For the latest version version https://github.com/scrooloose/syntastic
install details
pathogen.vim is the recommended way to install syntastic.

If using pathogen:
cd ~/.vim/bundle
git clone https://github.com/scrooloose/syntastic.git

Extract the zip file into your ~/.vim or $HOME\vimfiles (windows), open up vim, run helptags and then checkout :help syntastic.

rate this script Life Changing Helpful Unfulfilling 
script versions (upload new version)

Click on the package to download.

package script version date Vim version user release notes
syntastic.zip 3.6.0 2015-01-20 7.0 Marty Grenfell Core changes:

* New option g:syntastic_exit_checks (@lcd047)
* New option b:syntastic_skip_checks (@lcd047)
* New options b:syntastic_<filetype>_<checker>_exec and b:syntastic_<checker>_exec (@lcd047)
* New postprocess function guards (@lcd047)
* New options g:syntastic_<filetype>_<checker>_sort (@lcd047)
* New option b:syntastic_mode (@lcd047)
* New jump mode for g:syntastic_auto_jump (@lcd047)
* Various bugs have been fixed.

Syntax checker changes:

* Added pc_lint checker for C and C++ (@2sb18)
* Added scalastyle checker for Scala (@lcd047)
* Added rpmlint checker for Linux RPM spec files (@lcd047)
* Added mypy static type checker for Python (@RussHewgill)
* Added mdl style checker for Markdown (@eToThePiIPower)
* Added igor checker from DocBook SGML, nroff, and text (@lcd047)
* Added rnv checker for Relax NG (@remko)
* Added option for closurecompiler: g:syntastic_javascript_closurecompiler_script (@bjpbakker)
* Added bashate checker for Bash scripts (@aswna)
* Added prospector checker for Python projects (@lcd047)
* Added reek checker for Ruby (@mmozuras)
* Added flow checker for JavaScript (@faceleg)
* Added luacheck checker for Lua (@tbastos)
* Added option for python: g:syntastic_python_python_use_codec (@delfick)
* Removed the avrgcc checker for Arduino (@lcd047)
* Removed the g:syntastic_java_javac_temp_dir option from javac (@lcd047)
* Various bugs have been fixed.
syntastic.zip 3.5.0 2014-09-01 7.0 Marty Grenfell Core Changes:

* New option g:syntastic_sort_aggregated_errors (@lcd047)
* New syntax highlight groups SyntasticStyleError and SyntasticStyleWarning (@kovidgoyal)
* Lazy calls to the IsAvailable() functions (@lcd047)
* New option g:syntastic_cursor_columns (@lcd047)
* Various bugs have been fixed.

Syntax checker changes:

* Added lint checker for R (@lcd047)
* Added svtools checker for R (@lcd047)
* Added scan checker for Haskell (@lcd047)
* Added plutil checker for OS X and iOS plists (@lcd047)
* Added tslint checker for TypeScript (@swook)
* Added recess checker for LESS and CSS (@pixelastic)
* Added bro checker for Bro (@JustinAzoff)
* Added cabal checker for Haskell Cabal files (@ianbollinger)
* Added sassc checker for SASS and SCSS (@lcd047)
* Removed the rustc checker for Rust, now part of the Rust compiler package (@lcd047)
* Added avrgcc checker for Arduino's ino and pde files (@lcd047)
* Disabled the elixir checker by default, for security reasons (lcd047)a
* Added clang_check and clang_tidy checkers for C and C++ (@bbannier)
* Added phplint checker for PHP (@lcd047)
* A number of checker variables have been marked as deprecated (@lcd047)
* Various bugs have been fixed.
syntastic.zip 3.4.0 2014-03-17 7.0 Marty Grenfell Core changes:

* Remove g:syntastic_delayed_redraws (@lcd047)
* New options *_before and *_after for makeprgBuild() (@lcd047)
* New jump mode for g:syntastic_auto_jump (@lcd047)
* New buffer-local user variables b:syntastic_<filetype>_<checker>_<option> (@lcd047)
* Overhaul of the checker registry (@lcd047)
* Speed optimisations (@lcd047)
* Various bugs have been fixed.

Syntax checker changes:

* Disable the perl checker by default, for security reasons (lcd047)
* Remove support for YouCompleteMe (@lcd047)
* Added vimlint checker for VimL (@lcd047)
* Added bemhtmllint checker for BEMHTML (@SevInf)
* Added frosted checker for Python (@sergeybe)
* Added code-ayatollah checker for Racket (@lcd047)
* Added makeinfo checker for texinfo (@lcd047)
* Added avrgcc checker for AVR sources (@karel-)
* Added gcc checker for AT&T and Intel assembly files (@jrahm)
* Added syntaxerl checker for Erlang (@locojay)
* Added jsxhint checker for JSX (@thomasboyt)
* Various bugs have been fixed.
syntastic.zip 3.3.0 2014-01-16 7.0 Marty Grenfell Core changes:
- Overhaul of the checker infrastructure (@lcd047)
- More detailed debugging (@lcd047)
- New command :SyntasticSetLoclist (@lcd047)
- :SyntasticCheck now accepts multiple parameters (@lcd047)
- :SyntasticInfo now takes an optional argument (@lcd047)
- Option syntastic_quiet_warnings is now deprecated (@lcd047)
- New options syntastic_quiet_messages and syntastic_<filetype>_<checker>_quiet_messages (@lcd047)
- Speed optimisations (@lcd047)
- Various bugs have been fixed.

Syntax Checker Changes
- Added cppcheck checker for C/C++ (@lcd047)
- Added eslint checker for JavaScript (@maksimr)
- Added yamlxs checker for YAML (@colinmkeith)
- Added msgfmt checker for .po files (@syucream)
- Added limbo checker for Limbo (@powerman)
- Added racket checker for Racket (@2sb18)
- Added flex checker for Lex (@lcd047)
- Added bison checker for YACC (@lcd047)
- Added mxmlc checker for ActionScript (@andyearnshaw)
- Added cgc checker for GLSL (@jrahm)
- Added rstcheck checker for reStructuredText (@myint)
- Added gotype checker for Go (@neeee)
- Added haml_lint checker for HAML (@sds)
- Rework of the python checker (@lcd047)
- New command :SyntasticJavacEditConfig for javac (@troydm)
- Added language_check grammar checker (@myint)
- Added jscs checker for JavaScript (@lcd047)
- Various bugs have been fixed.
syntastic.zip 3.2.0 2013-11-10 7.0 Marty Grenfell Core changes:
* Allow g:syntastic_filetype_map to apply to composite filetypes (@lcd047)
* Re-read g:syntastic_mode_map at each attempted check (@lcd047)
* New config variable g:syntastic_delayed_redraws (@lcd047)
* New config variable g:syntastic_id_checkers (@lcd047)
* Various bugs have been fixed.

Syntax checker changes:
* Added swiffer checker for Dust.js (@smfoote)
* Rework of the gcc checkers (@lcd047)
* Rework of the perl checker (@lcd047)
* Added handlebars checker for Handlebars (@mutewinter)
* Added foodcritic checker for Chef (@dougireton)
* Added rubylint checker for Ruby (@YorickPeterse)
* Added shellcheck checker for sh (@lcd047)
* Added scss_lint checker for SCSS (@sds)
* Various bugs have been fixed.
syntastic.zip 3.1.0 2013-08-18 7.0 Marty Grenfell Core changes:
* Added simple debug message system `:let g:syntastic_debug=1` to activate (@scrooloose)
* Added `:SyntasticInfo` command (@scrooloose)
* Refactor notifier mechanisms into notifier classes (@lcd047)
* Syntastic no longer calls `:quit` (@kovidgoyal)
* New option `g:syntastic_check_on_wq` (@lcd047)
* New option `g:syntastic_ignore_files` (@lcd047)
* New option `g:syntastic_filetype_map` (@lcd047)
* New command `:SyntasticReset` (@lcd047)
* New option `g:syntastic_aggregate_errors` (@lcd047)
* Many optimisations and speed improvements (@lcd047)
* Many bugs fixed.

Syntax checker changes:
* Added go/govet for google go (@kisielk)
* Rework of HTML/w3 (@lcd047)
* Added Python/py3kwarn for Python 3 (@liamcurry)
* Added Ruby/rubocop checker for ruby (@roktas)
* Added C/splint checker for C (@lcd047)
* Added LLVM/llvm  checker (@superjoe30)
* Added Python/pep8 checker for Python (@lcd047)
* Added nroff/mandoc checker for nroff (@lcd047)
* Added POD/podchecker checker for POD (@lcd047)
* Added C/oclint checker for C, C++, and Objective-C (@unc0)
* Added Text/atdtool spelling, style, and grammar checker (@lcd047)
* Added checkers for Objective-C++
* Added Go/golint checker for Go (@hirochachacha)
* Added COBOL/cobc checker for COBOL (@lcd047)
* Split Puppet/puppetlint into separate checkers Puppet/puppet and Puppet/puppetlint (@lcd047)
* Made the Haxe/haxe checker aware of [Vaxe](https://github.com/jdonaldson/vaxe) (@jdonaldson)
* Improved maven management for the Java/javac checher (@jvenant)
* Improved working with mix projects for Elixir/elixir (@thomas-holmes)
* Added HSS/hss checker for [HSS](http://ncannasse.fr/projects/hss) (@jdonaldson)
* Added Python/pylama checker for Python (@lcd047)
* Added Scala/fsc checker for Scala (@kongo2002)
* New options `g:syntastic_html_tidy_blocklevel_tags`, `g:syntastic_html_tidy_inline_tags`, and `g:syntastic_html_tidy_empty_tags` for the HTML/tidy checker (@anshul)
* The __gentoo-metadata__ filetype is now an alias to __xml__; the Gentoo---Metadata/xmllint still apply (@lcd047)
* Split Haskell/ghc-mod into separate checkers Haskell/ghc-mod and Haskell/hlint (@zenzike)
* Added Verilog/verilator checker for Verilog (@Kocha)
* Added AsciiDoc/asciidoc checker for AsciiDoc (@lcd047)
* Added Python/pep257 checker for Python docstrings (@marc2982)
* Many bugs fixed.
syntastic.zip 3.0.0 2013-04-13 7.0 Marty Grenfell See change log here: https://github.com/scrooloose/syntastic/wiki/Changelog
syntastic.zip 2.3.0 2012-02-16 7.0 Marty Grenfell - Add syntastic_loc_list_height option
- Allow errors to have a "subtype" that is signed differently to standard
  errors. Currently geared towards differentiating style errors from
  syntax errors. Currently implemented for phpcs (technosophos).
- New checkers for:
    - yaml
    - haxe (davidB)
    - ocaml (edwintorok)
    - pylint (parantapa)
    - rust (cjab)

- Updates to existing checkers:
    - jslint
    - jshint (gillesruppert)
    - fortran (bmattern)
    - sass
    - html (darcyparker)
    - coffee (darcyparker)
    - docbk (darcyparker)
    - xml
    - xslt
    - less (irrationalfab)
    - php (AD7six, technosophos)
    - cuda
    - python (mitchellh, pneff)
    - perl (Anthony Carapetis)
    - c (naoina, zsprackett)
    - puppet (frimik)
syntastic.zip 2.2.0 2011-12-24 7.0 Marty Grenfell * only do syntax checks when files are saved (not when first opened) - add g:syntastic_check_on_open option to get the old behavior back
* bug fix with echoing error messages; fixes incompatability with cmd-t (datanoise)
* dont allow warnings to mask errors when signing/echoing errors (ashikase)
* auto close location list when leaving buffer. (millermedeiros)
* update errors appropriately when :SyntasticToggleMode is called
* updates/fixes to existing checkers:
  * javascript/jshint (millermedeiros)
  * javascript/jslint
  * c (kongo2002)
* Support for new filetypes:
  * JSON (millermedeiros, tocer)
  * rst (reStructuredText files) (JNRowe)
  * gentoo-metadata (JNRowe)
syntastic.zip 2.1.0 2011-12-14 7.0 Marty Grenfell - when the cursor is on a line containing an error, echo the error msg (kevinw)
- various bug fixes and refactoring
- updates/fixes to existing checkers:
    - html (millermedeiros)
    - erlang
    - coffeescript
    - javascript
    - sh
    - php (add support for phpcs - technosophos)
- add an applescript checker (Zhai Cai)
- add support for hyphenated filetypes (JNRowe)
syntastic.zip 2.0.0 2011-12-02 7.0 Marty Grenfell - Add support for highlighting the erroneous parts of lines (kstep)
- Add support for displaying errors via balloons (kstep)
- Add syntastic_mode_map option to give more control over when checking should be done.
- Add :SyntasticCheck command to force a syntax check -  useful in passive mode (justone).
- Add the option to automatically close the location list, but not automatically open it (milkypostman)
- Add syntastic_auto_jump option to automatically jump to the first error (milkypostman)
- Only source syntax checkers as needed - instead of loading all of them when vim starts

- Support for new filetypes:
    - less (julienXX)
    - docbook (tpope)
    - matlab (jasongraham)
    - go (dtjm)
    - puppet (uggedal, roman, zsprackett)
    - haskell (baldo, roman)
    - tcl (et)
    - vala (kstep)
    - cuda (temporaer)
    - css (oryband, sitedyno)
    - fortran (Karl Yngve LervĂ„g)
    - xml (kusnier)
    - xslt (kusnier)
    - erlang (kTT)
    - zpt (claytron)

- updates to existing checkers:
    - javascript (mogren, bryanforbes, cjab, ajduncan)
    - sass/scss (tmm1, atourino, dlee, epeli)
    - ruby (changa)
    - perl (harleypig)
    - haml (bmihelac)
    - php (kstep, docteurklein)
    - python (kstep, soli)
    - lua (kstep)
    - html (kstep)
    - xhtml (kstep)
    - c (kongo2002, brandonw)
    - cpp (kongo2002)
    - coffee (industrial)
    - eruby (sergevm)
syntastic.zip 1.2.0 2010-10-28 7.0 Marty Grenfell - New syntax checkers from github:kongo2002
  - c (thanks also to github:jperras)
  - cpp
  - lua
  - sh (thanks also to github:jmcantrell)
- add coffee syntax checked by github:lstoll
- add tex syntax checker
- make html checker play nicer with html5, thanks to github:enaeseth
- escape filenames properly when invoking syntax checkers, thanks to
- adjust the ruby syntax checker to avoid some common annoying warnings,
  thanks to github:robertwahler
syntastic.zip 1.1.0 2009-12-16 7.0 Marty Grenfell Version 1.1.0 [codenamed: tpimp]
- Dont load rubygems for ruby/eruby syntax checkers.  Thanks tpope.
- Improve the javascript syntax checker to catch some
  warnings that were getting missed. Thanks tpope.
- Dont automatically focus the error window. Thanks tpope.
- Add support for cucumber [tpope], haskell & perl
  [Anthony Carapetis], and xhtml
- Add commands to enable/disable syntax checking at
  runtime. See :help syntastic-commands.
- Add an option to specifiy syntax checkers that should
  be disabled by default. See :help syntastic_disabled_filetypes.
- Dont use :signs if vim wasnt compiled with support for them.
syntastic.zip 1.0.0 2009-08-11 7.0 Marty Grenfell Initial upload
ip used for rating:

If you have questions or remarks about this site, visit the vimonline development pages. Please use this site responsibly.
Questions about Vim should go to the maillist. Help Bram help Uganda.
Vim at Github