aboutsummaryrefslogtreecommitdiff
path: root/vim/syntax_checkers
diff options
context:
space:
mode:
authorBen Beltran <ben@freshout.us>2012-10-08 11:44:10 -0500
committerBen Beltran <ben@freshout.us>2012-10-08 11:44:10 -0500
commit0d23b6e515a01a5782532351821ebfa11f3d6cf2 (patch)
treeaa395b7e50ccb533d6b48b809016ac06f2d5bc8c /vim/syntax_checkers
parenta91731eac872b7837c2821341db5888702125cef (diff)
Add vim again :)
Diffstat (limited to 'vim/syntax_checkers')
-rw-r--r--vim/syntax_checkers/applescript.vim43
-rw-r--r--vim/syntax_checkers/c.vim156
-rw-r--r--vim/syntax_checkers/coffee.vim27
-rw-r--r--vim/syntax_checkers/cpp.vim94
-rw-r--r--vim/syntax_checkers/css.vim31
-rw-r--r--vim/syntax_checkers/cucumber.vim27
-rw-r--r--vim/syntax_checkers/cuda.vim37
-rw-r--r--vim/syntax_checkers/docbk.vim29
-rw-r--r--vim/syntax_checkers/efm_perl.pl153
-rw-r--r--vim/syntax_checkers/erlang.vim42
-rwxr-xr-xvim/syntax_checkers/erlang_check_file.erl12
-rw-r--r--vim/syntax_checkers/eruby.vim34
-rw-r--r--vim/syntax_checkers/fortran.vim44
-rw-r--r--vim/syntax_checkers/gentoo_metadata.vim37
-rw-r--r--vim/syntax_checkers/go.vim22
-rw-r--r--vim/syntax_checkers/go/6g.vim17
-rw-r--r--vim/syntax_checkers/go/gofmt.vim16
-rw-r--r--vim/syntax_checkers/haml.vim26
-rw-r--r--vim/syntax_checkers/haskell.vim37
-rw-r--r--vim/syntax_checkers/haxe.vim55
-rw-r--r--vim/syntax_checkers/html.vim86
-rw-r--r--vim/syntax_checkers/javascript.vim23
-rw-r--r--vim/syntax_checkers/javascript/gjslint.vim20
-rw-r--r--vim/syntax_checkers/javascript/jshint.vim21
-rw-r--r--vim/syntax_checkers/javascript/jsl.vim20
-rw-r--r--vim/syntax_checkers/javascript/jslint.vim31
-rw-r--r--vim/syntax_checkers/json.vim23
-rw-r--r--vim/syntax_checkers/json/jsonlint.vim16
-rw-r--r--vim/syntax_checkers/json/jsonval.vim17
-rw-r--r--vim/syntax_checkers/less.vim38
-rw-r--r--vim/syntax_checkers/lua.vim58
-rw-r--r--vim/syntax_checkers/matlab.vim28
-rw-r--r--vim/syntax_checkers/ocaml.vim89
-rw-r--r--vim/syntax_checkers/perl.vim29
-rw-r--r--vim/syntax_checkers/php.vim58
-rw-r--r--vim/syntax_checkers/puppet.vim54
-rw-r--r--vim/syntax_checkers/python.vim80
-rw-r--r--vim/syntax_checkers/rst.vim37
-rw-r--r--vim/syntax_checkers/ruby.vim32
-rw-r--r--vim/syntax_checkers/rust.vim33
-rw-r--r--vim/syntax_checkers/sass.vim35
-rw-r--r--vim/syntax_checkers/scss.vim27
-rw-r--r--vim/syntax_checkers/sh.vim52
-rw-r--r--vim/syntax_checkers/tcl.vim28
-rw-r--r--vim/syntax_checkers/tex.vim26
-rw-r--r--vim/syntax_checkers/vala.vim56
-rw-r--r--vim/syntax_checkers/xhtml.vim46
-rw-r--r--vim/syntax_checkers/xml.vim42
-rw-r--r--vim/syntax_checkers/xslt.vim38
-rw-r--r--vim/syntax_checkers/yaml.vim30
-rw-r--r--vim/syntax_checkers/zpt.vim36
51 files changed, 2148 insertions, 0 deletions
diff --git a/vim/syntax_checkers/applescript.vim b/vim/syntax_checkers/applescript.vim
new file mode 100644
index 0000000..eb7a6f2
--- /dev/null
+++ b/vim/syntax_checkers/applescript.vim
@@ -0,0 +1,43 @@
+"==============================================================================
+" FileName: applescript.vim
+" Desc: Syntax checking plugin for syntastic.vim
+" Author: Zhao Cai
+" Email: caizhaoff@gmail.com
+" Version: 0.2.1
+" Date Created: Thu 09 Sep 2011 10:30:09 AM EST
+" Last Modified: Fri 09 Dec 2011 01:10:24 PM EST
+"
+" History: 0.1.0 - working, but it will run the script everytime to check
+" syntax. Should use osacompile but strangely it does not give
+" errors.
+"
+" 0.2.0 - switch to osacompile, it gives less errors compared
+" with osascript.
+"
+" 0.2.1 - remove g:syntastic_applescript_tempfile. use
+" tempname() instead.
+"
+" License: This program is free software. It comes without any
+" warranty, to the extent permitted by applicable law. You can
+" redistribute it and/or modify it under the terms of the Do What The
+" Fuck You Want To Public License, Version 2, as published by Sam
+" Hocevar. See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+
+if exists("loaded_applescript_syntax_checker")
+ finish
+endif
+let loaded_applescript_syntax_checker = 1
+
+"bail if the user doesnt have osacompile installed
+if !executable("osacompile")
+ finish
+endif
+
+function! SyntaxCheckers_applescript_GetLocList()
+ let makeprg = 'osacompile -o ' . tempname() . '.scpt '. shellescape(expand('%'))
+ let errorformat = '%f:%l:%m'
+
+ return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
+endfunction
diff --git a/vim/syntax_checkers/c.vim b/vim/syntax_checkers/c.vim
new file mode 100644
index 0000000..8bd486b
--- /dev/null
+++ b/vim/syntax_checkers/c.vim
@@ -0,0 +1,156 @@
+"============================================================================
+"File: c.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Gregor Uhlenheuer <kongo2002 at gmail dot com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+
+" In order to also check header files add this to your .vimrc:
+" (this usually creates a .gch file in your source directory)
+"
+" let g:syntastic_c_check_header = 1
+"
+" To disable the search of included header files after special
+" libraries like gtk and glib add this line to your .vimrc:
+"
+" let g:syntastic_c_no_include_search = 1
+"
+" To enable header files being re-checked on every file write add the
+" following line to your .vimrc. Otherwise the header files are checked only
+" one time on initially loading the file.
+" In order to force syntastic to refresh the header includes simply
+" unlet b:syntastic_c_includes. Then the header files are being re-checked on
+" the next file write.
+"
+" let g:syntastic_c_auto_refresh_includes = 1
+"
+" Alternatively you can set the buffer local variable b:syntastic_c_cflags.
+" If this variable is set for the current buffer no search for additional
+" libraries is done. I.e. set the variable like this:
+"
+" let b:syntastic_c_cflags = ' -I/usr/include/libsoup-2.4'
+"
+" In order to add some custom include directories that should be added to the
+" gcc command line you can add those to the global variable
+" g:syntastic_c_include_dirs. This list can be used like this:
+"
+" let g:syntastic_c_include_dirs = [ 'includes', 'headers' ]
+"
+" Moreover it is possible to add additional compiler options to the syntax
+" checking execution via the variable 'g:syntastic_c_compiler_options':
+"
+" let g:syntastic_c_compiler_options = ' -ansi'
+"
+" Using the global variable 'g:syntastic_c_remove_include_errors' you can
+" specify whether errors of files included via the g:syntastic_c_include_dirs'
+" setting are removed from the result set:
+"
+" let g:syntastic_c_remove_include_errors = 1
+
+if exists('loaded_c_syntax_checker')
+ finish
+endif
+let loaded_c_syntax_checker = 1
+
+if !executable('gcc')
+ finish
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+" default include directories
+let s:default_includes = [ '.', '..', 'include', 'includes',
+ \ '../include', '../includes' ]
+
+" uniquify the input list
+function! s:Unique(list)
+ let l = []
+ for elem in a:list
+ if index(l, elem) == -1
+ let l = add(l, elem)
+ endif
+ endfor
+ return l
+endfunction
+
+" get the gcc include directory argument depending on the default
+" includes and the optional user-defined 'g:syntastic_c_include_dirs'
+function! s:GetIncludeDirs()
+ let include_dirs = s:default_includes
+
+ if exists('g:syntastic_c_include_dirs')
+ call extend(include_dirs, g:syntastic_c_include_dirs)
+ endif
+
+ return join(map(s:Unique(include_dirs), '"-I" . v:val'), ' ')
+endfunction
+
+function! SyntaxCheckers_c_GetLocList()
+ let makeprg = 'gcc -fsyntax-only -std=gnu99 '.shellescape(expand('%')).
+ \ ' '.s:GetIncludeDirs()
+ let errorformat = '%-G%f:%s:,%-G%f:%l: %#error: %#(Each undeclared '.
+ \ 'identifier is reported only%.%#,%-G%f:%l: %#error: %#for '.
+ \ 'each function it appears%.%#,%-GIn file included%.%#,'.
+ \ '%-G %#from %f:%l\,,%f:%l:%c: %m,%f:%l: %trror: %m,%f:%l: %m'
+
+ " determine whether to parse header files as well
+ if expand('%') =~? '.h$'
+ if exists('g:syntastic_c_check_header')
+ let makeprg = 'gcc -c '.shellescape(expand('%')).
+ \ ' '.s:GetIncludeDirs()
+ else
+ return []
+ endif
+ endif
+
+ " add optional user-defined compiler options
+ if exists('g:syntastic_c_compiler_options')
+ let makeprg .= g:syntastic_c_compiler_options
+ endif
+
+ " check if the user manually set some cflags
+ if !exists('b:syntastic_c_cflags')
+ " check whether to search for include files at all
+ if !exists('g:syntastic_c_no_include_search') ||
+ \ g:syntastic_c_no_include_search != 1
+ " refresh the include file search if desired
+ if exists('g:syntastic_c_auto_refresh_includes') &&
+ \ g:syntastic_c_auto_refresh_includes != 0
+ let makeprg .= syntastic#c#SearchHeaders()
+ else
+ " search for header includes if not cached already
+ if !exists('b:syntastic_c_includes')
+ let b:syntastic_c_includes = syntastic#c#SearchHeaders()
+ endif
+ let makeprg .= b:syntastic_c_includes
+ endif
+ endif
+ else
+ " use the user-defined cflags
+ let makeprg .= b:syntastic_c_cflags
+ endif
+
+ " process makeprg
+ let errors = SyntasticMake({ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+
+ " filter the processed errors if desired
+ if exists('g:syntastic_c_remove_include_errors') &&
+ \ g:syntastic_c_remove_include_errors != 0
+ return filter(errors,
+ \ 'has_key(v:val, "bufnr") && v:val["bufnr"]=='.bufnr(''))
+ else
+ return errors
+ endif
+endfunction
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/syntax_checkers/coffee.vim b/vim/syntax_checkers/coffee.vim
new file mode 100644
index 0000000..59dca75
--- /dev/null
+++ b/vim/syntax_checkers/coffee.vim
@@ -0,0 +1,27 @@
+"============================================================================
+"File: coffee.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Lincoln Stoll <l@lds.li>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+if exists("loaded_coffee_syntax_checker")
+ finish
+endif
+let loaded_coffee_syntax_checker = 1
+
+"bail if the user doesnt have coffee installed
+if !executable("coffee")
+ finish
+endif
+
+function! SyntaxCheckers_coffee_GetLocList()
+ let makeprg = 'coffee -c -l -o /tmp '.shellescape(expand('%'))
+ let errorformat = '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,%-Z%p^,%W%f(%l): warning: %m,%-Z%p^,%E%f(%l): SyntaxError: %m,%-Z%p^,%-G%.%#'
+
+ return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
+endfunction
diff --git a/vim/syntax_checkers/cpp.vim b/vim/syntax_checkers/cpp.vim
new file mode 100644
index 0000000..1bacf93
--- /dev/null
+++ b/vim/syntax_checkers/cpp.vim
@@ -0,0 +1,94 @@
+"============================================================================
+"File: cpp.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Gregor Uhlenheuer <kongo2002 at gmail dot com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+
+" in order to also check header files add this to your .vimrc:
+" (this usually creates a .gch file in your source directory)
+"
+" let g:syntastic_cpp_check_header = 1
+"
+" To disable the search of included header files after special
+" libraries like gtk and glib add this line to your .vimrc:
+"
+" let g:syntastic_cpp_no_include_search = 1
+"
+" To enable header files being re-checked on every file write add the
+" following line to your .vimrc. Otherwise the header files are checked only
+" one time on initially loading the file.
+" In order to force syntastic to refresh the header includes simply
+" unlet b:syntastic_cpp_includes. Then the header files are being re-checked
+" on the next file write.
+"
+" let g:syntastic_cpp_auto_refresh_includes = 1
+"
+" Alternatively you can set the buffer local variable b:syntastic_cpp_cflags.
+" If this variable is set for the current buffer no search for additional
+" libraries is done. I.e. set the variable like this:
+"
+" let b:syntastic_cpp_cflags = ' -I/usr/include/libsoup-2.4'
+"
+" Moreover it is possible to add additional compiler options to the syntax
+" checking execution via the variable 'g:syntastic_cpp_compiler_options':
+"
+" let g:syntastic_cpp_compiler_options = ' -std=c++0x'
+
+if exists('loaded_cpp_syntax_checker')
+ finish
+endif
+let loaded_cpp_syntax_checker = 1
+
+if !executable('g++')
+ finish
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_cpp_GetLocList()
+ let makeprg = 'g++ -fsyntax-only '.shellescape(expand('%'))
+ let errorformat = '%-G%f:%s:,%f:%l:%c: %m,%f:%l: %m'
+
+ if expand('%') =~? '\%(.h\|.hpp\|.hh\)$'
+ if exists('g:syntastic_cpp_check_header')
+ let makeprg = 'g++ -c '.shellescape(expand('%'))
+ else
+ return []
+ endif
+ endif
+
+ if exists('g:syntastic_cpp_compiler_options')
+ let makeprg .= g:syntastic_cpp_compiler_options
+ endif
+
+ if !exists('b:syntastic_cpp_cflags')
+ if !exists('g:syntastic_cpp_no_include_search') ||
+ \ g:syntastic_cpp_no_include_search != 1
+ if exists('g:syntastic_cpp_auto_refresh_includes') &&
+ \ g:syntastic_cpp_auto_refresh_includes != 0
+ let makeprg .= syntastic#c#SearchHeaders()
+ else
+ if !exists('b:syntastic_cpp_includes')
+ let b:syntastic_cpp_includes = syntastic#c#SearchHeaders()
+ endif
+ let makeprg .= b:syntastic_cpp_includes
+ endif
+ endif
+ else
+ let makeprg .= b:syntastic_cpp_cflags
+ endif
+
+ return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
+endfunction
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/syntax_checkers/css.vim b/vim/syntax_checkers/css.vim
new file mode 100644
index 0000000..99a16b8
--- /dev/null
+++ b/vim/syntax_checkers/css.vim
@@ -0,0 +1,31 @@
+"============================================================================
+"File: css.vim
+"Description: Syntax checking plugin for syntastic.vim using `csslint` CLI tool (http://csslint.net).
+"Maintainer: Ory Band <oryband at gmail dot com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"============================================================================
+if exists("loaded_css_syntax_checker")
+ finish
+endif
+let loaded_css_syntax_checker = 1
+
+" Bail if the user doesn't have `csslint` installed.
+if !executable("csslint")
+ finish
+endif
+
+function! SyntaxCheckers_css_GetLocList()
+ let makeprg = 'csslint --format=compact '.shellescape(expand('%'))
+
+ " Print CSS Lint's error/warning messages from compact format. Ignores blank lines.
+ let errorformat = '%-G,%-G%f: lint free!,%f: line %l\, col %c\, %trror - %m,%f: line %l\, col %c\, %tarning - %m,%f: line %l\, col %c\, %m,'
+
+ return SyntasticMake({ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'defaults': {'bufnr': bufnr("")} })
+
+endfunction
diff --git a/vim/syntax_checkers/cucumber.vim b/vim/syntax_checkers/cucumber.vim
new file mode 100644
index 0000000..c9a87e1
--- /dev/null
+++ b/vim/syntax_checkers/cucumber.vim
@@ -0,0 +1,27 @@
+"============================================================================
+"File: cucumber.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Martin Grenfell <martin.grenfell at gmail dot com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+if exists("loaded_cucumber_syntax_checker")
+ finish
+endif
+let loaded_cucumber_syntax_checker = 1
+
+"bail if the user doesnt have cucumber installed
+if !executable("cucumber")
+ finish
+endif
+
+function! SyntaxCheckers_cucumber_GetLocList()
+ let makeprg = 'cucumber --dry-run --quiet --strict --format pretty '.shellescape(expand('%'))
+ let errorformat = '%f:%l:%c:%m,%W %.%# (%m),%-Z%f:%l:%.%#,%-G%.%#'
+
+ return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
+endfunction
diff --git a/vim/syntax_checkers/cuda.vim b/vim/syntax_checkers/cuda.vim
new file mode 100644
index 0000000..816505e
--- /dev/null
+++ b/vim/syntax_checkers/cuda.vim
@@ -0,0 +1,37 @@
+"============================================================================
+"File: cuda.vim
+"Description: Syntax checking plugin for syntastic.vim
+"
+"Author: Hannes Schulz <schulz at ais dot uni-bonn dot de>
+"
+"============================================================================
+
+" in order to also check header files add this to your .vimrc:
+" (this creates an empty .syntastic_dummy.cu file in your source directory)
+"
+" let g:syntastic_cuda_check_header = 1
+
+if exists('loaded_cuda_syntax_checker')
+ finish
+endif
+let loaded_cuda_syntax_checker = 1
+
+if !executable('nvcc')
+ finish
+endif
+
+function! SyntaxCheckers_cuda_GetLocList()
+ let makeprg = 'nvcc --cuda -O0 -I . -Xcompiler -fsyntax-only '.shellescape(expand('%')).' -o /dev/null'
+ "let errorformat = '%-G%f:%s:,%f:%l:%c: %m,%f:%l: %m'
+ let errorformat = '%*[^"]"%f"%*\D%l: %m,"%f"%*\D%l: %m,%-G%f:%l: (Each undeclared identifier is reported only once,%-G%f:%l: for each function it appears in.),%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,"%f"\, line %l%*\D%c%*[^ ] %m,%D%*\a[%*\d]: Entering directory `%f'',%X%*\a[%*\d]: Leaving directory `%f'',%D%*\a: Entering directory `%f'',%X%*\a: Leaving directory `%f'',%DMaking %*\a in %f,%f|%l| %m'
+
+ if expand('%') =~? '\%(.h\|.hpp\|.cuh\)$'
+ if exists('g:syntastic_cuda_check_header')
+ let makeprg = 'echo > .syntastic_dummy.cu ; nvcc --cuda -O0 -I . .syntastic_dummy.cu -Xcompiler -fsyntax-only -include '.shellescape(expand('%')).' -o /dev/null'
+ else
+ return []
+ endif
+ endif
+
+ return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
+endfunction
diff --git a/vim/syntax_checkers/docbk.vim b/vim/syntax_checkers/docbk.vim
new file mode 100644
index 0000000..cd360e4
--- /dev/null
+++ b/vim/syntax_checkers/docbk.vim
@@ -0,0 +1,29 @@
+"============================================================================
+"File: docbk.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Martin Grenfell <martin.grenfell at gmail dot com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+if exists("loaded_docbk_syntax_checker")
+ finish
+endif
+let loaded_docbk_syntax_checker = 1
+
+"bail if the user doesnt have tidy or grep installed
+if !executable("xmllint")
+ finish
+endif
+
+function! SyntaxCheckers_docbk_GetLocList()
+
+ let makeprg="xmllint --xinclude --noout --postvalid ".shellescape(expand(%:p))
+ let errorformat='%E%f:%l: parser error : %m,%W%f:%l: parser warning : %m,%E%f:%l:%.%# validity error : %m,%W%f:%l:%.%# validity warning : %m,%-Z%p^,%-C%.%#,%-G%.%#'
+ let loclist = SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
+
+ return loclist
+endfunction
diff --git a/vim/syntax_checkers/efm_perl.pl b/vim/syntax_checkers/efm_perl.pl
new file mode 100644
index 0000000..570d6e7
--- /dev/null
+++ b/vim/syntax_checkers/efm_perl.pl
@@ -0,0 +1,153 @@
+#!/usr/bin/perl -w
+
+# vimparse.pl - Reformats the error messages of the Perl interpreter for use
+# with the quickfix mode of Vim
+#
+# Copyright (©) 2001 by Jörg Ziefle <joerg.ziefle@gmx.de>
+# You may use and distribute this software under the same terms as Perl itself.
+#
+# Usage: put one of the two configurations below in your ~/.vimrc (without the
+# description and '# ') and enjoy (be sure to adjust the paths to vimparse.pl
+# before):
+#
+# Program is run interactively with 'perl -w':
+#
+# set makeprg=$HOME/bin/vimparse.pl\ %\ $*
+# set errorformat=%f:%l:%m
+#
+# Program is only compiled with 'perl -wc':
+#
+# set makeprg=$HOME/bin/vimparse.pl\ -c\ %\ $*
+# set errorformat=%f:%l:%m
+#
+# Usage:
+# vimparse.pl [-c] [-f <errorfile>] <programfile> [programargs]
+#
+# -c compile only, don't run (perl -wc)
+# -f write errors to <errorfile>
+#
+# Example usages:
+# * From the command line:
+# vimparse.pl program.pl
+#
+# vimparse.pl -c -f errorfile program.pl
+# Then run vim -q errorfile to edit the errors with Vim.
+#
+# * From Vim:
+# Edit in Vim (and save, if you don't have autowrite on), then
+# type ':mak' or ':mak args' (args being the program arguments)
+# to error check.
+#
+# Version history:
+# 0.2 (04/12/2001):
+# * First public version (sent to Bram)
+# * -c command line option for compiling only
+# * grammatical fix: 'There was 1 error.'
+# * bug fix for multiple arguments
+# * more error checks
+# * documentation (top of file, &usage)
+# * minor code clean ups
+# 0.1 (02/02/2001):
+# * Initial version
+# * Basic functionality
+#
+# Todo:
+# * test on more systems
+# * use portable way to determine the location of perl ('use Config')
+# * include option that shows perldiag messages for each error
+# * allow to pass in program by STDIN
+# * more intuitive behaviour if no error is found (show message)
+#
+# Tested under SunOS 5.7 with Perl 5.6.0. Let me know if it's not working for
+# you.
+
+use strict;
+use Getopt::Std;
+
+use vars qw/$opt_c $opt_f $opt_h/; # needed for Getopt in combination with use strict 'vars'
+
+use constant VERSION => 0.2;
+
+getopts('cf:h');
+
+&usage if $opt_h; # not necessarily needed, but good for further extension
+
+if (defined $opt_f) {
+
+ open FILE, "> $opt_f" or do {
+ warn "Couldn't open $opt_f: $!. Using STDOUT instead.\n";
+ undef $opt_f;
+ };
+
+};
+
+my $handle = (defined $opt_f ? \*FILE : \*STDOUT);
+
+(my $file = shift) or &usage; # display usage if no filename is supplied
+my $args = (@ARGV ? ' ' . join ' ', @ARGV : '');
+
+my @lines = `perl @{[defined $opt_c ? '-c ' : '' ]} -w "$file$args" 2>&1`;
+
+my $errors = 0;
+foreach my $line (@lines) {
+
+ chomp($line);
+ my ($file, $lineno, $message, $rest);
+
+ if ($line =~ /^(.*)\sat\s(.*)\sline\s(\d+)(\.|,\snear\s\".*\")$/) {
+
+ ($message, $file, $lineno, $rest) = ($1, $2, $3, $4);
+ $errors++;
+ $message .= $rest if ($rest =~ s/^,//);
+ print $handle "$file:$lineno:$message\n";
+
+ } else { next };
+
+}
+
+if (defined $opt_f) {
+
+ my $msg;
+ if ($errors == 1) {
+
+ $msg = "There was 1 error.\n";
+
+ } else {
+
+ $msg = "There were $errors errors.\n";
+
+ };
+
+ print STDOUT $msg;
+ close FILE;
+ unlink $opt_f unless $errors;
+
+};
+
+sub usage {
+
+ (local $0 = $0) =~ s/^.*\/([^\/]+)$/$1/; # remove path from name of program
+ print<<EOT;
+Usage:
+ $0 [-c] [-f <errorfile>] <programfile> [programargs]
+
+ -c compile only, don't run (executes 'perl -wc')
+ -f write errors to <errorfile>
+
+Examples:
+ * At the command line:
+ $0 program.pl
+ Displays output on STDOUT.
+
+ $0 -c -f errorfile program.pl
+ Then run 'vim -q errorfile' to edit the errors with Vim.
+
+ * In Vim:
+ Edit in Vim (and save, if you don't have autowrite on), then
+ type ':mak' or ':mak args' (args being the program arguments)
+ to error check.
+EOT
+
+ exit 0;
+
+};
diff --git a/vim/syntax_checkers/erlang.vim b/vim/syntax_checkers/erlang.vim
new file mode 100644
index 0000000..d7dceae
--- /dev/null
+++ b/vim/syntax_checkers/erlang.vim
@@ -0,0 +1,42 @@
+"============================================================================
+"File: erlang.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Pawel Salata <rockplayer.pl at gmail dot com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+if exists("loaded_erlang_syntax_checker")
+ finish
+endif
+let loaded_erlang_syntax_checker = 1
+
+"bail if the user doesnt have escript installed
+if !executable("escript")
+ finish
+endif
+
+let s:check_file = expand('<sfile>:p:h') . '/erlang_check_file.erl'
+
+function! SyntaxCheckers_erlang_GetLocList()
+ let extension = expand('%:e')
+ if match(extension, 'hrl') >= 0
+ return []
+ endif
+ let shebang = getbufline(bufnr('%'), 1)[0]
+ if len(shebang) > 0
+ if match(shebang, 'escript') >= 0
+ let makeprg = 'escript -s '.shellescape(expand('%:p'))
+ else
+ let makeprg = s:check_file . ' '. shellescape(expand('%:p'))
+ endif
+ else
+ let makeprg = s:check_file . ' ' . shellescape(expand('%:p'))
+ endif
+ let errorformat = '%f:%l:\ %tarning:\ %m,%E%f:%l:\ %m'
+
+ return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
+endfunction
diff --git a/vim/syntax_checkers/erlang_check_file.erl b/vim/syntax_checkers/erlang_check_file.erl
new file mode 100755
index 0000000..8a85bf6
--- /dev/null
+++ b/vim/syntax_checkers/erlang_check_file.erl
@@ -0,0 +1,12 @@
+#!/usr/bin/env escript
+-export([main/1]).
+
+main([FileName]) ->
+ compile:file(FileName, [warn_obsolete_guard,
+ warn_unused_import,
+ warn_shadow_vars,
+ warn_export_vars,
+ strong_validation,
+ report,
+ {i, filename:dirname(FileName) ++ "/../include"}
+ ]).
diff --git a/vim/syntax_checkers/eruby.vim b/vim/syntax_checkers/eruby.vim
new file mode 100644
index 0000000..fcff063
--- /dev/null
+++ b/vim/syntax_checkers/eruby.vim
@@ -0,0 +1,34 @@
+"============================================================================
+"File: eruby.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Martin Grenfell <martin.grenfell at gmail dot com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+if exists("loaded_eruby_syntax_checker")
+ finish
+endif
+let loaded_eruby_syntax_checker = 1
+
+"bail if the user doesnt have ruby or cat installed
+if !executable("ruby") || !executable("cat")
+ finish
+endif
+
+function! SyntaxCheckers_eruby_GetLocList()
+ if has('win32') || has('win64')
+ let makeprg='sed "s/<\%=/<\%/g" '. shellescape(expand("%")) . ' \| ruby -e "require \"erb\"; puts ERB.new(ARGF.read, nil, \"-\").src" \| ruby -c'
+ else
+ let makeprg='sed "s/<\%=/<\%/g" '. shellescape(expand("%")) . ' \| RUBYOPT= ruby -e "require \"erb\"; puts ERB.new(ARGF.read, nil, \"-\").src" \| RUBYOPT= ruby -c'
+ endif
+
+ let errorformat='%-GSyntax OK,%E-:%l: syntax error\, %m,%Z%p^,%W-:%l: warning: %m,%Z%p^,%-C%.%#'
+ return SyntasticMake({ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'defaults': {'bufnr': bufnr("")} })
+
+endfunction
diff --git a/vim/syntax_checkers/fortran.vim b/vim/syntax_checkers/fortran.vim
new file mode 100644
index 0000000..ee176f2
--- /dev/null
+++ b/vim/syntax_checkers/fortran.vim
@@ -0,0 +1,44 @@
+"============================================================================
+"File: fortran.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Karl Yngve Lervåg <karl.yngve@lervag.net>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"Note: This syntax checker uses gfortran with the option -fsyntax-only
+" to check for errors and warnings. Additional flags may be
+" supplied through both local and global variables,
+" b:syntastic_fortran_flags,
+" g:syntastic_fortran_flags.
+" This is particularly useful when the source requires module files
+" in order to compile (that is when it needs modules defined in
+" separate files).
+"
+"============================================================================
+
+if exists("loaded_fortran_syntax_checker")
+ finish
+endif
+let loaded_fortran_syntax_checker = 1
+
+"bail if the user doesnt have fortran installed
+if !executable("gfortran")
+ finish
+endif
+
+if !exists('g:syntastic_fortran_flags')
+ let g:syntastic_fortran_flags = ''
+endif
+
+function! SyntaxCheckers_fortran_GetLocList()
+ let makeprg = 'gfortran -fsyntax-only'
+ let makeprg .= g:syntastic_fortran_flags
+ if exists('b:syntastic_fortran_flags')
+ let makeprg .= b:syntastic_fortran_flags
+ endif
+ let makeprg .= ' ' . shellescape(expand('%'))
+ let errorformat = '%-C %#,%-C %#%.%#,%A%f:%l.%c:,%Z%m,%G%.%#'
+ return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
+endfunction
diff --git a/vim/syntax_checkers/gentoo_metadata.vim b/vim/syntax_checkers/gentoo_metadata.vim
new file mode 100644
index 0000000..d016a88
--- /dev/null
+++ b/vim/syntax_checkers/gentoo_metadata.vim
@@ -0,0 +1,37 @@
+"============================================================================
+"File: gentoo-metadata.vim
+"Description: Syntax checking plugin for Gentoo's metadata.xml files
+"Maintainer: James Rowe <jnrowe at gmail dot com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+
+" The DTDs required to validate metadata.xml files are available in
+" $PORTDIR/metadata/dtd, and these local files can be used to significantly
+" speed up validation. You can create a catalog file with:
+"
+" xmlcatalog --create --add rewriteURI http://www.gentoo.org/dtd/ \
+" ${PORTDIR:-/usr/portage}/metadata/dtd/ /etc/xml/gentoo
+"
+" See xmlcatalog(1) and http://www.xmlsoft.org/catalog.html for more
+" information.
+
+if exists("loaded_gentoo_metadata_syntax_checker")
+ finish
+endif
+let loaded_gentoo_metadata_syntax_checker = 1
+
+"bail if the user doesn't have xmllint installed
+if !executable("xmllint")
+ finish
+endif
+
+runtime syntax_checkers/xml.vim
+
+function! SyntaxCheckers_gentoo_metadata_GetLocList()
+ return SyntaxCheckers_xml_GetLocList()
+endfunction
diff --git a/vim/syntax_checkers/go.vim b/vim/syntax_checkers/go.vim
new file mode 100644
index 0000000..395ae11
--- /dev/null
+++ b/vim/syntax_checkers/go.vim
@@ -0,0 +1,22 @@
+"============================================================================
+"File: go.vim
+"Description: Loads a go syntax checker from the go directory
+"Maintainer: Martin Grenfell <martin.grenfell at gmail dot com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+" Use g:syntastic_go_checker option to specify which go executable
+" should be used (see below for a list of supported checkers).
+" If g:syntastic_go_checker is not set, just use the first syntax
+" checker that we find installed.
+"============================================================================
+if exists("loaded_go_syntax_checker")
+ finish
+endif
+let loaded_go_syntax_checker = 1
+
+let s:supported_checkers = ["6g", "gofmt"]
+call SyntasticLoadChecker(s:supported_checkers)
diff --git a/vim/syntax_checkers/go/6g.vim b/vim/syntax_checkers/go/6g.vim
new file mode 100644
index 0000000..1a4249e
--- /dev/null
+++ b/vim/syntax_checkers/go/6g.vim
@@ -0,0 +1,17 @@
+"============================================================================
+"File: 6g.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Sam Nguyen <samxnguyen@gmail.com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+function! SyntaxCheckers_go_GetLocList()
+ let makeprg = '6g -o /dev/null %'
+ let errorformat = '%E%f:%l: %m'
+
+ return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
+endfunction
diff --git a/vim/syntax_checkers/go/gofmt.vim b/vim/syntax_checkers/go/gofmt.vim
new file mode 100644
index 0000000..77abe7e
--- /dev/null
+++ b/vim/syntax_checkers/go/gofmt.vim
@@ -0,0 +1,16 @@
+"============================================================================
+"File: gofmt.vim
+"Description: Check go syntax using gofmt
+"Maintainer: Brandon Thomson <bt@brandonthomson.com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+function! SyntaxCheckers_go_GetLocList()
+ let makeprg = 'gofmt %'
+ let errorformat = '%f:%l:%c: %m,%-G%.%#'
+ return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat, 'defaults': {'type': 'e'} })
+endfunction
diff --git a/vim/syntax_checkers/haml.vim b/vim/syntax_checkers/haml.vim
new file mode 100644
index 0000000..b9ad6ad
--- /dev/null
+++ b/vim/syntax_checkers/haml.vim
@@ -0,0 +1,26 @@
+"============================================================================
+"File: haml.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Martin Grenfell <martin.grenfell at gmail dot com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+if exists("loaded_haml_syntax_checker")
+ finish
+endif
+let loaded_haml_syntax_checker = 1
+
+"bail if the user doesnt have the haml binary installed
+if !executable("haml")
+ finish
+endif
+
+function! SyntaxCheckers_haml_GetLocList()
+ let makeprg = "haml -c " . shellescape(expand("%"))
+ let errorformat = 'Haml error on line %l: %m,Syntax error on line %l: %m,%-G%.%#'
+ return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
+endfunction
diff --git a/vim/syntax_checkers/haskell.vim b/vim/syntax_checkers/haskell.vim
new file mode 100644
index 0000000..07c55e8
--- /dev/null
+++ b/vim/syntax_checkers/haskell.vim
@@ -0,0 +1,37 @@
+"============================================================================
+"File: haskell.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Anthony Carapetis <anthony.carapetis at gmail dot com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+if exists("loaded_haskell_syntax_checker")
+ finish
+endif
+let loaded_haskell_syntax_checker = 1
+
+"bail if the user doesnt have ghc-mod installed
+if !executable("ghc-mod")
+ finish
+endif
+
+function! SyntaxCheckers_haskell_GetLocList()
+ let makeprg =
+ \ "{ ".
+ \ "ghc-mod check ". shellescape(expand('%')) . "; " .
+ \ "ghc-mod lint " . shellescape(expand('%')) . ";" .
+ \ " }"
+ let errorformat = '%-G\\s%#,%f:%l:%c:%trror: %m,%f:%l:%c:%tarning: %m,'.
+ \ '%f:%l:%c: %trror: %m,%f:%l:%c: %tarning: %m,%f:%l:%c:%m,'.
+ \ '%E%f:%l:%c:,%Z%m,'
+
+ return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
+endfunction
+
+function! SyntaxCheckers_lhaskell_GetLocList()
+ return SyntaxCheckers_haskell_GetLocList()
+endfunction
diff --git a/vim/syntax_checkers/haxe.vim b/vim/syntax_checkers/haxe.vim
new file mode 100644
index 0000000..22183ee
--- /dev/null
+++ b/vim/syntax_checkers/haxe.vim
@@ -0,0 +1,55 @@
+"============================================================================
+"File: haxe.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: David Bernard <david.bernard.31 at gmail dot com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+if exists("loaded_haxe_syntax_checker")
+ finish
+endif
+let loaded_haxe_syntax_checker = 1
+
+"bail if the user doesn't have haxe installed
+if !executable("haxe")
+ finish
+endif
+
+" s:FindInParent
+" find the file argument and returns the path to it.
+" Starting with the current working dir, it walks up the parent folders
+" until it finds the file, or it hits the stop dir.
+" If it doesn't find it, it returns "Nothing"
+function! s:FindInParent(fln,flsrt,flstp)
+ let here = a:flsrt
+ while ( strlen( here) > 0 )
+ let p = split(globpath(here, a:fln), '\n')
+ if len(p) > 0
+ return ['ok', here, fnamemodify(p[0], ':p:t')]
+ endif
+ let fr = match(here, '/[^/]*$')
+ if fr == -1
+ break
+ endif
+ let here = strpart(here, 0, fr)
+ if here == a:flstp
+ break
+ endif
+ endwhile
+ return ['fail', '', '']
+endfunction
+
+function! SyntaxCheckers_haxe_GetLocList()
+ let [success, hxmldir, hxmlname] = s:FindInParent('*.hxml', expand('%:p:h'), '/')
+ if success == 'ok'
+ let makeprg = 'cd ' . hxmldir . '; haxe ' . hxmlname
+ let errorformat = '%E%f:%l: characters %c-%*[0-9] : %m'
+ return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
+ else
+ return SyntasticMake({})
+ endif
+endfunction
diff --git a/vim/syntax_checkers/html.vim b/vim/syntax_checkers/html.vim
new file mode 100644
index 0000000..2c1b8b4
--- /dev/null
+++ b/vim/syntax_checkers/html.vim
@@ -0,0 +1,86 @@
+"============================================================================
+"File: html.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Martin Grenfell <martin.grenfell at gmail dot com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+if exists("loaded_html_syntax_checker")
+ finish
+endif
+let loaded_html_syntax_checker = 1
+
+"bail if the user doesnt have tidy or grep installed
+if !executable("tidy") || !executable("grep")
+ finish
+endif
+
+" TODO: join this with xhtml.vim for DRY's sake?
+function! s:TidyEncOptByFenc()
+ let tidy_opts = {
+ \'utf-8' : '-utf8',
+ \'ascii' : '-ascii',
+ \'latin1' : '-latin1',
+ \'iso-2022-jp' : '-iso-2022',
+ \'cp1252' : '-win1252',
+ \'macroman' : '-mac',
+ \'utf-16le' : '-utf16le',
+ \'utf-16' : '-utf16',
+ \'big5' : '-big5',
+ \'sjis' : '-shiftjis',
+ \'cp850' : '-ibm858',
+ \}
+ return get(tidy_opts, &fileencoding, '-utf8')
+endfunction
+
+let s:ignore_html_errors = [
+ \ "<table> lacks \"summary\" attribute",
+ \ "not approved by W3C",
+ \ "attribute \"placeholder\"",
+ \ "<meta> proprietary attribute \"charset\"",
+ \ "<meta> lacks \"content\" attribute",
+ \ "inserting \"type\" attribute",
+ \ "proprietary attribute \"data-"
+ \]
+
+function! s:ValidateError(text)
+ let valid = 0
+ for i in s:ignore_html_errors
+ if stridx(a:text, i) != -1
+ let valid = 1
+ break
+ endif
+ endfor
+ return valid
+endfunction
+
+
+function! SyntaxCheckers_html_GetLocList()
+
+ let encopt = s:TidyEncOptByFenc()
+ let makeprg="tidy ".encopt." --new-blocklevel-tags ".shellescape('section, article, aside, hgroup, header, footer, nav, figure, figcaption')." --new-inline-tags ".shellescape('video, audio, embed, mark, progress, meter, time, ruby, rt, rp, canvas, command, details, datalist')." --new-empty-tags ".shellescape('wbr, keygen')." -e ".shellescape(expand('%'))." 2>&1"
+ let errorformat='%Wline %l column %c - Warning: %m,%Eline %l column %c - Error: %m,%-G%.%#,%-G%.%#'
+ let loclist = SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
+
+ " process loclist since we need to add some info and filter out valid HTML5
+ " from the errors
+ let n = len(loclist) - 1
+ let bufnum = bufnr("")
+ while n >= 0
+ let i = loclist[n]
+ " filter out valid HTML5
+ if s:ValidateError(i['text']) == 1
+ unlet loclist[n]
+ else
+ "the file name isnt in the output so stick in the buf num manually
+ let i['bufnr'] = bufnum
+ endif
+ let n -= 1
+ endwhile
+
+ return loclist
+endfunction
diff --git a/vim/syntax_checkers/javascript.vim b/vim/syntax_checkers/javascript.vim
new file mode 100644
index 0000000..026c737
--- /dev/null
+++ b/vim/syntax_checkers/javascript.vim
@@ -0,0 +1,23 @@
+"============================================================================
+"File: javascript.vim
+"Description: Figures out which javascript syntax checker (if any) to load
+" from the javascript directory.
+"Maintainer: Martin Grenfell <martin.grenfell at gmail dot com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+" Use g:syntastic_javascript_checker option to specify which jslint executable
+" should be used (see below for a list of supported checkers).
+" If g:syntastic_javascript_checker is not set, just use the first syntax
+" checker that we find installed.
+"============================================================================
+if exists("loaded_javascript_syntax_checker")
+ finish
+endif
+let loaded_javascript_syntax_checker = 1
+
+let s:supported_checkers = ["gjslint", "jslint", "jsl", "jshint"]
+call SyntasticLoadChecker(s:supported_checkers)
diff --git a/vim/syntax_checkers/javascript/gjslint.vim b/vim/syntax_checkers/javascript/gjslint.vim
new file mode 100644
index 0000000..05e1c0f
--- /dev/null
+++ b/vim/syntax_checkers/javascript/gjslint.vim
@@ -0,0 +1,20 @@
+"============================================================================
+"File: gjslint.vim
+"Description: Javascript syntax checker - using gjslint
+"Maintainer: Martin Grenfell <martin.grenfell at gmail dot com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"============================================================================
+if !exists("g:syntastic_javascript_gjslint_conf")
+ let g:syntastic_javascript_gjslint_conf = ""
+endif
+
+function! SyntaxCheckers_javascript_GetLocList()
+ let makeprg = "gjslint " . g:syntastic_javascript_gjslint_conf . " --nosummary --unix_mode --nodebug_indentation --nobeep " . shellescape(expand('%'))
+ let errorformat="%f:%l:(New Error -%\\?\%n) %m,%f:%l:(-%\\?%n) %m,%-G1 files checked, no errors found.,%-G%.%#"
+ return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
+endfunction
+
diff --git a/vim/syntax_checkers/javascript/jshint.vim b/vim/syntax_checkers/javascript/jshint.vim
new file mode 100644
index 0000000..164b7bd
--- /dev/null
+++ b/vim/syntax_checkers/javascript/jshint.vim
@@ -0,0 +1,21 @@
+"============================================================================
+"File: jshint.vim
+"Description: Javascript syntax checker - using jshint
+"Maintainer: Martin Grenfell <martin.grenfell at gmail dot com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"============================================================================
+if !exists("g:syntastic_javascript_jshint_conf")
+ let g:syntastic_javascript_jshint_conf = ""
+endif
+
+function! SyntaxCheckers_javascript_GetLocList()
+ " node-jshint uses .jshintrc as config unless --config arg is present
+ let args = !empty(g:syntastic_javascript_jshint_conf) ? ' --config ' . g:syntastic_javascript_jshint_conf : ''
+ let makeprg = 'jshint ' . shellescape(expand("%")) . args
+ let errorformat = '%ELine %l:%c,%Z\\s%#Reason: %m,%C%.%#,%f: line %l\, col %c\, %m,%-G%.%#'
+ return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat, 'defaults': {'bufnr': bufnr('')} })
+endfunction
diff --git a/vim/syntax_checkers/javascript/jsl.vim b/vim/syntax_checkers/javascript/jsl.vim
new file mode 100644
index 0000000..36c7efc
--- /dev/null
+++ b/vim/syntax_checkers/javascript/jsl.vim
@@ -0,0 +1,20 @@
+"============================================================================
+"File: jsl.vim
+"Description: Javascript syntax checker - using jsl
+"Maintainer: Martin Grenfell <martin.grenfell at gmail dot com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"============================================================================
+if !exists("g:syntastic_javascript_jsl_conf")
+ let g:syntastic_javascript_jsl_conf = ""
+endif
+
+function! SyntaxCheckers_javascript_GetLocList()
+ let makeprg = "jsl " . g:syntastic_javascript_jsl_conf . " -nologo -nofilelisting -nosummary -nocontext -process ".shellescape(expand('%'))
+ let errorformat='%W%f(%l): lint warning: %m,%-Z%p^,%W%f(%l): warning: %m,%-Z%p^,%E%f(%l): SyntaxError: %m,%-Z%p^,%-G'
+ return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
+endfunction
+
diff --git a/vim/syntax_checkers/javascript/jslint.vim b/vim/syntax_checkers/javascript/jslint.vim
new file mode 100644
index 0000000..94d48f0
--- /dev/null
+++ b/vim/syntax_checkers/javascript/jslint.vim
@@ -0,0 +1,31 @@
+"============================================================================
+"File: jslint.vim
+"Description: Javascript syntax checker - using jslint
+"Maintainer: Martin Grenfell <martin.grenfell at gmail dot com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"Tested with jslint 0.1.4.
+"============================================================================
+if !exists("g:syntastic_javascript_jslint_conf")
+ let g:syntastic_javascript_jslint_conf = "--white --undef --nomen --regexp --plusplus --bitwise --newcap --sloppy --vars"
+endif
+
+function! SyntaxCheckers_javascript_HighlightTerm(error)
+ let unexpected = matchstr(a:error['text'], 'Expected.*and instead saw \'\zs.*\ze\'')
+ if len(unexpected) < 1 | return '' | end
+ return '\V'.split(unexpected, "'")[1]
+endfunction
+
+function! SyntaxCheckers_javascript_GetLocList()
+ let makeprg = "jslint " . g:syntastic_javascript_jslint_conf . " " . shellescape(expand('%'))
+ let errorformat='%E %##%n %m,%-Z%.%#Line %l\, Pos %c,%-G%.%#'
+ let errors = SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat, 'defaults': {'bufnr': bufnr("")} })
+ call SyntasticHighlightErrors(errors, function('SyntaxCheckers_javascript_HighlightTerm'))
+
+ return errors
+endfunction
+
diff --git a/vim/syntax_checkers/json.vim b/vim/syntax_checkers/json.vim
new file mode 100644
index 0000000..2d2652d
--- /dev/null
+++ b/vim/syntax_checkers/json.vim
@@ -0,0 +1,23 @@
+"============================================================================
+"File: json.vim
+"Description: Figures out which json syntax checker (if any) to load
+" from the json directory.
+"Maintainer: Miller Medeiros <contact at millermedeiros dot com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+" Use g:syntastic_json_checker option to specify which jsonlint executable
+" should be used (see below for a list of supported checkers).
+" If g:syntastic_json_checker is not set, just use the first syntax
+" checker that we find installed.
+"============================================================================
+if exists("loaded_json_syntax_checker")
+ finish
+endif
+let loaded_json_syntax_checker = 1
+
+let s:supported_checkers = ["jsonlint", "jsonval"]
+call SyntasticLoadChecker(s:supported_checkers)
diff --git a/vim/syntax_checkers/json/jsonlint.vim b/vim/syntax_checkers/json/jsonlint.vim
new file mode 100644
index 0000000..6e4a4c0
--- /dev/null
+++ b/vim/syntax_checkers/json/jsonlint.vim
@@ -0,0 +1,16 @@
+"============================================================================
+"File: jsonlint.vim
+"Description: JSON syntax checker - using jsonlint
+"Maintainer: Miller Medeiros <contact at millermedeiros dot com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"============================================================================
+
+function! SyntaxCheckers_json_GetLocList()
+ let makeprg = 'jsonlint ' . shellescape(expand("%")) . ' --compact'
+ let errorformat = '%ELine %l:%c,%Z\\s%#Reason: %m,%C%.%#,%f: line %l\, col %c\, %m,%-G%.%#'
+ return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat, 'defaults': {'bufnr': bufnr('')} })
+endfunction
diff --git a/vim/syntax_checkers/json/jsonval.vim b/vim/syntax_checkers/json/jsonval.vim
new file mode 100644
index 0000000..f288039
--- /dev/null
+++ b/vim/syntax_checkers/json/jsonval.vim
@@ -0,0 +1,17 @@
+"============================================================================
+"File: jsonval.vim
+"Description: JSON syntax checker - using jsonval
+"Maintainer: Miller Medeiros <contact at millermedeiros dot com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"============================================================================
+
+function! SyntaxCheckers_json_GetLocList()
+ " based on https://gist.github.com/1196345
+ let makeprg = 'jsonval '. shellescape(expand('%'))
+ let errorformat = '%E%f:\ %m\ at\ line\ %l,%-G%.%#'
+ return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat, 'defaults': {'bufnr': bufnr('')} })
+endfunction
diff --git a/vim/syntax_checkers/less.vim b/vim/syntax_checkers/less.vim
new file mode 100644
index 0000000..1338ffd
--- /dev/null
+++ b/vim/syntax_checkers/less.vim
@@ -0,0 +1,38 @@
+"============================================================================
+"File: less.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Julien Blanchard <julien at sideburns dot eu>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+if exists("loaded_less_syntax_checker")
+ finish
+endif
+let loaded_less_syntax_checker = 1
+
+"bail if the user doesnt have the lessc binary installed
+if !executable("lessc")
+ finish
+endif
+
+if !exists("g:syntastic_less_options")
+ let g:syntastic_less_options = "--no-color"
+endif
+
+function! SyntaxCheckers_less_GetLocList()
+ let makeprg = 'lessc '. g:syntastic_less_options .' '. shellescape(expand('%')) . ' /dev/null'
+
+ "lessc >= 1.2
+ let errorformat = '%m in %f:%l:%c'
+ "lessc < 1.2
+ let errorformat .= ', Syntax %trror on line %l in %f,Syntax %trror on line %l,! Syntax %trror: on line %l: %m,%-G%.%#'
+
+ return SyntasticMake({ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'defaults': {'bufnr': bufnr(""), 'text': "Syntax error"} })
+endfunction
+
diff --git a/vim/syntax_checkers/lua.vim b/vim/syntax_checkers/lua.vim
new file mode 100644
index 0000000..03acb08
--- /dev/null
+++ b/vim/syntax_checkers/lua.vim
@@ -0,0 +1,58 @@
+"============================================================================
+"File: lua.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Gregor Uhlenheuer <kongo2002 at gmail dot com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+
+if exists('loaded_lua_syntax_checker')
+ finish
+endif
+let loaded_lua_syntax_checker = 1
+
+" check if the lua compiler is installed
+if !executable('luac')
+ finish
+endif
+
+function! SyntaxCheckers_lua_Term(pos)
+ let near = matchstr(a:pos['text'], "near '[^']\\+'")
+ let result = ''
+ if len(near) > 0
+ let near = split(near, "'")[1]
+ if near == '<eof>'
+ let p = getpos('$')
+ let a:pos['lnum'] = p[1]
+ let a:pos['col'] = p[2]
+ let result = '\%'.p[2].'c'
+ else
+ let result = '\V'.near
+ endif
+ let open = matchstr(a:pos['text'], "(to close '[^']\\+' at line [0-9]\\+)")
+ if len(open) > 0
+ let oline = split(open, "'")[1:2]
+ let line = 0+strpart(oline[1], 9)
+ call matchadd('SpellCap', '\%'.line.'l\V'.oline[0])
+ endif
+ endif
+ return result
+endfunction
+
+function! SyntaxCheckers_lua_GetLocList()
+ let makeprg = 'luac -p ' . shellescape(expand('%'))
+ let errorformat = 'luac: %#%f:%l: %m'
+
+ let loclist = SyntasticMake({ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'defaults': { 'bufnr': bufnr(''), 'type': 'E' } })
+
+ call SyntasticHighlightErrors(loclist, function("SyntaxCheckers_lua_Term"))
+
+ return loclist
+endfunction
+
diff --git a/vim/syntax_checkers/matlab.vim b/vim/syntax_checkers/matlab.vim
new file mode 100644
index 0000000..595b312
--- /dev/null
+++ b/vim/syntax_checkers/matlab.vim
@@ -0,0 +1,28 @@
+"============================================================================
+"File: matlab.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Jason Graham <jason at the-graham dot com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+
+if exists("loaded_matlab_syntax_checker")
+ finish
+endif
+let loaded_matlab_syntax_checker = 1
+
+"bail if the user doesn't have mlint installed
+if !executable("mlint")
+ finish
+endif
+
+function! SyntaxCheckers_matlab_GetLocList()
+ let makeprg = 'mlint -id $* '.shellescape(expand('%'))
+ let errorformat = 'L %l (C %c): %*[a-zA-Z0-9]: %m,L %l (C %c-%*[0-9]): %*[a-zA-Z0-9]: %m'
+ return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat, 'defaults': {'bufnr': bufnr("")} })
+endfunction
+
diff --git a/vim/syntax_checkers/ocaml.vim b/vim/syntax_checkers/ocaml.vim
new file mode 100644
index 0000000..6a2470f
--- /dev/null
+++ b/vim/syntax_checkers/ocaml.vim
@@ -0,0 +1,89 @@
+"============================================================================
+"File: ocaml.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Török Edwin <edwintorok at gmail dot com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+"
+" By default the camlp4o preprocessor is used to check the syntax of .ml, and .mli files,
+" ocamllex is used to check .mll files and menhir is used to check .mly files.
+" The output is all redirected to /dev/null, nothing is written to the disk.
+"
+" If your source code needs camlp4r then you can define this in your .vimrc:
+"
+" let g:syntastic_ocaml_camlp4r = 1
+"
+" If you used some syntax extensions, or you want to also typecheck the source
+" code, then you can define this:
+"
+" let g:syntastic_ocaml_use_ocamlbuild = 1
+"
+" This will run ocamlbuild <name>.inferred.mli, so it will write to your _build
+" directory (and possibly rebuild your myocamlbuild.ml plugin), only enable this
+" if you are ok with that.
+"
+" If you are using syntax extensions / external libraries and have a properly
+" set up _tags (and myocamlbuild.ml file) then it should just work
+" to enable this flag and get syntax / type checks through syntastic.
+"
+" For best results your current directory should be the project root
+" (same situation if you want useful output from :make).
+
+if exists("loaded_ocaml_syntax_checker")
+ finish
+endif
+let loaded_ocaml_syntax_checker = 1
+
+if exists('g:syntastic_ocaml_camlp4r') &&
+ \ g:syntastic_ocaml_camlp4r != 0
+ let s:ocamlpp="camlp4r"
+else
+ let s:ocamlpp="camlp4o"
+endif
+
+"bail if the user doesnt have the preprocessor
+if !executable(s:ocamlpp)
+ finish
+endif
+
+function! SyntaxCheckers_ocaml_GetLocList()
+ if exists('g:syntastic_ocaml_use_ocamlbuild') &&
+ \ g:syntastic_ocaml_use_ocamlbuild != 0 &&
+ \ executable("ocamlbuild") &&
+ \ isdirectory('_build')
+ let makeprg = "ocamlbuild -quiet -no-log -tag annot,". s:ocamlpp. " -no-links -no-hygiene -no-sanitize ".
+ \ shellescape(expand('%:r')).".cmi"
+ else
+ let extension = expand('%:e')
+ if match(extension, 'mly') >= 0
+ " ocamlyacc output can't be redirected, so use menhir
+ if !executable("menhir")
+ return []
+ endif
+ let makeprg = "menhir --only-preprocess ".shellescape(expand('%')) . " >/dev/null"
+ elseif match(extension,'mll') >= 0
+ if !executable("ocamllex")
+ return []
+ endif
+ let makeprg = "ocamllex -q -o /dev/null ".shellescape(expand('%'))
+ else
+ let makeprg = "camlp4o -o /dev/null ".shellescape(expand('%'))
+ endif
+ endif
+ let errorformat = '%AFile "%f"\, line %l\, characters %c-%*\d:,'.
+ \ '%AFile "%f"\, line %l\, characters %c-%*\d (end at line %*\d\, character %*\d):,'.
+ \ '%AFile "%f"\, line %l\, character %c:,'.
+ \ '%AFile "%f"\, line %l\, character %c:%m,'.
+ \ '%-GPreprocessing error %.%#,'.
+ \ '%-GCommand exited %.%#,'.
+ \ '%C%tarning %n: %m,'.
+ \ '%C%m,'.
+ \ '%-G+%.%#'
+
+ return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
+endfunction
diff --git a/vim/syntax_checkers/perl.vim b/vim/syntax_checkers/perl.vim
new file mode 100644
index 0000000..e8aa577
--- /dev/null
+++ b/vim/syntax_checkers/perl.vim
@@ -0,0 +1,29 @@
+"============================================================================
+"File: perl.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Anthony Carapetis <anthony.carapetis at gmail dot com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+if exists("loaded_perl_syntax_checker")
+ finish
+endif
+let loaded_perl_syntax_checker = 1
+
+"bail if the user doesnt have perl installed
+if !executable("perl")
+ finish
+endif
+
+let s:checker = 'perl ' . shellescape(expand('<sfile>:p:h') . '/efm_perl.pl') . ' -c'
+
+function! SyntaxCheckers_perl_GetLocList()
+ let makeprg = s:checker . ' ' . shellescape(expand('%'))
+ let errorformat = '%f:%l:%m'
+
+ return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
+endfunction
diff --git a/vim/syntax_checkers/php.vim b/vim/syntax_checkers/php.vim
new file mode 100644
index 0000000..4f22f91
--- /dev/null
+++ b/vim/syntax_checkers/php.vim
@@ -0,0 +1,58 @@
+"============================================================================
+"File: php.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Martin Grenfell <martin.grenfell at gmail dot com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+if exists("loaded_php_syntax_checker")
+ finish
+endif
+let loaded_php_syntax_checker = 1
+
+"bail if the user doesnt have php installed
+if !executable("php")
+ finish
+endif
+
+"Support passing configuration directives to phpcs
+if !exists("g:syntastic_phpcs_conf")
+ let g:syntastic_phpcs_conf = ""
+endif
+
+if !exists("g:syntastic_phpcs_disable")
+ let g:syntastic_phpcs_disable = 0
+endif
+
+function! SyntaxCheckers_php_Term(item)
+ let unexpected = matchstr(a:item['text'], "unexpected '[^']\\+'")
+ if len(unexpected) < 1 | return '' | end
+ return '\V'.split(unexpected, "'")[1]
+endfunction
+
+function! SyntaxCheckers_php_GetLocList()
+
+ let errors = []
+
+ let makeprg = "php -l ".shellescape(expand('%'))
+ let errorformat='%-GNo syntax errors detected in%.%#,PHP Parse error: %#syntax %trror\, %m in %f on line %l,PHP Fatal %trror: %m in %f on line %l,%-GErrors parsing %.%#,%-G\s%#,Parse error: %#syntax %trror\, %m in %f on line %l,Fatal %trror: %m in %f on line %l'
+ let errors = SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
+
+ if empty(errors) && !g:syntastic_phpcs_disable && executable("phpcs")
+ let errors = errors + s:GetPHPCSErrors()
+ endif
+
+ call SyntasticHighlightErrors(errors, function('SyntaxCheckers_php_Term'))
+
+ return errors
+endfunction
+
+function! s:GetPHPCSErrors()
+ let makeprg = "phpcs " . g:syntastic_phpcs_conf . " --report=csv ".shellescape(expand('%'))
+ let errorformat = '%-GFile\,Line\,Column\,Type\,Message\,Source\,Severity,"%f"\,%l\,%c\,%t%*[a-zA-Z]\,"%m"\,%*[a-zA-Z0-9_.-]\,%*[0-9]'
+ return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat, 'subtype': 'Style' })
+endfunction
diff --git a/vim/syntax_checkers/puppet.vim b/vim/syntax_checkers/puppet.vim
new file mode 100644
index 0000000..51c898e
--- /dev/null
+++ b/vim/syntax_checkers/puppet.vim
@@ -0,0 +1,54 @@
+"============================================================================
+"File: puppet.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Eivind Uggedal <eivind at uggedal dot com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+if exists("loaded_puppet_syntax_checker")
+ finish
+endif
+let loaded_puppet_syntax_checker = 1
+
+"bail if the user doesnt have puppet installed
+if !executable("puppet")
+ finish
+endif
+
+function! s:ExtractVersion()
+ let output = system("puppet --version")
+ let output = substitute(output, '\n$', '', '')
+ return split(output, '\.')
+endfunction
+
+let s:puppetVersion = s:ExtractVersion()
+
+function! SyntaxCheckers_puppet_GetLocList()
+ "If puppet is >= version 2.7 then use the new executable
+ if s:puppetVersion[0] >= '2' && s:puppetVersion[1] >= '7'
+ let makeprg = 'puppet parser validate ' .
+ \ shellescape(expand('%')) .
+ \ ' --color=false' .
+ \ ' --storeconfigs'
+
+ "add --ignoreimport for versions < 2.7.10
+ if s:puppetVersion[2] < '10'
+ let makeprg .= ' --ignoreimport'
+ endif
+
+ else
+ let makeprg = 'puppet --color=false --parseonly --ignoreimport '.shellescape(expand('%'))
+ endif
+
+ "some versions of puppet (e.g. 2.7.10) output the message below if there
+ "are any syntax errors
+ let errorformat = '%-Gerr: Try ''puppet help parser validate'' for usage,'
+
+ let errorformat .= 'err: Could not parse for environment %*[a-z]: %m at %f:%l'
+
+ return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
+endfunction
diff --git a/vim/syntax_checkers/python.vim b/vim/syntax_checkers/python.vim
new file mode 100644
index 0000000..a20539b
--- /dev/null
+++ b/vim/syntax_checkers/python.vim
@@ -0,0 +1,80 @@
+"============================================================================
+"File: python.vim
+"Description: Syntax checking plugin for syntastic.vim
+"
+"Authors: Martin Grenfell <martin.grenfell@gmail.com>
+" kstep <me@kstep.me>
+" Parantapa Bhattacharya <parantapa@gmail.com>
+"
+"============================================================================
+"
+" For forcing the use of flake8, pyflakes, or pylint set
+"
+" let g:syntastic_python_checker = 'pyflakes'
+"
+" in your .vimrc. Default is flake8.
+
+if exists("loaded_python_syntax_checker")
+ finish
+endif
+let loaded_python_syntax_checker = 1
+
+"bail if the user doesnt have his favorite checker or flake8 or pyflakes installed
+if !exists('g:syntastic_python_checker') || !executable(g:syntastic_python_checker)
+ if executable("flake8")
+ let g:syntastic_python_checker = 'flake8'
+ elseif executable("pyflakes")
+ let g:syntastic_python_checker = 'pyflakes'
+ elseif executable("pylint")
+ let g:syntastic_python_checker = 'pylint'
+ else
+ finish
+ endif
+endif
+if !exists('g:syntastic_python_checker_args')
+ let g:syntastic_python_checker_args = ''
+endif
+
+function! SyntaxCheckers_python_Term(i)
+ if a:i['type'] ==# 'E'
+ let a:i['text'] = "Syntax error"
+ endif
+ if match(a:i['text'], 'is assigned to but never used') > -1
+ \ || match(a:i['text'], 'imported but unused') > -1
+ \ || match(a:i['text'], 'undefined name') > -1
+ \ || match(a:i['text'], 'redefinition of') > -1
+ \ || match(a:i['text'], 'referenced before assignment') > -1
+ \ || match(a:i['text'], 'duplicate argument') > -1
+ \ || match(a:i['text'], 'after other statements') > -1
+ \ || match(a:i['text'], 'shadowed by loop variable') > -1
+
+ let term = split(a:i['text'], "'", 1)[1]
+ return '\V\<'.term.'\>'
+ endif
+ return ''
+endfunction
+
+if g:syntastic_python_checker == 'pylint'
+ function! SyntaxCheckers_python_GetLocList()
+ let makeprg = 'pylint -f parseable -r n -i y ' .
+ \ shellescape(expand('%')) .
+ \ ' \| sed ''s_: \[[RC]_: \[W_''' .
+ \ ' \| sed ''s_: \[[F]_:\ \[E_'''
+ let errorformat = '%f:%l: [%t%n] %m,%-GNo config%m'
+ let errors = SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
+
+ return errors
+ endfunction
+else
+ function! SyntaxCheckers_python_GetLocList()
+ let makeprg = g:syntastic_python_checker.' '.g:syntastic_python_checker_args.' '.shellescape(expand('%'))
+ let errorformat =
+ \ '%E%f:%l: could not compile,%-Z%p^,%W%f:%l:%c: %m,%W%f:%l: %m,%-G%.%#'
+
+ let errors = SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
+
+ call SyntasticHighlightErrors(errors, function('SyntaxCheckers_python_Term'))
+
+ return errors
+ endfunction
+endif
diff --git a/vim/syntax_checkers/rst.vim b/vim/syntax_checkers/rst.vim
new file mode 100644
index 0000000..107aafe
--- /dev/null
+++ b/vim/syntax_checkers/rst.vim
@@ -0,0 +1,37 @@
+"============================================================================
+"File: rst.vim
+"Description: Syntax checking plugin for docutil's reStructuredText files
+"Maintainer: James Rowe <jnrowe at gmail dot com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+
+" We use rst2pseudoxml.py, as it is ever so marginally faster than the other
+" rst2${x} tools in docutils.
+
+if exists("loaded_rst_syntax_checker")
+ finish
+endif
+let loaded_rst_syntax_checker = 1
+
+"bail if the user doesn't have rst2pseudoxml.py installed
+if !executable("rst2pseudoxml.py")
+ finish
+endif
+
+function! SyntaxCheckers_rst_GetLocList()
+ let makeprg = 'rst2pseudoxml.py --report=1 --exit-status=1 ' .
+ \ shellescape(expand('%')) . ' /dev/null'
+
+ let errorformat = '%f:%l:\ (%tNFO/1)\ %m,
+ \%f:%l:\ (%tARNING/2)\ %m,
+ \%f:%l:\ (%tRROR/3)\ %m,
+ \%f:%l:\ (%tEVERE/4)\ %m,
+ \%-G%.%#'
+
+ return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
+endfunction
diff --git a/vim/syntax_checkers/ruby.vim b/vim/syntax_checkers/ruby.vim
new file mode 100644
index 0000000..8c3cd81
--- /dev/null
+++ b/vim/syntax_checkers/ruby.vim
@@ -0,0 +1,32 @@
+"============================================================================
+"File: ruby.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Martin Grenfell <martin.grenfell at gmail dot com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+if exists("loaded_ruby_syntax_checker")
+ finish
+endif
+let loaded_ruby_syntax_checker = 1
+
+"bail if the user doesnt have ruby installed
+if !executable("ruby")
+ finish
+endif
+
+function! SyntaxCheckers_ruby_GetLocList()
+ " we cannot set RUBYOPT on windows like that
+ if has('win32') || has('win64')
+ let makeprg = 'ruby -W1 -T1 -c '.shellescape(expand('%'))
+ else
+ let makeprg = 'RUBYOPT= ruby -W1 -c '.shellescape(expand('%'))
+ endif
+ let errorformat = '%-GSyntax OK,%E%f:%l: syntax error\, %m,%Z%p^,%W%f:%l: warning: %m,%Z%p^,%W%f:%l: %m,%-C%.%#'
+
+ return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
+endfunction
diff --git a/vim/syntax_checkers/rust.vim b/vim/syntax_checkers/rust.vim
new file mode 100644
index 0000000..fef48e8
--- /dev/null
+++ b/vim/syntax_checkers/rust.vim
@@ -0,0 +1,33 @@
+"============================================================================
+"File: rust.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Chad Jablonski <chad.jablonski at gmail dot com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+if exists("loaded_rust_syntax_checker")
+ finish
+endif
+let loaded_rust_syntax_checker = 1
+
+"bail if the user doesnt have rustc installed
+if !executable("rustc")
+ finish
+endif
+
+function! SyntaxCheckers_rust_GetLocList()
+ let makeprg = 'rustc --parse-only '.shellescape(expand('%'))
+
+ let errorformat = '%E%f:%l:%c: \\d%#:\\d%# %.%\{-}error:%.%\{-} %m,' .
+ \ '%W%f:%l:%c: \\d%#:\\d%# %.%\{-}warning:%.%\{-} %m,' .
+ \ '%C%f:%l %m,' .
+ \ '%-Z%.%#'
+
+ return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
+endfunction
+
+
diff --git a/vim/syntax_checkers/sass.vim b/vim/syntax_checkers/sass.vim
new file mode 100644
index 0000000..23bf345
--- /dev/null
+++ b/vim/syntax_checkers/sass.vim
@@ -0,0 +1,35 @@
+"============================================================================
+"File: sass.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Martin Grenfell <martin.grenfell at gmail dot com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+if exists("loaded_sass_syntax_checker")
+ finish
+endif
+let loaded_sass_syntax_checker = 1
+
+"bail if the user doesnt have the sass binary installed
+if !executable("sass")
+ finish
+endif
+
+"use compass imports if available
+let s:imports = ""
+if executable("compass")
+ let s:imports = "--compass"
+endif
+
+function! SyntaxCheckers_sass_GetLocList()
+ let makeprg='sass '.s:imports.' --check '.shellescape(expand('%'))
+ let errorformat = '%ESyntax %trror:%m,%C on line %l of %f,%Z%.%#'
+ let errorformat .= ',%Wwarning on line %l:,%Z%m,Syntax %trror on line %l: %m'
+ let loclist = SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
+
+ return loclist
+endfunction
diff --git a/vim/syntax_checkers/scss.vim b/vim/syntax_checkers/scss.vim
new file mode 100644
index 0000000..d3ae5e7
--- /dev/null
+++ b/vim/syntax_checkers/scss.vim
@@ -0,0 +1,27 @@
+
+"============================================================================
+"File: scss.vim
+"Description: scss syntax checking plugin for syntastic
+"Maintainer: Martin Grenfell <martin.grenfell at gmail dot com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+if exists("loaded_scss_syntax_checker")
+ finish
+endif
+let loaded_scss_syntax_checker = 1
+
+"bail if the user doesnt have the sass binary installed
+if !executable("sass")
+ finish
+endif
+
+runtime syntax_checkers/sass.vim
+
+function! SyntaxCheckers_scss_GetLocList()
+ return SyntaxCheckers_sass_GetLocList()
+endfunction
diff --git a/vim/syntax_checkers/sh.vim b/vim/syntax_checkers/sh.vim
new file mode 100644
index 0000000..5b55172
--- /dev/null
+++ b/vim/syntax_checkers/sh.vim
@@ -0,0 +1,52 @@
+"============================================================================
+"File: sh.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Gregor Uhlenheuer <kongo2002 at gmail dot com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+if exists('loaded_sh_syntax_checker')
+ finish
+endif
+let loaded_sh_syntax_checker = 1
+
+function! s:GetShell()
+ if !exists('b:shell') || b:shell == ""
+ let b:shell = ''
+ let shebang = getbufline(bufnr('%'), 1)[0]
+ if len(shebang) > 0
+ if match(shebang, 'bash') >= 0
+ let b:shell = 'bash'
+ elseif match(shebang, 'zsh') >= 0
+ let b:shell = 'zsh'
+ elseif match(shebang, 'sh') >= 0
+ let b:shell = 'sh'
+ endif
+ endif
+ endif
+ return b:shell
+endfunction
+
+function! SyntaxCheckers_sh_GetLocList()
+ if len(s:GetShell()) == 0 || !executable(s:GetShell())
+ return []
+ endif
+ let output = split(system(s:GetShell().' -n '.shellescape(expand('%'))), '\n')
+ if v:shell_error != 0
+ let result = []
+ for err_line in output
+ let line = substitute(err_line, '^[^:]*:\D\{-}\(\d\+\):.*', '\1', '')
+ let msg = substitute(err_line, '^[^:]*:\D\{-}\d\+: \(.*\)', '\1', '')
+ call add(result, {'lnum' : line,
+ \ 'text' : msg,
+ \ 'bufnr': bufnr(''),
+ \ 'type': 'E' })
+ endfor
+ return result
+ endif
+ return []
+endfunction
diff --git a/vim/syntax_checkers/tcl.vim b/vim/syntax_checkers/tcl.vim
new file mode 100644
index 0000000..83b5df3
--- /dev/null
+++ b/vim/syntax_checkers/tcl.vim
@@ -0,0 +1,28 @@
+"============================================================================
+"File: tcl.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Eric Thomas <eric.l.m.thomas at gmail dot com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+
+if exists("loaded_tcl_syntax_checker")
+ finish
+endif
+let loaded_tcl_syntax_checker = 1
+
+"bail if the user doesnt have tclsh installed
+if !executable("tclsh")
+ finish
+endif
+
+function! SyntaxCheckers_tcl_GetLocList()
+ let makeprg = 'tclsh '.shellescape(expand('%'))
+ let errorformat = '%f:%l:%m'
+
+ return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
+endfunction
diff --git a/vim/syntax_checkers/tex.vim b/vim/syntax_checkers/tex.vim
new file mode 100644
index 0000000..4369f4c
--- /dev/null
+++ b/vim/syntax_checkers/tex.vim
@@ -0,0 +1,26 @@
+"============================================================================
+"File: tex.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Martin Grenfell <martin.grenfell at gmail dot com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+if exists("loaded_tex_syntax_checker")
+ finish
+endif
+let loaded_tex_syntax_checker = 1
+
+"bail if the user doesnt have lacheck installed
+if !executable("lacheck")
+ finish
+endif
+
+function! SyntaxCheckers_tex_GetLocList()
+ let makeprg = 'lacheck '.shellescape(expand('%'))
+ let errorformat = '%-G** %f:,%E"%f"\, line %l: %m'
+ return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
+endfunction
diff --git a/vim/syntax_checkers/vala.vim b/vim/syntax_checkers/vala.vim
new file mode 100644
index 0000000..f174790
--- /dev/null
+++ b/vim/syntax_checkers/vala.vim
@@ -0,0 +1,56 @@
+"============================================================================
+"File: vala.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Konstantin Stepanov (me@kstep.me)
+"Notes: Add special comment line into your vala file starting with
+" "// modules: " and containing space delimited list of vala
+" modules, used by the file, so this script can build correct
+" --pkg arguments.
+" Valac compiler is not the fastest thing in the world, so you
+" may want to disable this plugin with
+" let g:syntastic_vala_check_disabled = 1 command in your .vimrc or
+" command line. Unlet this variable to set it to 0 to reenable
+" this checker.
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+
+if exists('loaded_vala_syntax_checker')
+ finish
+endif
+let loaded_vala_syntax_checker = 1
+
+if !executable('valac')
+ finish
+endif
+
+if exists('g:syntastic_vala_check_disabled') && g:syntastic_vala_check_disabled
+ finish
+endif
+
+function! SyntaxCheckers_vala_Term(pos)
+ let strlength = strlen(matchstr(a:pos['text'], '\^\+$'))
+ return '\%>'.(a:pos.col-1).'c.*\%<'.(a:pos.col+strlength+1).'c'
+endfunction
+
+function! s:GetValaModules()
+ let modules_line = search('^// modules: ', 'n')
+ let modules_str = getline(modules_line)
+ let modules = split(strpart(modules_str, 12), '\s\+')
+ return modules
+endfunction
+
+function! SyntaxCheckers_vala_GetLocList()
+ let vala_pkg_args = join(map(s:GetValaModules(), '"--pkg ".v:val'), ' ')
+ let makeprg = 'valac -C ' . vala_pkg_args . ' ' .shellescape(expand('%'))
+ let errorformat = '%A%f:%l.%c-%\d%\+.%\d%\+: %t%[a-z]%\+: %m,%C%m,%Z%m'
+
+ let loclist = SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
+ call SyntasticHighlightErrors(loclist, function("SyntaxCheckers_vala_Term"), 1)
+ return loclist
+endfunction
+
diff --git a/vim/syntax_checkers/xhtml.vim b/vim/syntax_checkers/xhtml.vim
new file mode 100644
index 0000000..80d981a
--- /dev/null
+++ b/vim/syntax_checkers/xhtml.vim
@@ -0,0 +1,46 @@
+"============================================================================
+"File: xhtml.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Martin Grenfell <martin.grenfell at gmail dot com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+if exists("loaded_xhtml_syntax_checker")
+ finish
+endif
+let loaded_xhtml_syntax_checker = 1
+
+"bail if the user doesnt have tidy or grep installed
+if !executable("tidy")
+ finish
+endif
+
+" TODO: join this with html.vim DRY's sake?
+function! s:TidyEncOptByFenc()
+ let tidy_opts = {
+ \'utf-8' : '-utf8',
+ \'ascii' : '-ascii',
+ \'latin1' : '-latin1',
+ \'iso-2022-jp' : '-iso-2022',
+ \'cp1252' : '-win1252',
+ \'macroman' : '-mac',
+ \'utf-16le' : '-utf16le',
+ \'utf-16' : '-utf16',
+ \'big5' : '-big5',
+ \'sjis' : '-shiftjis',
+ \'cp850' : '-ibm858',
+ \}
+ return get(tidy_opts, &fileencoding, '-utf8')
+endfunction
+
+function! SyntaxCheckers_xhtml_GetLocList()
+
+ let encopt = s:TidyEncOptByFenc()
+ let makeprg="tidy ".encopt." -xml -e ".shellescape(expand('%'))
+ let errorformat='%Wline %l column %c - Warning: %m,%Eline %l column %c - Error: %m,%-G%.%#,%-G%.%#'
+ return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat, 'defaults': {'bufnr': bufnr("")} })
+endfunction
diff --git a/vim/syntax_checkers/xml.vim b/vim/syntax_checkers/xml.vim
new file mode 100644
index 0000000..55c0cdd
--- /dev/null
+++ b/vim/syntax_checkers/xml.vim
@@ -0,0 +1,42 @@
+"============================================================================
+"File: xml.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Sebastian Kusnier <sebastian at kusnier dot net>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+
+" You can use a local installation of DTDs to significantly speed up validation
+" and allow you to validate XML data without network access, see xmlcatalog(1)
+" and http://www.xmlsoft.org/catalog.html for more information.
+
+if exists("loaded_xml_syntax_checker")
+ finish
+endif
+let loaded_xml_syntax_checker = 1
+
+"bail if the user doesnt have tidy or grep installed
+if !executable("xmllint")
+ finish
+endif
+
+function! SyntaxCheckers_xml_GetLocList()
+
+ let makeprg="xmllint --xinclude --noout --postvalid " . shellescape(expand("%:p"))
+ let errorformat='%E%f:%l:\ error\ :\ %m,
+ \%-G%f:%l:\ validity\ error\ :\ Validation\ failed:\ no\ DTD\ found\ %m,
+ \%W%f:%l:\ warning\ :\ %m,
+ \%W%f:%l:\ validity\ warning\ :\ %m,
+ \%E%f:%l:\ validity\ error\ :\ %m,
+ \%E%f:%l:\ parser\ error\ :\ %m,
+ \%E%f:%l:\ %m,
+ \%-Z%p^,
+ \%-G%.%#'
+ let loclist = SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
+
+ return loclist
+endfunction
diff --git a/vim/syntax_checkers/xslt.vim b/vim/syntax_checkers/xslt.vim
new file mode 100644
index 0000000..b9b3cac
--- /dev/null
+++ b/vim/syntax_checkers/xslt.vim
@@ -0,0 +1,38 @@
+"============================================================================
+"File: xslt.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Sebastian Kusnier <sebastian at kusnier dot net>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+if exists("loaded_xslt_syntax_checker")
+ finish
+endif
+let loaded_xslt_syntax_checker = 1
+
+"bail if the user doesnt have tidy or grep installed
+if !executable("xmllint")
+ finish
+endif
+
+function! SyntaxCheckers_xslt_GetLocList()
+
+ let makeprg="xmllint --xinclude --noout --postvalid " . shellescape(expand("%:p"))
+ let errorformat='%E%f:%l:\ error\ :\ %m,
+ \%-G%f:%l:\ validity\ error\ :\ Validation\ failed:\ no\ DTD\ found\ %m,
+ \%W%f:%l:\ warning\ :\ %m,
+ \%W%f:%l:\ validity\ warning\ :\ %m,
+ \%E%f:%l:\ validity\ error\ :\ %m,
+ \%E%f:%l:\ parser\ error\ :\ %m,
+ \%E%f:%l:\ namespace\ error\ :\ %m,
+ \%E%f:%l:\ %m,
+ \%-Z%p^,
+ \%-G%.%#'
+ let loclist = SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
+
+ return loclist
+endfunction
diff --git a/vim/syntax_checkers/yaml.vim b/vim/syntax_checkers/yaml.vim
new file mode 100644
index 0000000..f45d849
--- /dev/null
+++ b/vim/syntax_checkers/yaml.vim
@@ -0,0 +1,30 @@
+"============================================================================
+"File: yaml.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Martin Grenfell <martin.grenfell at gmail dot com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"
+"Installation: $ npm install -g js-yaml.bin
+"
+"============================================================================
+if exists("loaded_yaml_syntax_checker")
+ finish
+endif
+let loaded_yaml_syntax_checker = 1
+
+if !executable("js-yaml")
+ finish
+endif
+
+function! SyntaxCheckers_yaml_GetLocList()
+ let makeprg='js-yaml --compact ' . shellescape(expand('%'))
+ let errorformat='Error on line %l\, col %c:%m,%-G%.%#'
+ return SyntasticMake({ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'defaults': {'bufnr': bufnr("")} })
+endfunction
diff --git a/vim/syntax_checkers/zpt.vim b/vim/syntax_checkers/zpt.vim
new file mode 100644
index 0000000..0b0063b
--- /dev/null
+++ b/vim/syntax_checkers/zpt.vim
@@ -0,0 +1,36 @@
+"============================================================================
+"File: zpt.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: claytron <robots at claytron dot com>
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law. You can redistribute
+" it and/or modify it under the terms of the Do What The Fuck You
+" Want To Public License, Version 2, as published by Sam Hocevar.
+" See http://sam.zoy.org/wtfpl/COPYING for more details.
+"
+"============================================================================
+
+" In order for this plugin to be useful, you will need to set up the
+" zpt filetype in your vimrc
+"
+" " set up zope page templates as the zpt filetype
+" au BufNewFile,BufRead *.pt,*.cpt,*.zpt set filetype=zpt syntax=xml
+"
+" Then install the zptlint program, found on pypi:
+" http://pypi.python.org/pypi/zptlint
+
+if exists("loaded_zpt_syntax_checker")
+ finish
+endif
+let loaded_zpt_syntax_checker = 1
+
+" Bail if the user doesn't have zptlint installed
+if !executable("zptlint")
+ finish
+endif
+
+function! SyntaxCheckers_zpt_GetLocList()
+ let makeprg="zptlint ".shellescape(expand('%'))
+ let errorformat='%-P*** Error in: %f,%Z%*\s\, at line %l\, column %c,%E%*\s%m,%-Q'
+ return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
+endfunction