diff --git a/vim/vim.symlink/bundle/syntastic/.gitignore b/vim/vim.symlink/bundle/syntastic/.gitignore
new file mode 100644
index 0000000..cc07c93
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/.gitignore
@@ -0,0 +1,4 @@
+*~
+*.swp
+tags
+.DS_Store
diff --git a/vim/vim.symlink/bundle/syntastic/CONTRIBUTING.md b/vim/vim.symlink/bundle/syntastic/CONTRIBUTING.md
new file mode 100644
index 0000000..378b53b
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/CONTRIBUTING.md
@@ -0,0 +1,105 @@
+# CONTRIBUTING
+- - -
+1\. [Bug reports / GitHub issues](#bugreps)
+2\. [Submitting a patch](#patches)
+3\. [General style notes](#generalstyle)
+4\. [Syntax checker notes](#checkerstyle)
+- - -
+
+
+
+## 1. Bug reports / GitHub issues
+
+Please note that the preferred channel for posting bug reports is the
+[issue tracker at GitHub][0]. Reports posted elsewhere are less likely
+to be seen by the core team.
+
+When reporting a bug make sure you search the existing GitHub issues
+for the same/similar issues. If you find one, feel free to add a `+1`
+comment with any additional information that may help us solve the
+issue.
+
+When creating a new issue be sure to state the following:
+
+* steps to reproduce the bug;
+* the version of Vim you are using (run `:ver` to find out);
+* the version of syntastic you are using (see `:SyntasticInfo`).
+
+For syntax checker bugs also state the version of the checker executable
+that you are using. Adding debugging information is typically useful
+too:
+
+* open a file handled by your checker;
+* set `g:syntastic_debug` to 1 or 3;
+* run the checker;
+* copy the output of `:mes`.
+
+
+
+## 2. Submitting a patch
+
+Before you consider adding features to syntastic, _please_ spend a few
+minutes (re-)reading the latest version of the [manual][1]. Syntastic
+is changing rapidly at times, and it's quite possible that some of the
+features you want to add exist already.
+
+To submit a patch:
+
+* fork the [repo][2] on GitHub;
+* make a [topic branch][3] and start hacking;
+* submit a pull request based off your topic branch.
+
+Small, focused patches are preferred.
+
+Large changes to the code should be discussed with the core team first.
+Create an issue and explain your plan and see what we say.
+
+Also make sure to update the manual whenever applicable. Nobody can use
+features that aren't documented.
+
+
+
+## 3. General style notes
+
+Follow the coding conventions/styles used in the syntastic core:
+
+* use 4 space indents;
+* don't use abbreviated keywords - e.g. use `endfunction`, not `endfun`
+(there's always room for more fun!);
+* don't use `l:` prefixes for variables unless actually required (i.e.
+almost never);
+* code for maintainability; we would rather a function be a couple of
+lines longer and have (for example) some [explaining variables][4] to
+aid readability.
+
+
+
+## 4. Syntax checker notes
+
+Make sure to read the [guide][5] if you plan to add new syntax checkers.
+
+Use the existing checkers as templates, rather than writing everything
+from scratch.
+
+The preferred style for error format strings is one "clause" per line.
+E.g. (from the `coffee` checker):
+
+```vim
+let errorformat =
+ \ '%E%f:%l:%c: %trror: %m,' .
+ \ 'Syntax%trror: In %f\, %m on line %l,' .
+ \ '%EError: In %f\, Parse error on line %l: %m,' .
+ \ '%EError: In %f\, %m on line %l,' .
+ \ '%W%f(%l): lint warning: %m,' .
+ \ '%W%f(%l): warning: %m,' .
+ \ '%E%f(%l): SyntaxError: %m,' .
+ \ '%-Z%p^,' .
+ \ '%-G%.%#'
+```
+
+[0]: https://github.com/scrooloose/syntastic/issues
+[1]: https://github.com/scrooloose/syntastic/blob/master/doc/syntastic.txt
+[2]: https://github.com/scrooloose/syntastic
+[3]: https://github.com/dchelimsky/rspec/wiki/Topic-Branches#using-topic-branches-when-contributing-patches
+[4]: http://www.refactoring.com/catalog/extractVariable.html
+[5]: https://github.com/scrooloose/syntastic/wiki/Syntax-Checker-Guide
diff --git a/vim/vim.symlink/bundle/syntastic/LICENCE b/vim/vim.symlink/bundle/syntastic/LICENCE
new file mode 100644
index 0000000..8b1a9d8
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/LICENCE
@@ -0,0 +1,13 @@
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+ Version 2, December 2004
+
+Copyright (C) 2004 Sam Hocevar
+
+Everyone is permitted to copy and distribute verbatim or modified
+copies of this license document, and changing it is allowed as long
+as the name is changed.
+
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. You just DO WHAT THE FUCK YOU WANT TO.
diff --git a/vim/vim.symlink/bundle/syntastic/README.markdown b/vim/vim.symlink/bundle/syntastic/README.markdown
new file mode 100644
index 0000000..de414e1
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/README.markdown
@@ -0,0 +1,381 @@
+ ,
+ / \,,_ .'|
+ ,{{| /}}}}/_.' _____________________________________________
+ }}}}` '{{' '. / \
+ {{{{{ _ ;, \ / Ladies and Gentlemen, \
+ ,}}}}}} /o`\ ` ;) | |
+ {{{{{{ / ( | this is ... |
+ }}}}}} | \ | |
+ {{{{{{{{ \ \ | |
+ }}}}}}}}} '.__ _ | | _____ __ __ _ |
+ {{{{{{{{ /`._ (_\ / | / ___/__ ______ / /_____ ______/ /_(_)____ |
+ }}}}}}' | //___/ --=: \__ \/ / / / __ \/ __/ __ `/ ___/ __/ / ___/ |
+ jgs `{{{{` | '--' | ___/ / /_/ / / / / /_/ /_/ (__ ) /_/ / /__ |
+ }}}` | /____/\__, /_/ /_/\__/\__,_/____/\__/_/\___/ |
+ | /____/ |
+ | /
+ \_____________________________________________/
+
+
+- - -
+1\. [Introduction](#introduction)
+2\. [Installation](#installation)
+3\. [FAQ](#faq)
+4\. [Other resources](#otherresources)
+- - -
+
+
+
+## 1\. Introduction
+
+Syntastic is a syntax checking plugin for [Vim][13] that runs files through
+external syntax checkers and displays any resulting errors to the user. This
+can be done on demand, or automatically as files are saved. If syntax errors
+are detected, the user is notified and is happy because they didn't have to
+compile their code or execute their script to find them.
+
+At the time of this writing, syntax checking plugins exist for ActionScript,
+Ada, AppleScript, AsciiDoc, ASM, BEMHTML, Bro, Bourne shell, C, C++, C#, Cabal,
+Chef, CoffeeScript, Coco, Coq, CSS, Cucumber, CUDA, D, Dart, DocBook, Dust,
+Elixir, Erlang, eRuby, Fortran, Gentoo metadata, GLSL, Go, Haml, Haskell,
+Haxe, Handlebars, HSS, HTML, Java, JavaScript, JSON, JSX, LESS, Lex, Limbo,
+LISP, LLVM intermediate language, Lua, Markdown, MATLAB, NASM, Objective-C,
+Objective-C++, OCaml, Perl, Perl POD, PHP, gettext Portable Object, OS X and
+iOS property lists, Puppet, Python, R, Racket, Relax NG, reStructuredText, RPM
+spec, Ruby, SASS/SCSS, Scala, Slim, Tcl, TeX, Texinfo, Twig, TypeScript, Vala,
+Verilog, VHDL, VimL, xHtml, XML, XSLT, YACC, YAML, z80, Zope page templates,
+and zsh. See the [wiki][3] for details about the corresponding supported
+checkers.
+
+Below is a screenshot showing the methods that Syntastic uses to display syntax
+errors. Note that, in practise, you will only have a subset of these methods
+enabled.
+
+![Screenshot 1][0]
+
+1. Errors are loaded into the location list for the corresponding window.
+2. When the cursor is on a line containing an error, the error message is echoed in the command window.
+3. Signs are placed beside lines with errors - note that warnings are displayed in a different color.
+4. There is a configurable statusline flag you can include in your statusline config.
+5. Hover the mouse over a line containing an error and the error message is displayed as a balloon.
+6. (not shown) Highlighting errors with syntax highlighting. Erroneous parts of lines can be highlighted.
+
+
+
+## 2\. Installation
+
+
+
+### 2.1\. Requirements
+
+Syntastic itself has rather relaxed requirements: it doesn't have any external
+dependencies, and it needs a version of [Vim][13] compiled with a few common
+features: `autocmd`, `eval`, `file_in_path`, `modify_fname`, `quickfix`,
+`reltime`, and `user_commands`. Not all possible combinations of features that
+include the ones above make equal sense on all operating systems, but Vim
+version 7 or later with the "normal", "big", or "huge" feature sets should be
+fine.
+
+Syntastic should work with any modern plugin managers for Vim, such as
+[NeoBundle][14], [Pathogen][1], [Vim-Addon-Manager][15], [Vim-Plug][16], or
+[Vundle][17]. Instructions for installing syntastic with [Pathogen][1] are
+included below for completeness.
+
+Last but not least: syntastic doesn't know how to do any syntax checks by
+itself. In order to get meaningful results you need to install external
+checkers corresponding to the types of files you use. Please consult the
+[wiki][3] for a list of supported checkers.
+
+
+
+### 2.2\. Installing syntastic with Pathogen
+
+If you already have [Pathogen][1] working then skip [Step 1](#step1) and go to
+[Step 2](#step2).
+
+
+
+#### 2.2.1\. Step 1: Install pathogen.vim
+
+First I'll show you how to install Tim Pope's [Pathogen][1] so that it's easy to
+install syntastic. Do this in your terminal so that you get the `pathogen.vim`
+file and the directories it needs:
+```sh
+mkdir -p ~/.vim/autoload ~/.vim/bundle && \
+curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
+```
+Next you *need* to add this to your `~/.vimrc`:
+```vim
+execute pathogen#infect()
+```
+
+
+
+#### 2.2.2\. Step 2: Install syntastic as a Pathogen bundle
+
+You now have pathogen installed and can put syntastic into `~/.vim/bundle` like
+this:
+```sh
+cd ~/.vim/bundle && \
+git clone https://github.com/scrooloose/syntastic.git
+```
+Quit vim and start it back up to reload it, then type:
+```vim
+:Helptags
+```
+If you get an error when you do this, then you probably didn't install
+[Pathogen][1] right. Go back to [Step 1](#step1) and make sure you did the
+following:
+
+1. Created both the `~/.vim/autoload` and `~/.vim/bundle` directories.
+2. Added the `call pathogen#infect()` line to your `~/.vimrc` file
+3. Did the `git clone` of syntastic inside `~/.vim/bundle`
+4. Have permissions to access all of these directories.
+
+
+
+
+## 3\. FAQ
+
+
+
+__Q. I installed syntastic but it isn't reporting any errors...__
+
+A. The most likely reason is that none of the syntax checkers that it requires
+is installed. For example: by default, python requires either `flake8` or
+`pylint` to be installed and in your `$PATH`. To see which executables are
+supported, look at the [wiki][3]. Note that aliases do not work; the actual
+executables must be available in your `$PATH`. Symbolic links are okay though.
+You can see syntastic's idea of available checkers by running `:SyntasticInfo`.
+
+Another reason it could fail is that either the command line options or the
+error output for a syntax checker may have changed. In this case, make sure you
+have the latest version of the syntax checker installed. If it still fails then
+create an issue - or better yet, create a pull request.
+
+
+
+__Q. The `python` checker complains about syntactically valid Python 3 constructs...__
+
+A. Configure the `python` checker to call a Python 3 interpreter rather than
+Python 2, e.g:
+```vim
+let g:syntastic_python_python_exec = '/path/to/python3'
+```
+
+
+
+__Q. Are there any local checkers for HTML5 that I can use with syntastic?__
+
+[HTML Tidy][18] has a fork named [HTML Tidy for HTML5][19]. It's a drop
+in replacement, and syntastic can use it without changes. Just install it
+somewhere and point `g:syntastic_html_tidy_exec` to its executable.
+
+Alternatively, you can install [validator][20] from [sources][21] and
+[configure][22] syntastic to use it. The installation might seem a little
+scary (for one, the final directory takes more than 600+ MB on disk), but in
+our experience the process is, in fact, painless.
+
+
+
+__Q. The `perl` checker has stopped working...__
+
+A. The `perl` checker runs `perl -c` against your file, which in turn
+__executes__ any `BEGIN`, `UNITCHECK`, and `CHECK` blocks, and any `use`
+statements in your file (cf. [perlrun][10]). This is probably fine if you
+wrote the file yourself, but it's a security problem if you're checking third
+party files. Since there is currently no way to disable this behaviour while
+still producing useful results, the checker is now disabled by default. To
+(re-)enable it, make sure the `g:syntastic_perl_checkers` list includes `perl`,
+and set `g:syntastic_enable_perl_checker` to 1 in your vimrc:
+```vim
+let g:syntastic_enable_perl_checker = 1
+```
+
+
+
+__Q. What happened to the `rustc` checker?__
+
+A. It has been included in the [Rust compiler package][12]. If you have
+a recent version of the Rust compiler, the checker should be picked up
+automatically by syntastic.
+
+
+
+__Q. I run a checker and the location list is not updated...__
+__Q. I run`:lopen` or `:lwindow` and the error window is empty...__
+
+A. By default the location list is changed only when you run the `:Errors`
+command, in order to minimise conflicts with other plugins. If you want the
+location list to always be updated when you run the checkers, add this line to
+your vimrc:
+```vim
+let g:syntastic_always_populate_loc_list = 1
+```
+
+
+
+__Q. How can I pass additional arguments to a checker?__
+
+A. Almost all syntax checkers use the `makeprgBuild()` function. Those checkers
+that do can be configured using global variables. The general form of the
+global `args` variables is `syntastic___args`.
+
+So, If you wanted to pass "--my --args --here" to the ruby mri checker you
+would add this line to your vimrc:
+```vim
+let g:syntastic_ruby_mri_args = "--my --args --here"
+```
+
+See `:help syntastic-checker-options` for more information.
+
+
+
+__Q. Syntastic supports several checkers for my filetype - how do I tell it
+which one(s) to use?__
+
+A. Stick a line like this in your vimrc:
+```vim
+let g:syntastic__checkers = ['']
+```
+
+To see the list of supported checkers for your filetype look at the
+[wiki][3].
+
+e.g. Python has the following checkers, among others: `flake8`, `pyflakes`,
+`pylint` and a native `python` checker.
+
+To tell syntastic to use `pylint`, you would use this setting:
+```vim
+let g:syntastic_python_checkers = ['pylint']
+```
+
+Checkers can be chained together like this:
+```vim
+let g:syntastic_php_checkers = ['php', 'phpcs', 'phpmd']
+```
+
+This is telling syntastic to run the `php` checker first, and if no errors are
+found, run `phpcs`, and then `phpmd`.
+
+You can also run checkers explicitly by calling `:SyntasticCheck `.
+
+e.g. to run `phpcs` and `phpmd`:
+```vim
+:SyntasticCheck phpcs phpmd
+```
+
+This works for any checkers available for the current filetype, even if they
+aren't listed in `g:syntastic__checkers`. You can't run checkers for
+"foreign" filetypes though (e.g. you can't run, say, a Python checker if the
+filetype of the current file is `php`).
+
+
+
+__Q. What is the difference between syntax checkers and style checkers?__
+
+A. The errors and warnings they produce are highlighted differently and can
+be filtered by different rules, but otherwise the distinction is pretty much
+arbitrary. There is an ongoing effort to keep things consistent, so you can
+_generally_ expect messages produced by syntax checkers to be _mostly_ related
+to syntax, and messages produced by style checkers to be _mostly_ about style.
+But there can be no formal guarantee that, say, a style checker that runs into
+a syntax error wouldn't die with a fatal message, nor that a syntax checker
+wouldn't give you warnings against using some constructs as being bad practice.
+There is also no guarantee that messages marked as "style" are less severe than
+the ones marked as "syntax" (whatever that might mean). And there are even a
+few Frankenstein checkers (for example `flake8` and `pylama`) that, by their
+nature, produce both kinds of messages. Syntastic is not smart enough to be
+able to sort out these things by itself.
+
+In fact it's more useful to look at this from the perspective of filtering
+unwanted messages, rather than as an indicator of severity levels. The
+distinction between syntax and style is orthogonal to the distinction between
+errors and warnings, and thus you can turn off messages based on level, on
+type, or both.
+
+e.g. To disable all style messages:
+```vim
+let g:syntastic_quiet_messages = { "type": "style" }
+```
+See `:help syntastic_quiet_messages` for details.
+
+
+
+__Q. I have enabled multiple checkers for the current filetype. How can I
+display all of the errors from all of the checkers together?__
+
+A. Set `g:syntastic_aggregate_errors` to 1 in your vimrc:
+```vim
+let g:syntastic_aggregate_errors = 1
+```
+
+See `:help syntastic-aggregating-errors` for more details.
+
+
+
+__Q. How can I jump between the different errors without using the location
+list at the bottom of the window?__
+
+A. Vim provides several built-in commands for this. See `:help :lnext` and
+`:help :lprev`.
+
+If you use these commands a lot then you may want to add shortcut mappings to
+your vimrc, or install something like [unimpaired][2], which provides such
+mappings (among other things).
+
+
+
+__Q. The error window is closed automatically when I :quit the current buffer
+but not when I :bdelete it?__
+
+A. There is no safe way to handle that situation automatically, but you can
+work around it:
+
+```vim
+nnoremap :lclose:bdelete
+cabbrev bd lclose\|bdelete
+```
+
+
+
+## 4\. Other resources
+
+The preferred place for posting suggestions, reporting bugs, and general
+discussions related to syntastic is the [issue tracker at GitHub][4].
+A guide for writing syntax checkers can be found in the [wiki][11].
+There are also a dedicated [google group][5], and a
+[syntastic tag at StackOverflow][6].
+
+Syntastic aims to provide a common interface to syntax checkers for as many
+languages as possible. For particular languages, there are, of course, other
+plugins that provide more functionality than syntastic. You might want to take
+a look at [jedi-vim][7], [python-mode][8], or [YouCompleteMe][9].
+
+[0]: https://github.com/scrooloose/syntastic/raw/master/_assets/screenshot_1.png
+[1]: https://github.com/tpope/vim-pathogen
+[2]: https://github.com/tpope/vim-unimpaired
+[3]: https://github.com/scrooloose/syntastic/wiki/Syntax-Checkers
+[4]: https://github.com/scrooloose/syntastic/issues
+[5]: https://groups.google.com/group/vim-syntastic
+[6]: http://stackoverflow.com/questions/tagged/syntastic
+[7]: https://github.com/davidhalter/jedi-vim
+[8]: https://github.com/klen/python-mode
+[9]: http://valloric.github.io/YouCompleteMe/
+[10]: http://perldoc.perl.org/perlrun.html#*-c*
+[11]: https://github.com/scrooloose/syntastic/wiki/Syntax-Checker-Guide
+[12]: https://github.com/rust-lang/rust/
+[13]: http://www.vim.org/
+[14]: https://github.com/Shougo/neobundle.vim
+[15]: https://github.com/MarcWeber/vim-addon-manager
+[16]: https://github.com/junegunn/vim-plug/
+[17]: https://github.com/gmarik/Vundle.vim
+[18]: http://tidy.sourceforge.net/
+[19]: http://w3c.github.io/tidy-html5/
+[20]: http://about.validator.nu/
+[21]: http://about.validator.nu/#src
+[22]: https://github.com/scrooloose/syntastic/wiki/HTML%3A---validator
+
+
diff --git a/vim/vim.symlink/bundle/syntastic/_assets/screenshot_1.png b/vim/vim.symlink/bundle/syntastic/_assets/screenshot_1.png
new file mode 100644
index 0000000..c1b69f4
Binary files /dev/null and b/vim/vim.symlink/bundle/syntastic/_assets/screenshot_1.png differ
diff --git a/vim/vim.symlink/bundle/syntastic/autoload/syntastic/c.vim b/vim/vim.symlink/bundle/syntastic/autoload/syntastic/c.vim
new file mode 100644
index 0000000..d19aebc
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/autoload/syntastic/c.vim
@@ -0,0 +1,336 @@
+if exists("g:loaded_syntastic_c_autoload") || !exists("g:loaded_syntastic_plugin")
+ finish
+endif
+let g:loaded_syntastic_c_autoload = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+" Public functions {{{1
+
+" convenience function to determine the 'null device' parameter
+" based on the current operating system
+function! syntastic#c#NullOutput() " {{{2
+ let known_os = has('unix') || has('mac') || syntastic#util#isRunningWindows()
+ return known_os ? '-o ' . syntastic#util#DevNull() : ''
+endfunction " }}}2
+
+" read additional compiler flags from the given configuration file
+" the file format and its parsing mechanism is inspired by clang_complete
+function! syntastic#c#ReadConfig(file) " {{{2
+ " search in the current file's directory upwards
+ let config = findfile(a:file, '.;')
+ if config == '' || !filereadable(config)
+ return ''
+ endif
+
+ " convert filename into absolute path
+ let filepath = fnamemodify(config, ':p:h')
+
+ " try to read config file
+ try
+ let lines = readfile(config)
+ catch /\m^Vim\%((\a\+)\)\=:E48[45]/
+ return ''
+ endtry
+
+ " filter out empty lines and comments
+ call filter(lines, 'v:val !~ ''\v^(\s*#|$)''')
+
+ " remove leading and trailing spaces
+ call map(lines, 'substitute(v:val, ''\m^\s\+'', "", "")')
+ call map(lines, 'substitute(v:val, ''\m\s\+$'', "", "")')
+
+ let parameters = []
+ for line in lines
+ let matches = matchstr(line, '\m\C^\s*-I\s*\zs.\+')
+ if matches != ''
+ " this one looks like an absolute path
+ if match(matches, '\m^\%(/\|\a:\)') != -1
+ call add(parameters, '-I' . matches)
+ else
+ call add(parameters, '-I' . filepath . syntastic#util#Slash() . matches)
+ endif
+ else
+ call add(parameters, line)
+ endif
+ endfor
+
+ return join(map(parameters, 'syntastic#util#shescape(v:val)'))
+endfunction " }}}2
+
+" GetLocList() for C-like compilers
+function! syntastic#c#GetLocList(filetype, subchecker, options) " {{{2
+ try
+ let flags = s:_get_cflags(a:filetype, a:subchecker, a:options)
+ catch /\m\C^Syntastic: skip checks$/
+ return []
+ endtry
+
+ let makeprg = syntastic#util#shexpand(g:syntastic_{a:filetype}_compiler) .
+ \ ' ' . flags . ' ' . syntastic#util#shexpand('%')
+
+ let errorformat = s:_get_checker_var('g', a:filetype, a:subchecker, 'errorformat', a:options['errorformat'])
+
+ let postprocess = s:_get_checker_var('g', a:filetype, a:subchecker, 'remove_include_errors', 0) ?
+ \ ['filterForeignErrors'] : []
+
+ " process makeprg
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'postprocess': postprocess })
+endfunction " }}}2
+
+" }}}1
+
+" Private functions {{{1
+
+" initialize c/cpp syntax checker handlers
+function! s:_init() " {{{2
+ let s:handlers = []
+ let s:cflags = {}
+
+ call s:_registerHandler('\m\', 's:_checkPhp', [])
+ call s:_registerHandler('\m\', 's:_checkPython', [])
+ call s:_registerHandler('\m\"
+ echohl ErrorMsg
+ echomsg "syntastic: error: " . a:msg
+ echohl None
+endfunction " }}}2
+
+function! syntastic#log#oneTimeWarn(msg) " {{{2
+ if index(s:one_time_notices_issued, a:msg) >= 0
+ return
+ endif
+
+ call add(s:one_time_notices_issued, a:msg)
+ call syntastic#log#warn(a:msg)
+endfunction " }}}2
+
+" @vimlint(EVL102, 1, l:OLD_VAR)
+function! syntastic#log#deprecationWarn(old, new, ...) " {{{2
+ if exists('g:syntastic_' . a:old) && !exists('g:syntastic_' . a:new)
+ let msg = 'variable g:syntastic_' . a:old . ' is deprecated, please use '
+
+ if a:0
+ let OLD_VAR = g:syntastic_{a:old}
+ try
+ let NEW_VAR = eval(a:1)
+ let msg .= 'in its stead: let g:syntastic_' . a:new . ' = ' . string(NEW_VAR)
+ let g:syntastic_{a:new} = NEW_VAR
+ catch
+ let msg .= 'g:syntastic_' . a:new . ' instead'
+ endtry
+ else
+ let msg .= 'g:syntastic_' . a:new . ' instead'
+ let g:syntastic_{a:new} = g:syntastic_{a:old}
+ endif
+
+ call syntastic#log#oneTimeWarn(msg)
+ endif
+endfunction " }}}2
+" @vimlint(EVL102, 0, l:OLD_VAR)
+
+function! syntastic#log#debug(level, msg, ...) " {{{2
+ if !s:_isDebugEnabled(a:level)
+ return
+ endif
+
+ let leader = s:_log_timestamp()
+ call s:_logRedirect(1)
+
+ if a:0 > 0
+ " filter out dictionary functions
+ echomsg leader . a:msg . ' ' .
+ \ strtrans(string(type(a:1) == type({}) || type(a:1) == type([]) ?
+ \ filter(copy(a:1), 'type(v:val) != type(function("tr"))') : a:1))
+ else
+ echomsg leader . a:msg
+ endif
+
+ call s:_logRedirect(0)
+endfunction " }}}2
+
+function! syntastic#log#debugShowOptions(level, names) " {{{2
+ if !s:_isDebugEnabled(a:level)
+ return
+ endif
+
+ let leader = s:_log_timestamp()
+ call s:_logRedirect(1)
+
+ let vlist = copy(type(a:names) == type("") ? [a:names] : a:names)
+ if !empty(vlist)
+ call map(vlist, "'&' . v:val . ' = ' . strtrans(string(eval('&' . v:val)))")
+ echomsg leader . join(vlist, ', ')
+ endif
+ call s:_logRedirect(0)
+endfunction " }}}2
+
+function! syntastic#log#debugShowVariables(level, names) " {{{2
+ if !s:_isDebugEnabled(a:level)
+ return
+ endif
+
+ let leader = s:_log_timestamp()
+ call s:_logRedirect(1)
+
+ let vlist = type(a:names) == type("") ? [a:names] : a:names
+ for name in vlist
+ let msg = s:_format_variable(name)
+ if msg != ''
+ echomsg leader . msg
+ endif
+ endfor
+
+ call s:_logRedirect(0)
+endfunction " }}}2
+
+function! syntastic#log#debugDump(level) " {{{2
+ if !s:_isDebugEnabled(a:level)
+ return
+ endif
+
+ call syntastic#log#debugShowVariables( a:level, sort(keys(g:_SYNTASTIC_DEFAULTS)) )
+endfunction " }}}2
+
+" }}}1
+
+" Private functions {{{1
+
+function! s:_isDebugEnabled_smart(level) " {{{2
+ return and(g:syntastic_debug, a:level)
+endfunction " }}}2
+
+function! s:_isDebugEnabled_dumb(level) " {{{2
+ " poor man's bit test for bit N, assuming a:level == 2**N
+ return (g:syntastic_debug / a:level) % 2
+endfunction " }}}2
+
+let s:_isDebugEnabled = function(exists('*and') ? 's:_isDebugEnabled_smart' : 's:_isDebugEnabled_dumb')
+lockvar s:_isDebugEnabled
+
+function! s:_logRedirect(on) " {{{2
+ if exists("g:syntastic_debug_file")
+ if a:on
+ try
+ execute 'redir >> ' . fnameescape(expand(g:syntastic_debug_file))
+ catch /\m^Vim\%((\a\+)\)\=:/
+ silent! redir END
+ unlet g:syntastic_debug_file
+ endtry
+ else
+ silent! redir END
+ endif
+ endif
+endfunction " }}}2
+
+" }}}1
+
+" Utilities {{{1
+
+function! s:_log_timestamp() " {{{2
+ return 'syntastic: ' . split(reltimestr(reltime(g:_SYNTASTIC_START)))[0] . ': '
+endfunction " }}}2
+
+function! s:_format_variable(name) " {{{2
+ let vals = []
+ if exists('g:syntastic_' . a:name)
+ call add(vals, 'g:syntastic_' . a:name . ' = ' . strtrans(string(g:syntastic_{a:name})))
+ endif
+ if exists('b:syntastic_' . a:name)
+ call add(vals, 'b:syntastic_' . a:name . ' = ' . strtrans(string(b:syntastic_{a:name})))
+ endif
+
+ return join(vals, ', ')
+endfunction " }}}2
+
+" }}}1
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set sw=4 sts=4 et fdm=marker:
diff --git a/vim/vim.symlink/bundle/syntastic/autoload/syntastic/postprocess.vim b/vim/vim.symlink/bundle/syntastic/autoload/syntastic/postprocess.vim
new file mode 100644
index 0000000..80fd7cf
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/autoload/syntastic/postprocess.vim
@@ -0,0 +1,73 @@
+if exists("g:loaded_syntastic_postprocess_autoload") || !exists("g:loaded_syntastic_plugin")
+ finish
+endif
+let g:loaded_syntastic_postprocess_autoload = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+" Public functions {{{1
+
+" merge consecutive blanks
+function! syntastic#postprocess#compressWhitespace(errors) " {{{2
+ for e in a:errors
+ let e['text'] = substitute(e['text'], "\001", '', 'g')
+ let e['text'] = substitute(e['text'], '\n', ' ', 'g')
+ let e['text'] = substitute(e['text'], '\m\s\{2,}', ' ', 'g')
+ let e['text'] = substitute(e['text'], '\m^\s\+', '', '')
+ let e['text'] = substitute(e['text'], '\m\s\+$', '', '')
+ endfor
+
+ return a:errors
+endfunction " }}}2
+
+" remove spurious CR under Cygwin
+function! syntastic#postprocess#cygwinRemoveCR(errors) " {{{2
+ if has('win32unix')
+ for e in a:errors
+ let e['text'] = substitute(e['text'], '\r', '', 'g')
+ endfor
+ endif
+
+ return a:errors
+endfunction " }}}2
+
+" decode XML entities
+function! syntastic#postprocess#decodeXMLEntities(errors) " {{{2
+ for e in a:errors
+ let e['text'] = syntastic#util#decodeXMLEntities(e['text'])
+ endfor
+
+ return a:errors
+endfunction " }}}2
+
+" filter out errors referencing other files
+function! syntastic#postprocess#filterForeignErrors(errors) " {{{2
+ return filter(copy(a:errors), 'get(v:val, "bufnr") == ' . bufnr(''))
+endfunction " }}}2
+
+" make sure line numbers are not past end of buffers
+" XXX: this loads all referenced buffers in memory
+function! syntastic#postprocess#guards(errors) " {{{2
+ let buffers = syntastic#util#unique(map(filter(copy(a:errors), 'v:val["valid"]'), 'str2nr(v:val["bufnr"])'))
+
+ let guards = {}
+ for b in buffers
+ let guards[b] = len(getbufline(b, 1, '$'))
+ endfor
+
+ for e in a:errors
+ if e['valid'] && e['lnum'] > guards[e['bufnr']]
+ let e['lnum'] = guards[e['bufnr']]
+ endif
+ endfor
+
+ return a:errors
+endfunction " }}}2
+
+" }}}1
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set sw=4 sts=4 et fdm=marker:
diff --git a/vim/vim.symlink/bundle/syntastic/autoload/syntastic/preprocess.vim b/vim/vim.symlink/bundle/syntastic/autoload/syntastic/preprocess.vim
new file mode 100644
index 0000000..4ce15f1
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/autoload/syntastic/preprocess.vim
@@ -0,0 +1,198 @@
+if exists("g:loaded_syntastic_preprocess_autoload") || !exists("g:loaded_syntastic_plugin")
+ finish
+endif
+let g:loaded_syntastic_preprocess_autoload = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+" Public functions {{{1
+
+function! syntastic#preprocess#cabal(errors) " {{{2
+ let out = []
+ let star = 0
+ for err in a:errors
+ if star
+ if err == ''
+ let star = 0
+ else
+ let out[-1] .= ' ' . err
+ endif
+ else
+ call add(out, err)
+ if err =~ '\m^*\s'
+ let star = 1
+ endif
+ endif
+ endfor
+ return out
+endfunction " }}}2
+
+function! syntastic#preprocess#checkstyle(errors) " {{{2
+ let out = []
+ let fname = expand('%')
+ for err in a:errors
+ if match(err, '\m') > -1
+ let line = str2nr(matchstr(err, '\m\ \[[^]]+\])+\ze:'', "", "")')
+endfunction " }}}2
+
+function! syntastic#preprocess#killEmpty(errors) " {{{2
+ return filter(copy(a:errors), 'v:val != ""')
+endfunction " }}}2
+
+function! syntastic#preprocess#perl(errors) " {{{2
+ let out = []
+
+ for e in a:errors
+ let parts = matchlist(e, '\v^(.*)\sat\s(.*)\sline\s(\d+)(.*)$')
+ if !empty(parts)
+ call add(out, parts[2] . ':' . parts[3] . ':' . parts[1] . parts[4])
+ endif
+ endfor
+
+ return syntastic#util#unique(out)
+endfunction " }}}2
+
+" @vimlint(EVL102, 1, l:true)
+" @vimlint(EVL102, 1, l:false)
+" @vimlint(EVL102, 1, l:null)
+function! syntastic#preprocess#prospector(errors) " {{{2
+ " JSON artifacts
+ let true = 1
+ let false = 0
+ let null = ''
+
+ " A hat tip to Marc Weber for this trick
+ " http://stackoverflow.com/questions/17751186/iterating-over-a-string-in-vimscript-or-parse-a-json-file/19105763#19105763
+ try
+ let errs = eval(join(a:errors, ''))
+ catch
+ let errs = {}
+ endtry
+
+ let out = []
+ if type(errs) == type({}) && has_key(errs, 'messages') && type(errs['messages']) == type([])
+ for e in errs['messages']
+ if type(e) == type({})
+ try
+ if e['source'] ==# 'pylint'
+ let e['location']['character'] += 1
+ endif
+
+ let msg =
+ \ e['location']['path'] . ':' .
+ \ e['location']['line'] . ':' .
+ \ e['location']['character'] . ': ' .
+ \ e['code'] . ' ' .
+ \ e['message'] . ' ' .
+ \ '[' . e['source'] . ']'
+
+ call add(out, msg)
+ catch /\m^Vim\%((\a\+)\)\=:E716/
+ call syntastic#log#warn('checker python/prospector: unknown error format')
+ let out = []
+ break
+ endtry
+ else
+ call syntastic#log#warn('checker python/prospector: unknown error format')
+ let out = []
+ break
+ endif
+ endfor
+ else
+ call syntastic#log#warn('checker python/prospector: unknown error format')
+ endif
+
+ return out
+endfunction " }}}2
+" @vimlint(EVL102, 0, l:true)
+" @vimlint(EVL102, 0, l:false)
+" @vimlint(EVL102, 0, l:null)
+
+function! syntastic#preprocess#rparse(errors) " {{{2
+ let errlist = copy(a:errors)
+
+ " remove uninteresting lines and handle continuations
+ let i = 0
+ while i < len(errlist)
+ if i > 0 && errlist[i][:1] == ' ' && errlist[i] !~ '\m\s\+\^$'
+ let errlist[i-1] .= errlist[i][1:]
+ call remove(errlist, i)
+ elseif errlist[i] !~ '\m^\(Lint:\|Lint checking:\|Error in\) '
+ call remove(errlist, i)
+ else
+ let i += 1
+ endif
+ endwhile
+
+ let out = []
+ let fname = ''
+ for e in errlist
+ if match(e, '\m^Lint: ') == 0
+ let parts = matchlist(e, '\m^Lint: \(.*\): found on lines \([0-9, ]\+\)\(+\(\d\+\) more\)\=')
+ if len(parts) >= 3
+ for line in split(parts[2], '\m,\s*')
+ call add(out, 'E:' . fname . ':' . line . ': ' . parts[1])
+ endfor
+ endif
+ if len(parts) >= 5 && parts[4] != ''
+ call add(out, 'E:' . fname . ':0: ' . parts[1] . ' - ' . parts[4] . ' messages not shown')
+ endif
+ elseif match(e, '\m^Lint checking: ') == 0
+ let fname = matchstr(e, '\m^Lint checking: \zs.*')
+ elseif match(e, '\m^Error in ') == 0
+ call add(out, substitute(e, '\m^Error in .\+ : .\+\ze:\d\+:\d\+: ', 'E:' . fname, ''))
+ endif
+ endfor
+
+ return out
+endfunction " }}}2
+
+function! syntastic#preprocess#tslint(errors) " {{{2
+ return map(copy(a:errors), 'substitute(v:val, ''\m^\(([^)]\+)\)\s\(.\+\)$'', ''\2 \1'', "")')
+endfunction " }}}2
+
+function! syntastic#preprocess#validator(errors) " {{{2
+ let out = []
+ for e in a:errors
+ let parts = matchlist(e, '\v^"([^"]+)"(.+)')
+ if len(parts) >= 3
+ " URL decode, except leave alone any "+"
+ let parts[1] = substitute(parts[1], '\m%\(\x\x\)', '\=nr2char("0x".submatch(1))', 'g')
+ let parts[1] = substitute(parts[1], '\m\\"', '"', 'g')
+ let parts[1] = substitute(parts[1], '\m\\\\', '\\', 'g')
+ call add(out, '"' . parts[1] . '"' . parts[2])
+ endif
+ endfor
+ return out
+endfunction " }}}2
+
+" }}}1
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set sw=4 sts=4 et fdm=marker:
diff --git a/vim/vim.symlink/bundle/syntastic/autoload/syntastic/util.vim b/vim/vim.symlink/bundle/syntastic/autoload/syntastic/util.vim
new file mode 100644
index 0000000..77bee73
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/autoload/syntastic/util.vim
@@ -0,0 +1,360 @@
+if exists('g:loaded_syntastic_util_autoload') || !exists("g:loaded_syntastic_plugin")
+ finish
+endif
+let g:loaded_syntastic_util_autoload = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+" Public functions {{{1
+
+function! syntastic#util#isRunningWindows() " {{{2
+ return has('win16') || has('win32') || has('win64')
+endfunction " }}}2
+
+function! syntastic#util#DevNull() " {{{2
+ if syntastic#util#isRunningWindows()
+ return 'NUL'
+ endif
+ return '/dev/null'
+endfunction " }}}2
+
+" Get directory separator
+function! syntastic#util#Slash() abort " {{{2
+ return (!exists("+shellslash") || &shellslash) ? '/' : '\'
+endfunction " }}}2
+
+" Create a temporary directory
+function! syntastic#util#tmpdir() " {{{2
+ let tempdir = ''
+
+ if (has('unix') || has('mac')) && executable('mktemp')
+ " TODO: option "-t" to mktemp(1) is not portable
+ let tmp = $TMPDIR != '' ? $TMPDIR : $TMP != '' ? $TMP : '/tmp'
+ let out = split(system('mktemp -q -d ' . tmp . '/vim-syntastic-' . getpid() . '-XXXXXXXX'), "\n")
+ if v:shell_error == 0 && len(out) == 1
+ let tempdir = out[0]
+ endif
+ endif
+
+ if tempdir == ''
+ if has('win32') || has('win64')
+ let tempdir = $TEMP . syntastic#util#Slash() . 'vim-syntastic-' . getpid()
+ elseif has('win32unix')
+ let tempdir = s:CygwinPath('/tmp/vim-syntastic-' . getpid())
+ elseif $TMPDIR != ''
+ let tempdir = $TMPDIR . '/vim-syntastic-' . getpid()
+ else
+ let tempdir = '/tmp/vim-syntastic-' . getpid()
+ endif
+
+ try
+ call mkdir(tempdir, 'p', 0700)
+ catch /\m^Vim\%((\a\+)\)\=:E739/
+ call syntastic#log#error(v:exception)
+ let tempdir = '.'
+ endtry
+ endif
+
+ return tempdir
+endfunction " }}}2
+
+" Recursively remove a directory
+function! syntastic#util#rmrf(what) " {{{2
+ if a:what == '.'
+ return
+ endif
+
+ if getftype(a:what) ==# 'dir'
+ if !exists('s:rmrf')
+ let s:rmrf =
+ \ has('unix') || has('mac') ? 'rm -rf' :
+ \ has('win32') || has('win64') ? 'rmdir /S /Q' :
+ \ has('win16') || has('win95') || has('dos16') || has('dos32') ? 'deltree /Y' : ''
+ endif
+
+ if s:rmrf != ''
+ silent! call system(s:rmrf . ' ' . syntastic#util#shescape(a:what))
+ else
+ call s:_rmrf(a:what)
+ endif
+ else
+ silent! call delete(a:what)
+ endif
+endfunction " }}}2
+
+"search the first 5 lines of the file for a magic number and return a map
+"containing the args and the executable
+"
+"e.g.
+"
+"#!/usr/bin/perl -f -bar
+"
+"returns
+"
+"{'exe': '/usr/bin/perl', 'args': ['-f', '-bar']}
+function! syntastic#util#parseShebang() " {{{2
+ for lnum in range(1, 5)
+ let line = getline(lnum)
+ if line =~ '^#!'
+ let line = substitute(line, '\v^#!\s*(\S+/env(\s+-\S+)*\s+)?', '', '')
+ let exe = matchstr(line, '\m^\S*\ze')
+ let args = split(matchstr(line, '\m^\S*\zs.*'))
+ return { 'exe': exe, 'args': args }
+ endif
+ endfor
+
+ return { 'exe': '', 'args': [] }
+endfunction " }}}2
+
+" Get the value of a variable. Allow local variables to override global ones.
+function! syntastic#util#var(name, ...) " {{{2
+ return
+ \ exists('b:syntastic_' . a:name) ? b:syntastic_{a:name} :
+ \ exists('g:syntastic_' . a:name) ? g:syntastic_{a:name} :
+ \ a:0 > 0 ? a:1 : ''
+endfunction " }}}2
+
+" Parse a version string. Return an array of version components.
+function! syntastic#util#parseVersion(version) " {{{2
+ return map(split(matchstr( a:version, '\v^\D*\zs\d+(\.\d+)+\ze' ), '\m\.'), 'str2nr(v:val)')
+endfunction " }}}2
+
+" Run 'command' in a shell and parse output as a version string.
+" Returns an array of version components.
+function! syntastic#util#getVersion(command) " {{{2
+ return syntastic#util#parseVersion(system(a:command))
+endfunction " }}}2
+
+" Verify that the 'installed' version is at least the 'required' version.
+"
+" 'installed' and 'required' must be arrays. If they have different lengths,
+" the "missing" elements will be assumed to be 0 for the purposes of checking.
+"
+" See http://semver.org for info about version numbers.
+function! syntastic#util#versionIsAtLeast(installed, required) " {{{2
+ return syntastic#util#compareLexi(a:installed, a:required) >= 0
+endfunction " }}}2
+
+" Almost lexicographic comparison of two lists of integers. :) If lists
+" have different lengths, the "missing" elements are assumed to be 0.
+function! syntastic#util#compareLexi(a, b) " {{{2
+ for idx in range(max([len(a:a), len(a:b)]))
+ let a_element = str2nr(get(a:a, idx, 0))
+ let b_element = str2nr(get(a:b, idx, 0))
+ if a_element != b_element
+ return a_element > b_element ? 1 : -1
+ endif
+ endfor
+ " Everything matched, so it is at least the required version.
+ return 0
+endfunction " }}}2
+
+" strwidth() was added in Vim 7.3; if it doesn't exist, we use strlen()
+" and hope for the best :)
+let s:_width = function(exists('*strwidth') ? 'strwidth' : 'strlen')
+lockvar s:_width
+
+function! syntastic#util#screenWidth(str, tabstop) " {{{2
+ let chunks = split(a:str, "\t", 1)
+ let width = s:_width(chunks[-1])
+ for c in chunks[:-2]
+ let cwidth = s:_width(c)
+ let width += cwidth + a:tabstop - cwidth % a:tabstop
+ endfor
+ return width
+endfunction " }}}2
+
+"print as much of a:msg as possible without "Press Enter" prompt appearing
+function! syntastic#util#wideMsg(msg) " {{{2
+ let old_ruler = &ruler
+ let old_showcmd = &showcmd
+
+ "This is here because it is possible for some error messages to
+ "begin with \n which will cause a "press enter" prompt.
+ let msg = substitute(a:msg, "\n", "", "g")
+
+ "convert tabs to spaces so that the tabs count towards the window
+ "width as the proper amount of characters
+ let chunks = split(msg, "\t", 1)
+ let msg = join(map(chunks[:-2], 'v:val . repeat(" ", &tabstop - s:_width(v:val) % &tabstop)'), '') . chunks[-1]
+ let msg = strpart(msg, 0, &columns - 1)
+
+ set noruler noshowcmd
+ call syntastic#util#redraw(0)
+
+ echo msg
+
+ let &ruler = old_ruler
+ let &showcmd = old_showcmd
+endfunction " }}}2
+
+" Check whether a buffer is loaded, listed, and not hidden
+function! syntastic#util#bufIsActive(buffer) " {{{2
+ " convert to number, or hell breaks loose
+ let buf = str2nr(a:buffer)
+
+ if !bufloaded(buf) || !buflisted(buf)
+ return 0
+ endif
+
+ " get rid of hidden buffers
+ for tab in range(1, tabpagenr('$'))
+ if index(tabpagebuflist(tab), buf) >= 0
+ return 1
+ endif
+ endfor
+
+ return 0
+endfunction " }}}2
+
+" start in directory a:where and walk up the parent folders until it
+" finds a file matching a:what; return path to that file
+function! syntastic#util#findInParent(what, where) " {{{2
+ let here = fnamemodify(a:where, ':p')
+
+ let root = syntastic#util#Slash()
+ if syntastic#util#isRunningWindows() && here[1] == ':'
+ " The drive letter is an ever-green source of fun. That's because
+ " we don't care about running syntastic on Amiga these days. ;)
+ let root = fnamemodify(root, ':p')
+ let root = here[0] . root[1:]
+ endif
+
+ let old = ''
+ while here != ''
+ let p = split(globpath(here, a:what), '\n')
+
+ if !empty(p)
+ return fnamemodify(p[0], ':p')
+ elseif here ==? root || here ==? old
+ break
+ endif
+
+ let old = here
+
+ " we use ':h:h' rather than ':h' since ':p' adds a trailing '/'
+ " if 'here' is a directory
+ let here = fnamemodify(here, ':p:h:h')
+ endwhile
+
+ return ''
+endfunction " }}}2
+
+" Returns unique elements in a list
+function! syntastic#util#unique(list) " {{{2
+ let seen = {}
+ let uniques = []
+ for e in a:list
+ if !has_key(seen, e)
+ let seen[e] = 1
+ call add(uniques, e)
+ endif
+ endfor
+ return uniques
+endfunction " }}}2
+
+" A less noisy shellescape()
+function! syntastic#util#shescape(string) " {{{2
+ return a:string =~ '\m^[A-Za-z0-9_/.-]\+$' ? a:string : shellescape(a:string)
+endfunction " }}}2
+
+" A less noisy shellescape(expand())
+function! syntastic#util#shexpand(string) " {{{2
+ return syntastic#util#shescape(expand(a:string))
+endfunction " }}}2
+
+" decode XML entities
+function! syntastic#util#decodeXMLEntities(string) " {{{2
+ let str = a:string
+ let str = substitute(str, '\m<', '<', 'g')
+ let str = substitute(str, '\m>', '>', 'g')
+ let str = substitute(str, '\m"', '"', 'g')
+ let str = substitute(str, '\m'', "'", 'g')
+ let str = substitute(str, '\m&', '\&', 'g')
+ return str
+endfunction " }}}2
+
+function! syntastic#util#redraw(full) " {{{2
+ if a:full
+ redraw!
+ else
+ redraw
+ endif
+endfunction " }}}2
+
+function! syntastic#util#dictFilter(errors, filter) " {{{2
+ let rules = s:_translateFilter(a:filter)
+ " call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, "applying filter:", rules)
+ try
+ call filter(a:errors, rules)
+ catch /\m^Vim\%((\a\+)\)\=:E/
+ let msg = matchstr(v:exception, '\m^Vim\%((\a\+)\)\=:\zs.*')
+ call syntastic#log#error('quiet_messages: ' . msg)
+ endtry
+endfunction " }}}2
+
+" Return a [high, low] list of integers, representing the time
+" (hopefully high resolution) since program start
+" TODO: This assumes reltime() returns a list of integers.
+function! syntastic#util#stamp() " {{{2
+ return reltime(g:_SYNTASTIC_START)
+endfunction " }}}2
+
+" }}}1
+
+" Private functions {{{1
+
+function! s:_translateFilter(filters) " {{{2
+ let conditions = []
+ for k in keys(a:filters)
+ if type(a:filters[k]) == type([])
+ call extend(conditions, map(copy(a:filters[k]), 's:_translateElement(k, v:val)'))
+ else
+ call add(conditions, s:_translateElement(k, a:filters[k]))
+ endif
+ endfor
+
+ if conditions == []
+ let conditions = ["1"]
+ endif
+ return len(conditions) == 1 ? conditions[0] : join(map(conditions, '"(" . v:val . ")"'), ' && ')
+endfunction " }}}2
+
+function! s:_translateElement(key, term) " {{{2
+ if a:key ==? 'level'
+ let ret = 'v:val["type"] !=? ' . string(a:term[0])
+ elseif a:key ==? 'type'
+ let ret = a:term ==? 'style' ? 'get(v:val, "subtype", "") !=? "style"' : 'has_key(v:val, "subtype")'
+ elseif a:key ==? 'regex'
+ let ret = 'v:val["text"] !~? ' . string(a:term)
+ elseif a:key ==? 'file'
+ let ret = 'bufname(str2nr(v:val["bufnr"])) !~# ' . string(a:term)
+ else
+ call syntastic#log#warn('quiet_messages: ignoring invalid key ' . strtrans(string(a:key)))
+ let ret = "1"
+ endif
+ return ret
+endfunction " }}}2
+
+function! s:_rmrf(what) " {{{2
+ if !exists('s:rmdir')
+ let s:rmdir = syntastic#util#shescape(get(g:, 'netrw_localrmdir', 'rmdir'))
+ endif
+
+ if getftype(a:what) ==# 'dir'
+ for f in split(globpath(a:what, '*'), "\n")
+ call s:_rmrf(f)
+ endfor
+ silent! call system(s:rmdir . ' ' . syntastic#util#shescape(a:what))
+ else
+ silent! call delete(a:what)
+ endif
+endfunction " }}}2
+
+" }}}1
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set sw=4 sts=4 et fdm=marker:
diff --git a/vim/vim.symlink/bundle/syntastic/doc/syntastic.txt b/vim/vim.symlink/bundle/syntastic/doc/syntastic.txt
new file mode 100644
index 0000000..b6d8dbe
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/doc/syntastic.txt
@@ -0,0 +1,840 @@
+*syntastic.txt* Syntax checking on the fly has never been so pimp.
+*syntastic*
+
+
+ It's a bird! It's a plane! ZOMG It's ... ~
+
+ _____ __ __ _ ~
+ / ___/__ ______ / /_____ ______/ /_(_)____ ~
+ \__ \/ / / / __ \/ __/ __ `/ ___/ __/ / ___/ ~
+ ___/ / /_/ / / / / /_/ /_/ (__ ) /_/ / /__ ~
+ /____/\__, /_/ /_/\__/\__,_/____/\__/_/\___/ ~
+ /____/ ~
+
+
+
+ Reference Manual~
+
+
+==============================================================================
+CONTENTS *syntastic-contents*
+
+ 1.Intro........................................|syntastic-intro|
+ 1.1.Quick start............................|syntastic-quickstart|
+ 2.Functionality provided.......................|syntastic-functionality|
+ 2.1.The statusline flag....................|syntastic-statusline-flag|
+ 2.2.Error signs............................|syntastic-error-signs|
+ 2.3.Error window...........................|syntastic-error-window|
+ 2.4.Error highlighting.....................|syntastic-highlighting|
+ 2.5.Aggregating errors.....................|syntastic-aggregating-errors|
+ 2.6.Filtering errors.......................|syntastic-filtering-errors|
+ 3.Commands.....................................|syntastic-commands|
+ 4.Global Options...............................|syntastic-global-options|
+ 5.Checker Options..............................|syntastic-checker-options|
+ 5.1.Choosing which checkers to use.........|syntastic-filetype-checkers|
+ 5.2.Choosing the executable................|syntastic-config-exec|
+ 5.3.Configuring specific checkers..........|syntastic-config-makeprg|
+ 5.4.Sorting errors.........................|syntastic-config-sort|
+ 6.Notes........................................|syntastic-notes|
+ 6.1.Handling of composite filetypes........|syntastic-composite|
+ 6.2.Editing files over network.............|syntastic-netrw|
+ 6.3.Interaction with python-mode...........|syntastic-pymode|
+ 6.4.Interaction with YouCompleteMe.........|syntastic-ycm|
+ 6.5.Interaction with the fish shell........|syntastic-fish|
+ 6.6.Interaction with PowerShell............|syntastic-powershell|
+ 6.7.Using syntastic with the fizsh shell...|syntastic-fizsh|
+ 6.8.Interaction with Eclim.................|syntastic-eclim|
+ 6.9.Interaction with vim-virtualenv........|syntastic-vim-virtualenv|
+ 6.10.Interaction with vim-auto-save........|syntastic-vim-auto-save|
+ 7.About........................................|syntastic-about|
+ 8.License......................................|syntastic-license|
+
+
+==============================================================================
+1. Intro *syntastic-intro*
+
+Syntastic is a syntax checking plugin that runs files through external syntax
+checkers. This can be done on demand, or automatically as files are saved and
+opened. If syntax errors are detected, the user is notified and is happy
+because they didn't have to compile their code or execute their script to find
+them.
+
+Syntastic comes in two parts: the syntax checker plugins, and the core. The
+syntax checker plugins are defined on a per-filetype basis where each one wraps
+up an external syntax checking program. The core script delegates off to these
+plugins and uses their output to provide the syntastic functionality.
+
+Take a look at the wiki for a list of supported filetypes and checkers:
+
+ https://github.com/scrooloose/syntastic/wiki/Syntax-Checkers
+
+Note: This doc only deals with using syntastic. To learn how to write syntax
+checker integrations, see the guide on the GitHub wiki:
+
+ https://github.com/scrooloose/syntastic/wiki/Syntax-Checker-Guide
+
+------------------------------------------------------------------------------
+1.1. Quick start *syntastic-quickstart*
+
+Syntastic comes preconfigured with a default list of enabled checkers per
+filetype. This list is kept reasonably short to prevent slowing down Vim or
+trying to use conflicting checkers.
+
+You can see the list of checkers available for the current filetype with the
+|:SyntasticInfo| command.
+
+You probably want to override the configured list of checkers for the
+filetypes you use, and also change the arguments passed to specific checkers
+to suit your needs. See |syntastic-checker-options| for details.
+
+Use |:SyntasticCheck| to manually check right now. Use |:Errors| to open the
+|location-list| window, and |:lclose| to close it. You can clear the error
+list with |:SyntasticReset|, and you can use |:SyntasticToggleMode| to switch
+between active (checking on writing the buffer) and passive (manual) checking.
+
+==============================================================================
+2. Functionality provided *syntastic-functionality*
+
+Syntax checking can be done automatically or on demand (see
+|'syntastic_mode_map'| and |:SyntasticToggleMode| for configuring this).
+
+When syntax checking is done, the features below can be used to notify the
+user of errors. See |syntastic-global-options| for how to configure and
+activate/deactivate these features.
+
+ * A statusline flag
+ * Signs beside lines with errors
+ * The |location-list| can be populated with the errors for the associated
+ buffer
+ * Erroneous parts of lines can be highlighted (this functionality is only
+ provided by some syntax checkers)
+ * Balloons (if the |+balloon_eval| feature is compiled in) can be used to
+ display error messages for erroneous lines when hovering the mouse over
+ them
+ * Error messages from multiple checkers can be aggregated in a single list
+
+------------------------------------------------------------------------------
+2.1. The statusline flag *syntastic-statusline-flag*
+
+To use the statusline flag, this must appear in your |'statusline'| setting >
+ %{SyntasticStatuslineFlag()}
+<
+Something like this could be more useful: >
+ set statusline+=%#warningmsg#
+ set statusline+=%{SyntasticStatuslineFlag()}
+ set statusline+=%*
+<
+When syntax errors are detected a flag will be shown. The content of the flag
+is derived from the |syntastic_stl_format| option.
+
+------------------------------------------------------------------------------
+2.2. Error signs *syntastic-error-signs*
+
+Syntastic uses the |:sign| commands to mark lines with errors and warnings in
+the sign column. To enable this feature, use the |'syntastic_enable_signs'|
+option.
+
+Signs are colored using the Error and Todo syntax highlight groups by default.
+If you wish to customize the colors for the signs, you can use the following
+groups:
+ SyntasticErrorSign - For syntax errors, links to 'error' by default
+ SyntasticWarningSign - For syntax warnings, links to 'todo' by default
+ SyntasticStyleErrorSign - For style errors, links to 'SyntasticErrorSign'
+ by default
+ SyntasticStyleWarningSign - For style warnings, links to
+ 'SyntasticWarningSign' by default
+
+Example: >
+ highlight SyntasticErrorSign guifg=white guibg=red
+<
+To set up highlighting for the line where a sign resides, you can use the
+following highlight groups:
+ SyntasticErrorLine
+ SyntasticWarningLine
+ SyntasticStyleErrorLine - Links to 'SyntasticErrorLine' by default
+ SyntasticStyleWarningLine - Links to 'SyntasticWarningLine' by default
+
+Example: >
+ highlight SyntasticErrorLine guibg=#2f0000
+<
+------------------------------------------------------------------------------
+2.3. The error window *syntastic-error-window*
+
+You can use the |:Errors| command to display the errors for the current buffer
+in the |location-list|.
+
+Note that when you use |:Errors|, the current location list is overwritten
+with Syntastic's own location list.
+
+By default syntastic doesn't fill the |location-list| with the errors found by
+the checkers, in order to reduce clashes with other plugins. Consequently, if
+you run |:lopen| or |:lwindow| rather than |:Errors| to open the error window you
+wouldn't see syntastic's list of errors. If you insist on using |:lopen| or
+|:lwindow| you should either run |:SyntasticSetLoclist| after running the checks,
+or set |syntastic_always_populate_loc_list| which tells syntastic to update the
+|location-list| automatically.
+
+------------------------------------------------------------------------------
+2.4. Error highlighting *syntastic-highlighting*
+
+Some checkers provide enough information for syntastic to be able to highlight
+errors. By default the SpellBad syntax highlight group is used to color errors,
+and the SpellCap group is used for warnings. If you wish to customize the
+colors for highlighting you can use the following groups:
+ SyntasticError - Links to 'SpellBad' by default
+ SyntasticWarning - Links to 'SpellCap' by default
+ SyntasticStyleError - Links to SyntasticError by default
+ SyntasticStyleWarning - Links to SyntasticWarning by default
+
+Example: >
+ highlight SyntasticError guibg=#2f0000
+<
+------------------------------------------------------------------------------
+2.5. Aggregating errors *syntastic-aggregating-errors*
+
+By default, namely if |'syntastic_aggregate_errors'| is unset, syntastic runs
+in turn the checkers corresponding to the filetype of the current file (see
+|syntastic-filetype-checkers|), and stops as soon as a checker reports any
+errors. It then notifies you of the errors using the notification mechanisms
+above. In this mode error lists are always produced by a single checker, and,
+if you open the error window, the name of the checker that generated the errors
+is shown on the statusline of the error window.
+
+If |'syntastic_aggregate_errors'| is set, syntastic runs all checkers that
+apply (still cf. |syntastic-filetype-checkers|), then aggregates errors found
+by all checkers in a single list, and notifies you. In this mode each error
+message is labeled with the name of the checker that generated it, but you can
+disable generation of these labels by turning off '|syntastic_id_checkers|'.
+
+If |'syntastic_sort_aggregated_errors'| is set (which is the default), messages
+in the aggregated list are grouped by file, then sorted by line number, then
+type, then column number. Otherwise messages produced by the same checker are
+grouped together, and sorting within each group is decided by the variables
+|'syntastic___sort'|.
+
+------------------------------------------------------------------------------
+2.6 Filtering errors *syntastic-filtering-errors*
+
+You can selectively disable some of the errors found by checkers either
+using |'syntastic_quiet_messages'|, or by specifying a list of patterns in
+|'syntastic_ignore_files'|.
+
+See also: |'syntastic___quiet_messages'|.
+
+==============================================================================
+3. Commands *syntastic-commands*
+
+:Errors *:Errors*
+
+When errors have been detected, use this command to pop up the |location-list|
+and display the error messages.
+
+Please note that the |:Errors| command overwrites the current location list with
+syntastic's own location list.
+
+:SyntasticToggleMode *:SyntasticToggleMode*
+
+Toggles syntastic between active and passive mode. See |'syntastic_mode_map'|
+for more info.
+
+:SyntasticCheck *:SyntasticCheck*
+
+Manually cause a syntax check to be done. By default the checkers in the
+|'g:syntastic__checkers'| or |'b:syntastic_checkers'| lists are run,
+cf. |syntastic-filetype-checkers|. If |syntastic_aggregate_errors| is unset
+(which is the default), checking stops the first time a checker reports any
+errors; if |syntastic_aggregate_errors| is set, all checkers that apply are run
+in turn, and all errors found are aggregated in a single list.
+
+The command may be followed by a (space separated) list of checkers. In this
+case |'g:syntastic__checkers'| and |'b:syntastic_checkers'| are
+ignored, and the checkers named by the command's arguments are run instead, in
+the order specified. The rules of |syntastic_aggregate_errors| still apply.
+
+Example: >
+ :SyntasticCheck flake8 pylint
+<
+:SyntasticInfo *:SyntasticInfo*
+
+The command takes an optional argument, and outputs information about the
+checkers available for the filetype named by said argument, or for the current
+filetype if no argument was provided.
+
+:SyntasticReset *:SyntasticReset*
+
+Resets the list of errors and turns off all error notifiers.
+
+:SyntasticSetLoclist *:SyntasticSetLoclist*
+
+If |'syntastic_always_populate_loc_list'| is not set, the |location-list| is
+not filled in automatically with the list of errors detected by the checkers.
+This is useful if you run syntastic along with other plugins that use location
+lists. The |:SyntasticSetLoclist| command allows you to stick the errors into
+the location list explicitly.
+
+==============================================================================
+4. Global Options *syntastic-global-options*
+
+
+ *'syntastic_check_on_open'*
+Default: 0
+If enabled, syntastic will do syntax checks when buffers are first loaded as
+well as on saving >
+ let g:syntastic_check_on_open = 1
+<
+ *'syntastic_check_on_wq'*
+Default: 1
+Normally syntastic runs syntax checks whenever buffers are written to disk.
+If you want to skip these checks when you issue |:wq|, |:x|, and |:ZZ|, set this
+variable to 0. >
+ let g:syntastic_check_on_wq = 0
+<
+ *'syntastic_aggregate_errors'*
+Default: 0
+When enabled, syntastic runs all checkers that apply to the current filetype,
+then aggregates errors found by all checkers and displays them. When disabled,
+syntastic runs each checker in turn, and stops to display the results the first
+time a checker finds any errors. >
+ let g:syntastic_aggregate_errors = 1
+<
+ *'syntastic_id_checkers'*
+Default: 1
+When results from multiple checkers are aggregated in a single error list
+(that is either when |syntastic_aggregate_errors| is enabled, or when checking
+a file with a composite filetype), it might not be immediately obvious which
+checker has produced a given error message. This variable instructs syntastic
+to label error messages with the names of the checkers that created them. >
+ let g:syntastic_id_checkers = 0
+<
+ *'syntastic_sort_aggregated_errors'*
+Default: 1
+By default, when results from multiple checkers are aggregated in a single
+error list (that is either when |syntastic_aggregate_errors| is enabled, or
+when checking a file with a composite filetype), errors are grouped by file,
+then sorted by line number, then grouped by type (namely errors take precedence
+over warnings), then they are sorted by column number. If you want to leave
+messages grouped by checker output, set this variable to 0. >
+ let g:syntastic_sort_aggregated_errors = 0
+<
+ *'syntastic_echo_current_error'*
+Default: 1
+If enabled, syntastic will echo current error to the command window. If
+multiple errors are found on the same line, |syntastic_cursor_columns| is used
+to decide which one is shown. >
+ let g:syntastic_echo_current_error = 1
+<
+ *'syntastic_cursor_columns'*
+Default: 1
+This option controls which errors are echoed to the command window if
+|syntastic_echo_current_error| is set and multiple errors are found on the same
+line. When the option is enabled, the first error corresponding to the current
+column is show. Otherwise, the first error on the current line is echoed,
+regardless of the cursor position on the current line.
+
+When dealing with very large lists of errors, disabling this option can speed
+up navigation significantly: >
+ let g:syntastic_cursor_column = 0
+<
+ *'syntastic_enable_signs'*
+Default: 1
+Use this option to tell syntastic whether to use the |:sign| interface to mark
+syntax errors: >
+ let g:syntastic_enable_signs = 1
+<
+ *'syntastic_error_symbol'* *'syntastic_style_error_symbol'*
+ *'syntastic_warning_symbol'* *'syntastic_style_warning_symbol'*
+Use this option to control what the syntastic |:sign| text contains. Several
+error symbols can be customized:
+ syntastic_error_symbol - For syntax errors, defaults to '>>'
+ syntastic_style_error_symbol - For style errors, defaults to 'S>'
+ syntastic_warning_symbol - For syntax warnings, defaults to '>>'
+ syntastic_style_warning_symbol - For style warnings, defaults to 'S>'
+
+Example: >
+ let g:syntastic_error_symbol = "✗"
+ let g:syntastic_warning_symbol = "âš "
+<
+ *'syntastic_enable_balloons'*
+Default: 1
+Use this option to tell syntastic whether to display error messages in balloons
+when the mouse is hovered over erroneous lines: >
+ let g:syntastic_enable_balloons = 1
+<
+Note that Vim must be compiled with |+balloon_eval|.
+
+ *'syntastic_enable_highlighting'*
+Default: 1
+Use this option to tell syntastic whether to use syntax highlighting to mark
+errors (where possible). Highlighting can be turned off with the following >
+ let g:syntastic_enable_highlighting = 0
+<
+ *'syntastic_always_populate_loc_list'*
+Default: 0
+Enable this option to tell syntastic to always stick any detected errors into
+the |location-list|: >
+ let g:syntastic_always_populate_loc_list = 1
+<
+ *'syntastic_auto_jump'*
+Default: 0
+Enable this option if you want the cursor to jump to the first detected issue
+when saving or opening a file.
+
+When set to 0 the cursor won't jump automatically. >
+ let g:syntastic_auto_jump = 0
+<
+When set to 1 the cursor will always jump to the first issue detected. >
+ let g:syntastic_auto_jump = 1
+<
+When set to 2 the cursor will jump to the first issue detected, but only if
+this issue is an error. >
+ let g:syntastic_auto_jump = 2
+<
+ *'syntastic_auto_loc_list'*
+Default: 2
+Use this option to tell syntastic to automatically open and/or close the
+|location-list| (see |syntastic-error-window|).
+
+When set to 0 the error window will not be opened or closed automatically. >
+ let g:syntastic_auto_loc_list = 0
+<
+When set to 1 the error window will be automatically opened when errors are
+detected, and closed when none are detected. >
+ let g:syntastic_auto_loc_list = 1
+<
+When set to 2 the error window will be automatically closed when no errors are
+detected, but not opened automatically. >
+ let g:syntastic_auto_loc_list = 2
+<
+ *'syntastic_loc_list_height'*
+Default: 10
+Use this option to specify the height of the location lists that syntastic
+opens. >
+ let g:syntastic_loc_list_height = 5
+<
+ *'syntastic_ignore_files'*
+Default: []
+Use this option to specify files that syntastic should never check. It's a
+list of |regular-expression| patterns. The full paths of files (see |::p|) are
+matched against these patterns, and the matches are case sensitive. Use |\c|
+to specify case insensitive patterns. Example: >
+ let g:syntastic_ignore_files = ['\m^/usr/include/', '\m\c\.h$']
+<
+ *'syntastic_filetype_map'*
+Default: {}
+Use this option to map non-standard filetypes to standard ones. Corresponding
+checkers are mapped accordingly, which allows syntastic to check files with
+non-standard filetypes: >
+ let g:syntastic_filetype_map = { "latex": "tex",
+ \ "gentoo-metadata": "xml" }
+<
+Composite filetypes can also be mapped to simple types, which disables the
+default behaviour of running both checkers against the input file: >
+ let g:syntastic_filetype_map = { "handlebars.html": "handlebars" }
+<
+ *'syntastic_mode_map'*
+Default: { "mode": "active",
+ "active_filetypes": [],
+ "passive_filetypes": [] }
+Use this option to fine tune when automatic syntax checking is done (or not
+done).
+
+The option should be set to something like: >
+
+ let g:syntastic_mode_map = { "mode": "active",
+ \ "active_filetypes": ["ruby", "php"],
+ \ "passive_filetypes": ["puppet"] }
+<
+"mode" can be mapped to one of two values - "active" or "passive". When set
+to "active", syntastic does automatic checking whenever a buffer is saved or
+initially opened. When set to "passive" syntastic only checks when the user
+calls |:SyntasticCheck|.
+
+The exceptions to these rules are defined with "active_filetypes" and
+"passive_filetypes". In passive mode, automatic checks are still done for
+filetypes in the "active_filetypes" array (and "passive_filetypes" is
+ignored). In active mode, automatic checks are not done for any filetypes in
+the "passive_filetypes" array ("active_filetypes" is ignored).
+
+If any of "mode", "active_filetypes", or "passive_filetypes" are left
+unspecified, they default to values above.
+
+At runtime, the |:SyntasticToggleMode| command can be used to switch between
+active and passive modes.
+
+ *'syntastic_quiet_messages'*
+Default: {}
+Use this option to filter out some of the messages produced by checkers. The
+option should be set to something like: >
+ let g:syntastic_quiet_messages = { "level": "warnings",
+ \ "type": "style",
+ \ "regex": '\m\[C03\d\d\]',
+ \ "file": ['\m^/usr/include/', '\m\c\.h$'] }
+<
+Each element turns off messages matching the patterns specified by the
+corresponding value. Values are lists, but if a list consist of a single
+element you can omit adding the brackets (e.g. you can write "style" instead
+of ["style"]). Elements with values [] or '' are ignored (this is useful for
+overriding filters, cf. |filter-overrides|).
+
+ "level" - takes one of two values, "warnings" or "errors"
+ "type" - can be either "syntax" or "style"
+ "regex" - is matched against the messages' text as a case insensitive
+ |regular-expression|
+ "file" - is matched against the filename the error refers to, as a case
+ sensitive |regular-expression|.
+
+If |'syntastic_id_checkers'| is set, filters are applied before error messages
+are labeled with the names of the checkers that created them.
+
+There are also checker-specific variants of this option, providing finer
+control. They are named |'syntastic___quiet_messages'|.
+
+For a particular checker, if both a |'syntastic_quiet_messages'| filter and
+a checker-specific filter are present, they are both applied (to the list of
+errors produced by the said checker). In case of conflicting values for the
+same keys, the values of the checker-specific filters take precedence.
+
+ *filter-overrides*
+Since filter elements with values [] or '' are ignored, you can disable global
+filters for particular checkers, by setting the values of the corresponding
+elements in |'syntastic___quiet_messages'| to [] or ''. For
+example, the following setting will silence all warnings, except for the
+ones produced by "pylint": >
+ let g:syntastic_quiet_messages = { "level": "warnings" }
+ let g:syntastic_python_pylint_quiet_messages = { "level" : [] }
+<
+ *'syntastic_stl_format'*
+Default: [Syntax: line:%F (%t)]
+Use this option to control what the syntastic statusline text contains. Several
+magic flags are available to insert information:
+ %e - number of errors
+ %w - number of warnings
+ %t - total number of warnings and errors
+ %fe - line number of first error
+ %fw - line number of first warning
+ %F - line number of first warning or error
+
+Several additional flags are available to hide text under certain conditions:
+ %E{...} - hide the text in the brackets unless there are errors
+ %W{...} - hide the text in the brackets unless there are warnings
+ %B{...} - hide the text in the brackets unless there are both warnings AND
+ errors
+These flags can't be nested.
+
+Example: >
+ let g:syntastic_stl_format = '[%E{Err: %fe #%e}%B{, }%W{Warn: %fw #%w}]'
+<
+If this format is used and the current buffer has 5 errors and 1 warning
+starting on lines 20 and 10 respectively then this would appear on the
+statusline: >
+ [Err: 20 #5, Warn: 10 #1]
+<
+If the buffer had 2 warnings, starting on line 5 then this would appear: >
+ [Warn: 5 #2]
+<
+ *'b:syntastic_skip_checks'*
+Default: unset
+Only the local form |'b:syntastic_skip_checks'| is used. When set to a true
+value, no checks are run against the corresponding buffer. Example: >
+ let b:syntastic_skip_checks = 1
+<
+ *'syntastic_full_redraws'*
+Default: 0 in GUI Vim and MacVim, 1 otherwise
+Controls whether syntastic calls |:redraw| or |:redraw!| for screen redraws.
+Changing it can in principle make screen redraws smoother, but it can also
+cause screen to flicker, or cause ghost characters. Leaving it to the default
+should be safe.
+
+ *'syntastic_exit_checks'*
+Default: 0 when running under "cmd.exe" on Windows, 1 otherwise
+Syntastic attempts to catch abnormal termination conditions from checkers by
+looking at their exit codes. The "cmd.exe" shell on Windows make these checks
+meaningless, by returning 1 to Vim when the checkers exit with non-zero codes.
+The above variable can be used to disable exit code checks in syntastic.
+
+ *'syntastic_debug'*
+Default: 0
+Set this to the sum of one or more of the following flags to enable
+debugging:
+
+ 1 - trace general workflow
+ 2 - dump location lists
+ 4 - trace notifiers
+ 8 - trace autocommands
+ 16 - dump options
+ 32 - trace running of specific checkers
+
+Example: >
+ let g:syntastic_debug = 1
+<
+Syntastic will then add debugging messages to Vim's |message-history|. You can
+examine these messages with |:mes|.
+
+ *'syntastic_debug_file'*
+Default: unset
+When set, debugging messages are written to the file named by its value, in
+addition to being added to Vim's |message-history|: >
+ let g:syntastic_debug_file = '~/syntastic.log'
+<
+ *'syntastic_extra_filetypes'*
+Default: []
+List of filetypes handled by checkers external to syntastic. If you have a Vim
+plugin that adds a checker for syntastic, and if the said checker deals with a
+filetype that is unknown to syntastic, you might consider adding that filetype
+to this list: >
+ let g:syntastic_extra_filetypes = [ "make", "gitcommit" ]
+<
+This will allow |:SyntasticInfo| to do proper tab completion for the new
+filetypes.
+
+==============================================================================
+5. Checker Options *syntastic-checker-options*
+
+------------------------------------------------------------------------------
+5.1 Choosing which checkers to use *syntastic-filetype-checkers*
+
+ *'g:syntastic__checkers'*
+You can tell syntastic which checkers to run for a given filetype by setting a
+variable 'g:syntastic__checkers' to a list of checkers, e.g. >
+ let g:syntastic_php_checkers = ["php", "phpcs", "phpmd"]
+<
+ *'b:syntastic_checkers'*
+There is also a per-buffer version of this setting, 'b:syntastic_checkers'.
+When set, it takes precedence over |'g:syntastic__checkers'|. You can
+use this in an autocmd to configure specific checkers for particular paths: >
+ autocmd FileType python if stridx(expand("%:p"), "/some/path/") == 0 |
+ \ let b:syntastic_checkers = ["pylint"] | endif
+<
+If neither |'g:syntastic__checkers'| nor |'b:syntastic_checkers'|
+is set, a default list of checker is used. Beware however that this list
+deliberately kept minimal, for performance reasons.
+
+Take a look at the wiki to find out what checkers and filetypes are supported
+by syntastic:
+
+ https://github.com/scrooloose/syntastic/wiki/Syntax-Checkers
+
+Use |:SyntasticInfo| to see which checkers are available for a given filetype.
+
+------------------------------------------------------------------------------
+5.2 Choosing the executable *syntastic-config-exec*
+
+ *'syntastic___exec'*
+The executable run by a checker is normally defined automatically, when the
+checker is registered. You can however override it, by setting the variable
+'g:syntastic___exec': >
+ let g:syntastic_ruby_mri_exec = '~/bin/ruby2'
+<
+This variable has a local version, 'b:syntastic___exec',
+which takes precedence over the global one in the corresponding buffer.
+
+ *'b:syntastic__exec'*
+And there is also a local variable named 'b:syntastic__exec', which
+takes precedence over both 'b:syntastic___exec' and
+'g:syntastic___exec' in the buffers where it is defined.
+
+------------------------------------------------------------------------------
+5.3 Configuring specific checkers *syntastic-config-makeprg*
+
+Most checkers use the 'makeprgBuild()' function and provide many options by
+default - in fact you can customise every part of the command that gets called.
+
+ *'syntastic___'*
+Checkers that use 'makeprgBuild()' construct a 'makeprg' like this: >
+ let makeprg = self.makeprgBuild({
+ \ "exe": self.getExec(),
+ \ "args": "-a -b -c",
+ \ "post_args": "--more --args",
+ \ "tail": "2>/dev/null" })
+<
+The result is a 'makeprg' of the form: >
+
+<
+All arguments above are optional, and can be overridden by setting global
+variables 'g:syntastic___' - even
+parameters not specified in the call to makeprgBuild(). These variables also
+have local versions 'b:syntastic___',
+which take precedence over the global ones in the corresponding buffers.
+
+If one of these variables has a non-empty default and you want it to be empty,
+you can set it to an empty string, e.g.: >
+ let g:syntastic_javascript_jslint_args = ""
+<
+ *'syntastic___exe'*
+The 'exe' is normally the same as the 'exec' attribute described above, in
+which case it may be omitted. However, you can use it to add environment
+variables, or to change the way the checker is run. For example this setup
+allows you to run PC-Lint under Wine emulation on Linux: >
+ let g:syntastic_c_pc_lint_exec = "wine"
+ let g:syntastic_c_pc_lint_exe = "wine c:/path/to/lint-nt.exe"
+<
+To override the args and the tail: >
+ let g:syntastic_c_pc_lint_args = "-w5 -Iz:/usr/include/linux"
+ let g:syntastic_c_pc_lint_tail = "2>/dev/null"
+<
+The general form of the override options is: >
+ syntastic___
+<
+For checkers that do not use the 'makeprgBuild()' function you will have to
+look at the source code of the checker in question. If there are specific
+options that can be set, these are usually documented in the wiki:
+
+ https://github.com/scrooloose/syntastic/wiki/Syntax-Checkers
+
+ *'syntastic___quiet_messages'*
+In the same vein, 'g:syntastic___quiet_messages' can
+be used to restrict message filters to messages produced by specific checkers.
+Example: >
+ let g:syntastic_python_pylama_quiet_messages = { "type": "style",
+ \ "regex": '\m\[C03\d\d\]' }
+<
+See |syntastic_quiet_messages| for the syntax.
+
+------------------------------------------------------------------------------
+5.4 Sorting errors *syntastic-config-sort*
+
+ *'syntastic___sort'*
+Syntastic may decide to group the errors produced by some checkers by file,
+then sort them by line number, then by type, then by column number. If you'd
+prefer to see the errors in the order in which they are output by the external
+checker you can set the variable |'g:syntastic___sort'| to 0.
+
+Alternatively, if syntastic doesn't reorder the errors produced by a checker
+but you'd like it to sort them, you can set the same variable to 1.
+
+There is also a local version |'b:syntastic___sort'| of
+this variable, that takes precedence over it in the buffers where it is
+defined.
+
+For aggregated lists (see |syntastic-aggregating-errors|) these variables are
+ignored if |syntastic_sort_aggregated_errors| is set (which is the default).
+
+==============================================================================
+6. Notes *syntastic-notes*
+
+------------------------------------------------------------------------------
+6.1. Handling of composite filetypes *syntastic-composite*
+
+Some Vim plugins use composite filetypes, such as "django.python" or
+"handlebars.html". Normally, syntastic deals with this situation by splitting
+the filetype in its simple components, and calling all checkers that apply.
+If this behaviour is not desirable, you can disable it by mapping the
+composite filetypes to a simple ones using |syntastic_filetype_map|, e.g.: >
+ let g:syntastic_filetype_map = { "handlebars.html": "handlebars" }
+<
+------------------------------------------------------------------------------
+6.2 Editing files over network *syntastic-netrw*
+
+The standard plugin |netrw| allows Vim to transparently edit files over
+network and inside archives. Currently syntastic doesn't support this mode
+of operation. It can only check files that can be accessed directly by local
+checkers, without any translation or conversion.
+
+------------------------------------------------------------------------------
+6.3 Interaction with python-mode *syntastic-pymode*
+
+Syntastic can be used along with the 'python-mode' Vim plugin (see
+https://github.com/klen/python-mode). However, they both run syntax checks by
+default when you save buffers to disk, and this is probably not what you want.
+To avoid both plugins opening error windows, you can either set passive mode
+for python in syntastic (see |syntastic_mode_map|), or disable lint checks in
+'python-mode', by setting |pymode_lint_write| to 0. E.g.: >
+ let g:pymode_lint_write = 0
+<
+------------------------------------------------------------------------------
+6.4 Interaction with YouCompleteMe *syntastic-ycm*
+
+Syntastic can be used together with the 'YouCompleteMe' Vim plugin (see
+http://valloric.github.io/YouCompleteMe/). However, by default 'YouCompleteMe'
+disables syntastic's checkers for the "c", "cpp", "objc", and "objcpp"
+filetypes, in order to allow its own checkers to run. If you want to use YCM's
+identifier completer but still run syntastic's checkers for those filetypes you
+have to set |ycm_show_diagnostics_ui| to 0. E.g.: >
+ let g:ycm_show_diagnostics_ui = 0
+<
+------------------------------------------------------------------------------
+6.5 Interaction with the fish shell *syntastic-fish*
+
+At the time of this writing the 'fish' shell (see http://fishshell.com/)
+doesn't support the standard UNIX syntax for file redirections, and thus it
+can't be used together with syntastic. You don't need to change your login
+shell to address this problem, but you do have to point Vim's 'shell' to a more
+traditional shell, such as "zsh", "bash", "ksh", or even the original Bourne
+"sh": >
+ set shell=bash
+<
+------------------------------------------------------------------------------
+6.6. Interaction with PowerShell *syntastic-powershell*
+
+At the time of this writing, syntastic is not compatible with using 'Windows
+PowerShell' (http://technet.microsoft.com/en-us/library/bb978526.aspx) as Vim's
+'shell'. You may still run Vim from 'PowerShell', but you do have to point
+Vim's 'shell' to a more traditional program, such as 'cmd.exe': >
+ set shell=cmd.exe
+<
+------------------------------------------------------------------------------
+6.7. Using syntastic with the fizsh shell *syntastic-fizsh*
+
+Using syntastic with the 'fizsh' shell (see https://github.com/zsh-users/fizsh)
+is possible, but potentially problematic. In order to do it you'll need to set
+'shellredir' like this: >
+ set shellredir=>%s\ 2>&1
+<
+Please keep in mind however that Vim can't take advantage of any of the
+interactive features of 'fizsh'. Using a more traditional shell such as "zsh",
+"bash", "ksh", or the original Bourne "sh" might be a better choice: >
+ set shell=zsh
+<
+------------------------------------------------------------------------------
+6.8. Interaction with Eclim *syntastic-eclim*
+
+Syntastic can be used together with 'Eclim' (see http://eclim.org/). However,
+by default Eclim disables syntastic's checks for the filetypes it supports, in
+order to run its own validation. If you'd prefer to use Eclim but still run
+syntastic's checks, set |g:EclimFileTypeValidate| to 0: >
+ let g:EclimFileTypeValidate = 0
+<
+It is also possible to re-enable syntastic checks only for some filetypes, and
+run Eclim's validation for others. Please consult Eclim's documentation for
+details.
+
+------------------------------------------------------------------------------
+6.9. Interaction with vim-virtualenv *syntastic-vim-virtualenv*
+
+At the time of this writing, syntastic can't run checkers installed
+in Python virtual environments activated by 'vim-virtualenv' (see
+https://github.com/jmcantrell/vim-virtualenv). This is a limitation of
+'vim-virtualenv'.
+
+------------------------------------------------------------------------------
+6.10. Interaction with vim-auto-save *syntastic-vim-auto-save*
+
+At the time of this writing, syntastic checks in active mode are not triggered
+by 'vim-auto-save' (see https://github.com/907th/vim-auto-save). The reason is
+a limitation in 'vim-auto-save', namely a missing flag to an 'autocmd' (see
+|autocmd-nested|). Fortunately it's pretty easy to achieve a similar effect
+without 'vim-auto-save'': >
+ augroup syntastic
+ autocmd CursorHold * nested update
+ augroup END
+ set updatetime=200
+<
+==============================================================================
+7. About *syntastic-about*
+
+The core maintainers of syntastic are:
+ Martin Grenfell (GitHub: scrooloose)
+ Gregor Uhlenheuer (GitHub: kongo2002)
+ LCD 047 (GitHub: lcd047)
+
+Find the latest version of syntastic at:
+
+ http://github.com/scrooloose/syntastic
+
+==============================================================================
+8. License *syntastic-license*
+
+Syntastic is released under the wtfpl.
+See http://sam.zoy.org/wtfpl/COPYING.
+
+ vim:tw=78:sw=4:ft=help:norl:
diff --git a/vim/vim.symlink/bundle/syntastic/plugin/syntastic.vim b/vim/vim.symlink/bundle/syntastic/plugin/syntastic.vim
new file mode 100644
index 0000000..77f0239
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/plugin/syntastic.vim
@@ -0,0 +1,686 @@
+"============================================================================
+"File: syntastic.vim
+"Description: Vim plugin for on the fly syntax checking.
+"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:loaded_syntastic_plugin")
+ finish
+endif
+let g:loaded_syntastic_plugin = 1
+
+if has('reltime')
+ let g:_SYNTASTIC_START = reltime()
+ lockvar! g:_SYNTASTIC_START
+endif
+
+let g:_SYNTASTIC_VERSION = '3.5.0-72'
+lockvar g:_SYNTASTIC_VERSION
+
+" Sanity checks {{{1
+
+for s:feature in [
+ \ 'autocmd',
+ \ 'eval',
+ \ 'file_in_path',
+ \ 'modify_fname',
+ \ 'quickfix',
+ \ 'reltime',
+ \ 'user_commands'
+ \ ]
+ if !has(s:feature)
+ call syntastic#log#error("need Vim compiled with feature " . s:feature)
+ finish
+ endif
+endfor
+
+let s:_running_windows = syntastic#util#isRunningWindows()
+lockvar s:_running_windows
+
+if !s:_running_windows && executable('uname')
+ try
+ let s:_uname = system('uname')
+ catch /\m^Vim\%((\a\+)\)\=:E484/
+ call syntastic#log#error("your shell " . &shell . " can't handle traditional UNIX syntax for redirections")
+ finish
+ endtry
+ lockvar s:_uname
+endif
+
+" }}}1
+
+" Defaults {{{1
+
+let g:_SYNTASTIC_DEFAULTS = {
+ \ 'aggregate_errors': 0,
+ \ 'always_populate_loc_list': 0,
+ \ 'auto_jump': 0,
+ \ 'auto_loc_list': 2,
+ \ 'bash_hack': 0,
+ \ 'check_on_open': 0,
+ \ 'check_on_wq': 1,
+ \ 'cursor_columns': 1,
+ \ 'debug': 0,
+ \ 'echo_current_error': 1,
+ \ 'enable_balloons': 1,
+ \ 'enable_highlighting': 1,
+ \ 'enable_signs': 1,
+ \ 'error_symbol': '>>',
+ \ 'exit_checks': !(s:_running_windows && &shell =~? '\m\',
+ \ 'style_warning_symbol': 'S>',
+ \ 'warning_symbol': '>>'
+ \ }
+lockvar! g:_SYNTASTIC_DEFAULTS
+
+for s:key in keys(g:_SYNTASTIC_DEFAULTS)
+ if !exists('g:syntastic_' . s:key)
+ let g:syntastic_{s:key} = copy(g:_SYNTASTIC_DEFAULTS[s:key])
+ endif
+endfor
+
+if exists("g:syntastic_quiet_warnings")
+ call syntastic#log#oneTimeWarn("variable g:syntastic_quiet_warnings is deprecated, please use let g:syntastic_quiet_messages = {'level': 'warnings'} instead")
+ if g:syntastic_quiet_warnings
+ let s:quiet_warnings = get(g:syntastic_quiet_messages, 'type', [])
+ if type(s:quiet_warnings) != type([])
+ let s:quiet_warnings = [s:quiet_warnings]
+ endif
+ call add(s:quiet_warnings, 'warnings')
+ let g:syntastic_quiet_messages['type'] = s:quiet_warnings
+ endif
+endif
+
+" }}}1
+
+" Debug {{{1
+
+let s:_DEBUG_DUMP_OPTIONS = [
+ \ 'shell',
+ \ 'shellcmdflag',
+ \ 'shellpipe',
+ \ 'shellquote',
+ \ 'shellredir',
+ \ 'shellslash',
+ \ 'shelltemp',
+ \ 'shellxquote'
+ \ ]
+if v:version > 703 || (v:version == 703 && has('patch446'))
+ call add(s:_DEBUG_DUMP_OPTIONS, 'shellxescape')
+endif
+lockvar! s:_DEBUG_DUMP_OPTIONS
+
+" debug constants
+let g:_SYNTASTIC_DEBUG_TRACE = 1
+lockvar g:_SYNTASTIC_DEBUG_TRACE
+let g:_SYNTASTIC_DEBUG_LOCLIST = 2
+lockvar g:_SYNTASTIC_DEBUG_LOCLIST
+let g:_SYNTASTIC_DEBUG_NOTIFICATIONS = 4
+lockvar g:_SYNTASTIC_DEBUG_NOTIFICATIONS
+let g:_SYNTASTIC_DEBUG_AUTOCOMMANDS = 8
+lockvar g:_SYNTASTIC_DEBUG_AUTOCOMMANDS
+let g:_SYNTASTIC_DEBUG_VARIABLES = 16
+lockvar g:_SYNTASTIC_DEBUG_VARIABLES
+let g:_SYNTASTIC_DEBUG_CHECKERS = 32
+lockvar g:_SYNTASTIC_DEBUG_CHECKERS
+
+" }}}1
+
+runtime! plugin/syntastic/*.vim
+
+let s:registry = g:SyntasticRegistry.Instance()
+let s:notifiers = g:SyntasticNotifiers.Instance()
+let s:modemap = g:SyntasticModeMap.Instance()
+
+" Commands {{{1
+
+" @vimlint(EVL103, 1, a:cursorPos)
+" @vimlint(EVL103, 1, a:cmdLine)
+" @vimlint(EVL103, 1, a:argLead)
+function! s:CompleteCheckerName(argLead, cmdLine, cursorPos) " {{{2
+ let checker_names = []
+ for ft in s:_resolve_filetypes([])
+ call extend(checker_names, s:registry.getNamesOfAvailableCheckers(ft))
+ endfor
+ return join(checker_names, "\n")
+endfunction " }}}2
+" @vimlint(EVL103, 0, a:cursorPos)
+" @vimlint(EVL103, 0, a:cmdLine)
+" @vimlint(EVL103, 0, a:argLead)
+
+
+" @vimlint(EVL103, 1, a:cursorPos)
+" @vimlint(EVL103, 1, a:cmdLine)
+" @vimlint(EVL103, 1, a:argLead)
+function! s:CompleteFiletypes(argLead, cmdLine, cursorPos) " {{{2
+ return join(s:registry.getKnownFiletypes(), "\n")
+endfunction " }}}2
+" @vimlint(EVL103, 0, a:cursorPos)
+" @vimlint(EVL103, 0, a:cmdLine)
+" @vimlint(EVL103, 0, a:argLead)
+
+command! -nargs=* -complete=custom,s:CompleteCheckerName SyntasticCheck call SyntasticCheck()
+command! -nargs=? -complete=custom,s:CompleteFiletypes SyntasticInfo call SyntasticInfo()
+command! Errors call SyntasticErrors()
+command! SyntasticReset call SyntasticReset()
+command! SyntasticToggleMode call SyntasticToggleMode()
+command! SyntasticSetLoclist call SyntasticSetLoclist()
+
+" }}}1
+
+" Public API {{{1
+
+function! SyntasticCheck(...) " {{{2
+ call s:UpdateErrors(0, a:000)
+ call syntastic#util#redraw(g:syntastic_full_redraws)
+endfunction " }}}2
+
+function! SyntasticInfo(...) " {{{2
+ call s:modemap.modeInfo(a:000)
+ call s:registry.echoInfoFor(s:_resolve_filetypes(a:000))
+ call s:_explain_skip(a:000)
+endfunction " }}}2
+
+function! SyntasticErrors() " {{{2
+ call g:SyntasticLoclist.current().show()
+endfunction " }}}2
+
+function! SyntasticReset() " {{{2
+ call s:ClearCache()
+ call s:notifiers.refresh(g:SyntasticLoclist.New([]))
+endfunction " }}}2
+
+function! SyntasticToggleMode() " {{{2
+ call s:modemap.toggleMode()
+ call s:ClearCache()
+ call s:notifiers.refresh(g:SyntasticLoclist.New([]))
+ call s:modemap.echoMode()
+endfunction " }}}2
+
+function! SyntasticSetLoclist() " {{{2
+ call g:SyntasticLoclist.current().setloclist()
+endfunction " }}}2
+
+" }}}1
+
+" Autocommands {{{1
+
+augroup syntastic
+ autocmd BufReadPost * call s:BufReadPostHook()
+ autocmd BufWritePost * call s:BufWritePostHook()
+ autocmd BufEnter * call s:BufEnterHook()
+augroup END
+
+if v:version > 703 || (v:version == 703 && has('patch544'))
+ " QuitPre was added in Vim 7.3.544
+ augroup syntastic
+ autocmd QuitPre * call s:QuitPreHook()
+ augroup END
+endif
+
+function! s:BufReadPostHook() " {{{2
+ if g:syntastic_check_on_open
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_AUTOCOMMANDS,
+ \ 'autocmd: BufReadPost, buffer ' . bufnr("") . ' = ' . string(bufname(str2nr(bufnr("")))))
+ call s:UpdateErrors(1, [])
+ endif
+endfunction " }}}2
+
+function! s:BufWritePostHook() " {{{2
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_AUTOCOMMANDS,
+ \ 'autocmd: BufWritePost, buffer ' . bufnr("") . ' = ' . string(bufname(str2nr(bufnr("")))))
+ call s:UpdateErrors(1, [])
+endfunction " }}}2
+
+function! s:BufEnterHook() " {{{2
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_AUTOCOMMANDS,
+ \ 'autocmd: BufEnter, buffer ' . bufnr("") . ' = ' . string(bufname(str2nr(bufnr("")))) .
+ \ ', &buftype = ' . string(&buftype))
+ if &buftype == ''
+ call s:notifiers.refresh(g:SyntasticLoclist.current())
+ elseif &buftype == 'quickfix'
+ " TODO: this is needed because in recent versions of Vim lclose
+ " can no longer be called from BufWinLeave
+ " TODO: at this point there is no b:syntastic_loclist
+ let loclist = filter(copy(getloclist(0)), 'v:val["valid"] == 1')
+ let owner = str2nr(getbufvar(bufnr(""), 'syntastic_owner_buffer'))
+ let buffers = syntastic#util#unique(map(loclist, 'v:val["bufnr"]') + (owner ? [owner] : []))
+ if !empty(loclist) && empty(filter( buffers, 'syntastic#util#bufIsActive(v:val)' ))
+ call SyntasticLoclistHide()
+ endif
+ endif
+endfunction " }}}2
+
+function! s:QuitPreHook() " {{{2
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_AUTOCOMMANDS,
+ \ 'autocmd: QuitPre, buffer ' . bufnr("") . ' = ' . string(bufname(str2nr(bufnr("")))))
+ let b:syntastic_skip_checks = get(b:, 'syntastic_skip_checks', 0) || !syntastic#util#var('check_on_wq')
+ call SyntasticLoclistHide()
+endfunction " }}}2
+
+" }}}1
+
+" Main {{{1
+
+"refresh and redraw all the error info for this buf when saving or reading
+function! s:UpdateErrors(auto_invoked, checker_names) " {{{2
+ call syntastic#log#debugShowVariables(g:_SYNTASTIC_DEBUG_TRACE, 'version')
+ call syntastic#log#debugShowOptions(g:_SYNTASTIC_DEBUG_TRACE, s:_DEBUG_DUMP_OPTIONS)
+ call syntastic#log#debugDump(g:_SYNTASTIC_DEBUG_VARIABLES)
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'UpdateErrors' . (a:auto_invoked ? ' (auto)' : '') .
+ \ ': ' . (len(a:checker_names) ? join(a:checker_names) : 'default checkers'))
+ if s:_skip_file()
+ return
+ endif
+
+ call s:modemap.synch()
+ let run_checks = !a:auto_invoked || s:modemap.allowsAutoChecking(&filetype)
+ if run_checks
+ call s:CacheErrors(a:checker_names)
+ endif
+
+ let loclist = g:SyntasticLoclist.current()
+
+ if exists('*SyntasticCheckHook')
+ call SyntasticCheckHook(loclist.getRaw())
+ endif
+
+ " populate loclist and jump {{{3
+ let do_jump = syntastic#util#var('auto_jump')
+ if do_jump == 2
+ let first = loclist.getFirstIssue()
+ let type = get(first, 'type', '')
+ let do_jump = type ==? 'E'
+ endif
+
+ let w:syntastic_loclist_set = 0
+ if syntastic#util#var('always_populate_loc_list') || do_jump
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'loclist: setloclist (new)')
+ call setloclist(0, loclist.getRaw())
+ let w:syntastic_loclist_set = 1
+ if run_checks && do_jump && !loclist.isEmpty()
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'loclist: jump')
+ silent! lrewind
+
+ " XXX: Vim doesn't call autocmd commands in a predictible
+ " order, which can lead to missing filetype when jumping
+ " to a new file; the following is a workaround for the
+ " resulting brain damage
+ if &filetype == ''
+ silent! filetype detect
+ endif
+ endif
+ endif
+ " }}}3
+
+ call s:notifiers.refresh(loclist)
+endfunction " }}}2
+
+"clear the loc list for the buffer
+function! s:ClearCache() " {{{2
+ call s:notifiers.reset(g:SyntasticLoclist.current())
+ call b:syntastic_loclist.destroy()
+endfunction " }}}2
+
+"detect and cache all syntax errors in this buffer
+function! s:CacheErrors(checker_names) " {{{2
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'CacheErrors: ' .
+ \ (len(a:checker_names) ? join(a:checker_names) : 'default checkers'))
+ call s:ClearCache()
+ let newLoclist = g:SyntasticLoclist.New([])
+
+ if !s:_skip_file()
+ " debug logging {{{3
+ call syntastic#log#debugShowVariables(g:_SYNTASTIC_DEBUG_TRACE, 'aggregate_errors')
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'getcwd() = ' . getcwd())
+ " }}}3
+
+ let filetypes = s:_resolve_filetypes([])
+ let aggregate_errors = syntastic#util#var('aggregate_errors') || len(filetypes) > 1
+ let decorate_errors = aggregate_errors && syntastic#util#var('id_checkers')
+ let sort_aggregated_errors = aggregate_errors && syntastic#util#var('sort_aggregated_errors')
+
+ let clist = []
+ for type in filetypes
+ call extend(clist, s:registry.getCheckers(type, a:checker_names))
+ endfor
+
+ let names = []
+ let unavailable_checkers = 0
+ for checker in clist
+ let cname = checker.getFiletype() . '/' . checker.getName()
+ if !checker.isAvailable()
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'CacheErrors: Checker ' . cname . ' is not available')
+ let unavailable_checkers += 1
+ continue
+ endif
+
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'CacheErrors: Invoking checker: ' . cname)
+
+ let loclist = checker.getLocList()
+
+ if !loclist.isEmpty()
+ if decorate_errors
+ call loclist.decorate(cname)
+ endif
+ call add(names, cname)
+ if checker.wantSort() && !sort_aggregated_errors
+ call loclist.sort()
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'sorted:', loclist)
+ endif
+
+ let newLoclist = newLoclist.extend(loclist)
+
+ if !aggregate_errors
+ break
+ endif
+ endif
+ endfor
+
+ " set names {{{3
+ if !empty(names)
+ if len(syntastic#util#unique(map( copy(names), 'substitute(v:val, "\\m/.*", "", "")' ))) == 1
+ let type = substitute(names[0], '\m/.*', '', '')
+ let name = join(map( names, 'substitute(v:val, "\\m.\\{-}/", "", "")' ), ', ')
+ call newLoclist.setName( name . ' ('. type . ')' )
+ else
+ " checkers from mixed types
+ call newLoclist.setName(join(names, ', '))
+ endif
+ endif
+ " }}}3
+
+ " issue warning about no active checkers {{{3
+ if len(clist) == unavailable_checkers
+ if !empty(a:checker_names)
+ if len(a:checker_names) == 1
+ call syntastic#log#warn('checker ' . a:checker_names[0] . ' is not available')
+ else
+ call syntastic#log#warn('checkers ' . join(a:checker_names, ', ') . ' are not available')
+ endif
+ else
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'CacheErrors: no checkers available for ' . &filetype)
+ endif
+ endif
+ " }}}3
+
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'aggregated:', newLoclist)
+ if sort_aggregated_errors
+ call newLoclist.sort()
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'sorted:', newLoclist)
+ endif
+ endif
+
+ call newLoclist.deploy()
+endfunction " }}}2
+
+"Emulates the :lmake command. Sets up the make environment according to the
+"options given, runs make, resets the environment, returns the location list
+"
+"a:options can contain the following keys:
+" 'makeprg'
+" 'errorformat'
+"
+"The corresponding options are set for the duration of the function call. They
+"are set with :let, so dont escape spaces.
+"
+"a:options may also contain:
+" 'defaults' - a dict containing default values for the returned errors
+" 'subtype' - all errors will be assigned the given subtype
+" 'preprocess' - a function to be applied to the error file before parsing errors
+" 'postprocess' - a list of functions to be applied to the error list
+" 'cwd' - change directory to the given path before running the checker
+" 'env' - environment variables to set before running the checker
+" 'returns' - a list of valid exit codes for the checker
+" @vimlint(EVL102, 1, l:env_save)
+function! SyntasticMake(options) " {{{2
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'SyntasticMake: called with options:', a:options)
+
+ " save options and locale env variables {{{3
+ let old_shellredir = &shellredir
+ let old_local_errorformat = &l:errorformat
+ let old_errorformat = &errorformat
+ let old_cwd = getcwd()
+ let old_lc_messages = $LC_MESSAGES
+ let old_lc_all = $LC_ALL
+ " }}}3
+
+ call s:_bash_hack()
+
+ if has_key(a:options, 'errorformat')
+ let &errorformat = a:options['errorformat']
+ endif
+
+ if has_key(a:options, 'cwd')
+ execute 'lcd ' . fnameescape(a:options['cwd'])
+ endif
+
+ " set environment variables {{{3
+ let env_save = {}
+ if has_key(a:options, 'env') && len(a:options['env'])
+ for key in keys(a:options['env'])
+ if key =~? '\m^[a-z_]\+$'
+ exec 'let env_save[' . string(key) . '] = $' . key
+ exec 'let $' . key . ' = ' . string(a:options['env'][key])
+ endif
+ endfor
+ endif
+ let $LC_MESSAGES = 'C'
+ let $LC_ALL = ''
+ " }}}3
+
+ let err_lines = split(system(a:options['makeprg']), "\n", 1)
+
+ " restore environment variables {{{3
+ let $LC_ALL = old_lc_all
+ let $LC_MESSAGES = old_lc_messages
+ if len(env_save)
+ for key in keys(env_save)
+ exec 'let $' . key . ' = ' . string(env_save[key])
+ endfor
+ endif
+ " }}}3
+
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'checker output:', err_lines)
+
+ " Does it still make sense to go on?
+ let bailout =
+ \ syntastic#util#var('exit_checks') &&
+ \ has_key(a:options, 'returns') &&
+ \ index(a:options['returns'], v:shell_error) == -1
+
+ if !bailout
+ if has_key(a:options, 'Preprocess')
+ let err_lines = call(a:options['Preprocess'], [err_lines])
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'preprocess (external):', err_lines)
+ elseif has_key(a:options, 'preprocess')
+ let err_lines = call('syntastic#preprocess#' . a:options['preprocess'], [err_lines])
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'preprocess:', err_lines)
+ endif
+ lgetexpr err_lines
+
+ let errors = deepcopy(getloclist(0))
+
+ if has_key(a:options, 'cwd')
+ execute 'lcd ' . fnameescape(old_cwd)
+ endif
+
+ try
+ silent lolder
+ catch /\m^Vim\%((\a\+)\)\=:E380/
+ " E380: At bottom of quickfix stack
+ call setloclist(0, [], 'r')
+ catch /\m^Vim\%((\a\+)\)\=:E776/
+ " E776: No location list
+ " do nothing
+ endtry
+ else
+ let errors = []
+ endif
+
+ " restore options {{{3
+ let &errorformat = old_errorformat
+ let &l:errorformat = old_local_errorformat
+ let &shellredir = old_shellredir
+ " }}}3
+
+ if !s:_running_windows && (s:_os_name() =~ "FreeBSD" || s:_os_name() =~ "OpenBSD")
+ call syntastic#util#redraw(g:syntastic_full_redraws)
+ endif
+
+ if bailout
+ throw 'Syntastic: checker error'
+ endif
+
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'raw loclist:', errors)
+
+ if has_key(a:options, 'defaults')
+ call s:_add_to_errors(errors, a:options['defaults'])
+ endif
+
+ " Add subtype info if present.
+ if has_key(a:options, 'subtype')
+ call s:_add_to_errors(errors, { 'subtype': a:options['subtype'] })
+ endif
+
+ if has_key(a:options, 'Postprocess') && !empty(a:options['Postprocess'])
+ for rule in a:options['Postprocess']
+ let errors = call(rule, [errors])
+ endfor
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'postprocess (external):', errors)
+ elseif has_key(a:options, 'postprocess') && !empty(a:options['postprocess'])
+ for rule in a:options['postprocess']
+ let errors = call('syntastic#postprocess#' . rule, [errors])
+ endfor
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'postprocess:', errors)
+ endif
+
+ return errors
+endfunction " }}}2
+" @vimlint(EVL102, 0, l:env_save)
+
+"return a string representing the state of buffer according to
+"g:syntastic_stl_format
+"
+"return '' if no errors are cached for the buffer
+function! SyntasticStatuslineFlag() " {{{2
+ return g:SyntasticLoclist.current().getStatuslineFlag()
+endfunction " }}}2
+
+" }}}1
+
+" Utilities {{{1
+
+function! s:_resolve_filetypes(filetypes) " {{{2
+ let type = len(a:filetypes) ? a:filetypes[0] : &filetype
+ return split( get(g:syntastic_filetype_map, type, type), '\m\.' )
+endfunction " }}}2
+
+function! s:_ignore_file(filename) " {{{2
+ let fname = fnamemodify(a:filename, ':p')
+ for pattern in g:syntastic_ignore_files
+ if fname =~# pattern
+ return 1
+ endif
+ endfor
+ return 0
+endfunction " }}}2
+
+" Skip running in special buffers
+function! s:_skip_file() " {{{2
+ let fname = expand('%')
+ let skip = get(b:, 'syntastic_skip_checks', 0) || (&buftype != '') ||
+ \ !filereadable(fname) || getwinvar(0, '&diff') || s:_ignore_file(fname) ||
+ \ fnamemodify(fname, ':e') =~? g:syntastic_ignore_extensions
+ if skip
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, '_skip_file: skipping checks')
+ endif
+ return skip
+endfunction " }}}2
+
+" Explain why checks will be skipped for the current file
+function! s:_explain_skip(filetypes) " {{{2
+ if empty(a:filetypes) && s:_skip_file()
+ let why = []
+ let fname = expand('%')
+
+ if get(b:, 'syntastic_skip_checks', 0)
+ call add(why, 'b:syntastic_skip_checks set')
+ endif
+ if &buftype != ''
+ call add(why, 'buftype = ' . string(&buftype))
+ endif
+ if !filereadable(fname)
+ call add(why, 'file not readable / not local')
+ endif
+ if getwinvar(0, '&diff')
+ call add(why, 'diff mode')
+ endif
+ if s:_ignore_file(fname)
+ call add(why, 'filename matching g:syntastic_ignore_files')
+ endif
+ if fnamemodify(fname, ':e') =~? g:syntastic_ignore_extensions
+ call add(why, 'extension matching g:syntastic_ignore_extensions')
+ endif
+
+ echomsg 'The current file will not be checked (' . join(why, ', ') . ')'
+ endif
+endfunction " }}}2
+
+" Take a list of errors and add default values to them from a:options
+function! s:_add_to_errors(errors, options) " {{{2
+ for err in a:errors
+ for key in keys(a:options)
+ if !has_key(err, key) || empty(err[key])
+ let err[key] = a:options[key]
+ endif
+ endfor
+ endfor
+
+ return a:errors
+endfunction " }}}2
+
+" XXX: Is this still needed?
+" The script changes &shellredir to stop the screen
+" flicking when shelling out to syntax checkers.
+function! s:_bash_hack() " {{{2
+ if g:syntastic_bash_hack
+ if !exists('s:shell_is_bash')
+ let s:shell_is_bash =
+ \ !s:_running_windows &&
+ \ (s:_os_name() !~# "FreeBSD") && (s:_os_name() !~# "OpenBSD") &&
+ \ &shell =~# '\m\'
+ endif
+ endif
+endfunction " }}}2
+
+function! s:_os_name() " {{{2
+ if !exists('s:_uname')
+ let s:_uname = system('uname')
+ lockvar s:_uname
+ endif
+ return s:_uname
+endfunction " }}}2
+
+" }}}1
+
+" vim: set sw=4 sts=4 et fdm=marker:
diff --git a/vim/vim.symlink/bundle/syntastic/plugin/syntastic/autoloclist.vim b/vim/vim.symlink/bundle/syntastic/plugin/syntastic/autoloclist.vim
new file mode 100644
index 0000000..efda895
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/plugin/syntastic/autoloclist.vim
@@ -0,0 +1,38 @@
+if exists("g:loaded_syntastic_notifier_autoloclist") || !exists("g:loaded_syntastic_plugin")
+ finish
+endif
+let g:loaded_syntastic_notifier_autoloclist = 1
+
+let g:SyntasticAutoloclistNotifier = {}
+
+" Public methods {{{1
+"
+function! g:SyntasticAutoloclistNotifier.New() " {{{2
+ let newObj = copy(self)
+ return newObj
+endfunction " }}}2
+
+function! g:SyntasticAutoloclistNotifier.refresh(loclist) " {{{2
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'autoloclist: refresh')
+ call g:SyntasticAutoloclistNotifier.AutoToggle(a:loclist)
+endfunction " }}}2
+
+function! g:SyntasticAutoloclistNotifier.AutoToggle(loclist) " {{{2
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'autoloclist: toggle')
+ if !a:loclist.isEmpty()
+ if syntastic#util#var('auto_loc_list') == 1
+ call a:loclist.show()
+ endif
+ else
+ if syntastic#util#var('auto_loc_list') > 0
+
+ "TODO: this will close the loc list window if one was opened by
+ "something other than syntastic
+ lclose
+ endif
+ endif
+endfunction " }}}2
+
+" }}}1
+
+" vim: set sw=4 sts=4 et fdm=marker:
diff --git a/vim/vim.symlink/bundle/syntastic/plugin/syntastic/balloons.vim b/vim/vim.symlink/bundle/syntastic/plugin/syntastic/balloons.vim
new file mode 100644
index 0000000..b4f491c
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/plugin/syntastic/balloons.vim
@@ -0,0 +1,59 @@
+if exists("g:loaded_syntastic_notifier_balloons") || !exists("g:loaded_syntastic_plugin")
+ finish
+endif
+let g:loaded_syntastic_notifier_balloons = 1
+
+if !has('balloon_eval')
+ let g:syntastic_enable_balloons = 0
+endif
+
+let g:SyntasticBalloonsNotifier = {}
+
+" Public methods {{{1
+
+function! g:SyntasticBalloonsNotifier.New() " {{{2
+ let newObj = copy(self)
+ return newObj
+endfunction " }}}2
+
+function! g:SyntasticBalloonsNotifier.enabled() " {{{2
+ return has('balloon_eval') && syntastic#util#var('enable_balloons')
+endfunction " }}}2
+
+" Update the error balloons
+function! g:SyntasticBalloonsNotifier.refresh(loclist) " {{{2
+ unlet! b:syntastic_balloons
+ if self.enabled() && !a:loclist.isEmpty()
+ let b:syntastic_balloons = a:loclist.balloons()
+ if !empty(b:syntastic_balloons)
+ set ballooneval balloonexpr=SyntasticBalloonsExprNotifier()
+ endif
+ endif
+endfunction " }}}2
+
+" Reset the error balloons
+" @vimlint(EVL103, 1, a:loclist)
+function! g:SyntasticBalloonsNotifier.reset(loclist) " {{{2
+ let b:syntastic_balloons = {}
+ if has('balloon_eval')
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'balloons: reset')
+ unlet! b:syntastic_balloons
+ set noballooneval
+ endif
+endfunction " }}}2
+" @vimlint(EVL103, 0, a:loclist)
+
+" }}}1
+
+" Private functions {{{1
+
+function! SyntasticBalloonsExprNotifier() " {{{2
+ if !exists('b:syntastic_balloons')
+ return ''
+ endif
+ return get(b:syntastic_balloons, v:beval_lnum, '')
+endfunction " }}}2
+
+" }}}1
+
+" vim: set sw=4 sts=4 et fdm=marker:
diff --git a/vim/vim.symlink/bundle/syntastic/plugin/syntastic/checker.vim b/vim/vim.symlink/bundle/syntastic/plugin/syntastic/checker.vim
new file mode 100644
index 0000000..de6f3b0
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/plugin/syntastic/checker.vim
@@ -0,0 +1,192 @@
+if exists("g:loaded_syntastic_checker") || !exists("g:loaded_syntastic_plugin")
+ finish
+endif
+let g:loaded_syntastic_checker = 1
+
+let g:SyntasticChecker = {}
+
+" Public methods {{{1
+
+function! g:SyntasticChecker.New(args) " {{{2
+ let newObj = copy(self)
+
+ let newObj._filetype = a:args['filetype']
+ let newObj._name = a:args['name']
+ let newObj._exec = get(a:args, 'exec', newObj._name)
+
+ if has_key(a:args, 'redirect')
+ let [filetype, name] = split(a:args['redirect'], '/')
+ let prefix = 'SyntaxCheckers_' . filetype . '_' . name . '_'
+
+ if exists('g:syntastic_' . filetype . '_' . name . '_sort') && !exists('g:syntastic_' . newObj._filetype . '_' . newObj._name . '_sort')
+ let g:syntastic_{newObj._filetype}_{newObj._name}_sort = g:syntastic_{filetype}_{name}_sort
+ endif
+ else
+ let prefix = 'SyntaxCheckers_' . newObj._filetype . '_' . newObj._name . '_'
+ endif
+
+ let newObj._locListFunc = function(prefix . 'GetLocList')
+
+ if exists('*' . prefix . 'IsAvailable')
+ let newObj._isAvailableFunc = function(prefix . 'IsAvailable')
+ else
+ let newObj._isAvailableFunc = function('s:_isAvailableDefault')
+ endif
+
+ if exists('*' . prefix . 'GetHighlightRegex')
+ let newObj._highlightRegexFunc = function(prefix . 'GetHighlightRegex')
+ endif
+
+ return newObj
+endfunction " }}}2
+
+function! g:SyntasticChecker.getFiletype() " {{{2
+ return self._filetype
+endfunction " }}}2
+
+function! g:SyntasticChecker.getName() " {{{2
+ return self._name
+endfunction " }}}2
+
+function! g:SyntasticChecker.getExec() " {{{2
+ return
+ \ expand( exists('b:syntastic_' . self._name . '_exec') ? b:syntastic_{self._name}_exec :
+ \ syntastic#util#var(self._filetype . '_' . self._name . '_exec', self._exec) )
+endfunction " }}}2
+
+function! g:SyntasticChecker.getExecEscaped() " {{{2
+ return syntastic#util#shescape(self.getExec())
+endfunction " }}}2
+
+function! g:SyntasticChecker.getLocListRaw() " {{{2
+ let name = self._filetype . '/' . self._name
+ try
+ let list = self._locListFunc()
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'getLocList: checker ' . name . ' returned ' . v:shell_error)
+ catch /\m\C^Syntastic: checker error$/
+ let list = []
+ call syntastic#log#error('checker ' . name . ' returned abnormal status ' . v:shell_error)
+ endtry
+ call self._populateHighlightRegexes(list)
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, name . ' raw:', list)
+ call self._quietMessages(list)
+ return list
+endfunction " }}}2
+
+function! g:SyntasticChecker.getLocList() " {{{2
+ return g:SyntasticLoclist.New(self.getLocListRaw())
+endfunction " }}}2
+
+function! g:SyntasticChecker.log(msg, ...) " {{{2
+ let leader = self._filetype . '/' . self._name . ': '
+ if a:0 > 0
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_CHECKERS, leader . a:msg, a:1)
+ else
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_CHECKERS, leader . a:msg)
+ endif
+endfunction " }}}2
+
+function! g:SyntasticChecker.makeprgBuild(opts) " {{{2
+ let basename = self._filetype . '_' . self._name . '_'
+
+ let parts = []
+ call extend(parts, self._getOpt(a:opts, basename, 'exe', self.getExecEscaped()))
+ call extend(parts, self._getOpt(a:opts, basename, 'args', ''))
+ call extend(parts, self._getOpt(a:opts, basename, 'fname', syntastic#util#shexpand('%')))
+ call extend(parts, self._getOpt(a:opts, basename, 'post_args', ''))
+ call extend(parts, self._getOpt(a:opts, basename, 'tail', ''))
+
+ return join(parts)
+endfunction " }}}2
+
+function! g:SyntasticChecker.isAvailable() " {{{2
+ if !has_key(self, '_available')
+ let self._available = self._isAvailableFunc()
+ endif
+ return self._available
+endfunction " }}}2
+
+function! g:SyntasticChecker.wantSort() " {{{2
+ return syntastic#util#var(self._filetype . '_' . self._name . '_sort', 0)
+endfunction " }}}2
+
+" This method is no longer used by syntastic. It's here only to maintain
+" backwards compatibility with external checkers which might depend on it.
+function! g:SyntasticChecker.setWantSort(val) " {{{2
+ if !exists('g:syntastic_' . self._filetype . '_' . self._name . '_sort')
+ let g:syntastic_{self._filetype}_{self._name}_sort = a:val
+ endif
+endfunction " }}}2
+
+" }}}1
+
+" Private methods {{{1
+
+function! g:SyntasticChecker._quietMessages(errors) " {{{2
+ " wildcard quiet_messages
+ let quiet_filters = copy(syntastic#util#var('quiet_messages', {}))
+ if type(quiet_filters) != type({})
+ call syntastic#log#warn('ignoring invalid syntastic_quiet_messages')
+ unlet quiet_filters
+ let quiet_filters = {}
+ endif
+
+ " per checker quiet_messages
+ let name = self._filetype . '_' . self._name
+ try
+ call extend( quiet_filters, copy(syntastic#util#var(name . '_quiet_messages', {})), 'force' )
+ catch /\m^Vim\%((\a\+)\)\=:E712/
+ call syntastic#log#warn('ignoring invalid syntastic_' . name . '_quiet_messages')
+ endtry
+
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'quiet_messages filter:', quiet_filters)
+
+ if !empty(quiet_filters)
+ call syntastic#util#dictFilter(a:errors, quiet_filters)
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'filtered by quiet_messages:', a:errors)
+ endif
+endfunction " }}}2
+
+function! g:SyntasticChecker._populateHighlightRegexes(errors) " {{{2
+ if has_key(self, '_highlightRegexFunc')
+ for e in a:errors
+ if e['valid']
+ let term = self._highlightRegexFunc(e)
+ if term != ''
+ let e['hl'] = term
+ endif
+ endif
+ endfor
+ endif
+endfunction " }}}2
+
+function! g:SyntasticChecker._getOpt(opts, basename, name, default) " {{{2
+ let ret = []
+ call extend( ret, self._shescape(get(a:opts, a:name . '_before', '')) )
+ call extend( ret, self._shescape(syntastic#util#var( a:basename . a:name, get(a:opts, a:name, a:default) )) )
+ call extend( ret, self._shescape(get(a:opts, a:name . '_after', '')) )
+
+ return ret
+endfunction " }}}2
+
+function! g:SyntasticChecker._shescape(opt) " {{{2
+ if type(a:opt) == type('') && a:opt != ''
+ return [a:opt]
+ elseif type(a:opt) == type([])
+ return map(copy(a:opt), 'syntastic#util#shescape(v:val)')
+ endif
+
+ return []
+endfunction " }}}2
+
+" }}}1
+
+" Private functions {{{1
+
+function! s:_isAvailableDefault() dict " {{{2
+ return executable(self.getExec())
+endfunction " }}}2
+
+" }}}1
+
+" vim: set sw=4 sts=4 et fdm=marker:
diff --git a/vim/vim.symlink/bundle/syntastic/plugin/syntastic/cursor.vim b/vim/vim.symlink/bundle/syntastic/plugin/syntastic/cursor.vim
new file mode 100644
index 0000000..7d1b298
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/plugin/syntastic/cursor.vim
@@ -0,0 +1,138 @@
+if exists("g:loaded_syntastic_notifier_cursor") || !exists("g:loaded_syntastic_plugin")
+ finish
+endif
+let g:loaded_syntastic_notifier_cursor = 1
+
+let g:SyntasticCursorNotifier = {}
+
+" Public methods {{{1
+
+function! g:SyntasticCursorNotifier.New() " {{{2
+ let newObj = copy(self)
+ return newObj
+endfunction " }}}2
+
+function! g:SyntasticCursorNotifier.enabled() " {{{2
+ return syntastic#util#var('echo_current_error')
+endfunction " }}}2
+
+function! g:SyntasticCursorNotifier.refresh(loclist) " {{{2
+ if self.enabled() && !a:loclist.isEmpty()
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'cursor: refresh')
+ let b:syntastic_messages = copy(a:loclist.messages(bufnr('')))
+ let b:syntastic_line = -1
+ let b:syntastic_cursor_columns = a:loclist.getCursorColumns()
+ autocmd! syntastic CursorMoved
+ autocmd syntastic CursorMoved * call SyntasticRefreshCursor()
+ endif
+endfunction " }}}2
+
+" @vimlint(EVL103, 1, a:loclist)
+function! g:SyntasticCursorNotifier.reset(loclist) " {{{2
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'cursor: reset')
+ autocmd! syntastic CursorMoved
+ unlet! b:syntastic_messages
+ let b:syntastic_line = -1
+endfunction " }}}2
+" @vimlint(EVL103, 0, a:loclist)
+
+" }}}1
+
+" Private functions {{{1
+
+function! SyntasticRefreshCursor() " {{{2
+ if !exists('b:syntastic_messages') || empty(b:syntastic_messages)
+ " file not checked
+ return
+ endif
+
+ if !exists('b:syntastic_line')
+ let b:syntastic_line = -1
+ endif
+ let l = line('.')
+ let current_messages = get(b:syntastic_messages, l, {})
+
+ if !exists('b:syntastic_cursor_columns')
+ let b:syntastic_cursor_columns = g:syntastic_cursor_columns
+ endif
+
+ if b:syntastic_cursor_columns
+ let c = virtcol('.')
+ if !exists('b:syntastic_idx')
+ let b:syntastic_idx = -1
+ endif
+
+ if s:_is_same_index(l, b:syntastic_line, c, b:syntastic_idx, current_messages)
+ return
+ else
+ let b:syntastic_line = l
+ endif
+
+ if !empty(current_messages)
+ let b:syntastic_idx = s:_find_index(c, current_messages)
+ call syntastic#util#wideMsg(current_messages[b:syntastic_idx].text)
+ else
+ let b:syntastic_idx = -1
+ echo
+ endif
+ else
+ if l == b:syntastic_line
+ return
+ endif
+ let b:syntastic_line = l
+
+ if !empty(current_messages)
+ call syntastic#util#wideMsg(current_messages[0].text)
+ else
+ echo
+ endif
+ endif
+endfunction " }}}2
+
+" }}}1
+
+" Utilities {{{1
+
+function! s:_is_same_index(line, old_line, column, idx, messages) " {{{2
+ if a:old_line >= 0 && a:line == a:old_line && a:idx >= 0
+ if len(a:messages) <= 1
+ return 1
+ endif
+
+ if a:messages[a:idx].scol <= a:column || a:idx == 0
+ if a:idx == len(a:messages) - 1 || a:column < a:messages[a:idx + 1].scol
+ return 1
+ else
+ return 0
+ endif
+ else
+ return 0
+ endif
+ else
+ return 0
+ endif
+endfunction " }}}2
+
+function! s:_find_index(column, messages) " {{{2
+ let max = len(a:messages) - 1
+ if max == 0
+ return 0
+ endif
+ let min = 0
+
+ " modified binary search: assign index 0 to columns to the left of the first error
+ while min < max - 1
+ let mid = (min + max) / 2
+ if a:column < a:messages[mid].scol
+ let max = mid
+ else
+ let min = mid
+ endif
+ endwhile
+
+ return a:column < a:messages[max].scol ? min : max
+endfunction " }}}2
+
+" }}}1
+
+" vim: set sw=4 sts=4 et fdm=marker:
diff --git a/vim/vim.symlink/bundle/syntastic/plugin/syntastic/highlighting.vim b/vim/vim.symlink/bundle/syntastic/plugin/syntastic/highlighting.vim
new file mode 100644
index 0000000..183228c
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/plugin/syntastic/highlighting.vim
@@ -0,0 +1,105 @@
+if exists("g:loaded_syntastic_notifier_highlighting") || !exists("g:loaded_syntastic_plugin")
+ finish
+endif
+let g:loaded_syntastic_notifier_highlighting = 1
+
+" Highlighting requires getmatches introduced in 7.1.040
+let s:has_highlighting = v:version > 701 || (v:version == 701 && has('patch040'))
+lockvar s:has_highlighting
+
+let g:SyntasticHighlightingNotifier = {}
+
+let s:setup_done = 0
+
+" Public methods {{{1
+
+function! g:SyntasticHighlightingNotifier.New() " {{{2
+ let newObj = copy(self)
+
+ if !s:setup_done
+ call self._setup()
+ let s:setup_done = 1
+ lockvar s:setup_done
+ endif
+
+ return newObj
+endfunction " }}}2
+
+function! g:SyntasticHighlightingNotifier.enabled() " {{{2
+ return s:has_highlighting && syntastic#util#var('enable_highlighting')
+endfunction " }}}2
+
+" Sets error highlights in the cuirrent window
+function! g:SyntasticHighlightingNotifier.refresh(loclist) " {{{2
+ if self.enabled()
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'highlighting: refresh')
+ call self._reset()
+ let buf = bufnr('')
+ let issues = filter(a:loclist.copyRaw(), 'v:val["bufnr"] == buf')
+ for item in issues
+ let group = 'Syntastic' . get(item, 'subtype', '') . ( item['type'] ==? 'E' ? 'Error' : 'Warning' )
+
+ " The function `Syntastic_{filetype}_{checker}_GetHighlightRegex` is
+ " used to override default highlighting.
+ call matchaddpos(group . 'Line', [item['lnum']])
+ if has_key(item, 'hl')
+ call matchadd(group, '\%' . item['lnum'] . 'l' . item['hl'])
+ elseif get(item, 'col', 0)
+ if get(item, 'vcol', 0)
+ let lastcol = virtcol([item['lnum'], '$'])
+ let coltype = 'v'
+ else
+ let lastcol = col([item['lnum'], '$'])
+ let coltype = 'c'
+ endif
+ let lcol = min([lastcol, item['col']])
+
+ call matchadd(group, '\%' . item['lnum'] . 'l\%' . lcol . coltype)
+ endif
+ endfor
+ endif
+endfunction " }}}2
+
+" Remove all error highlights from the window
+" @vimlint(EVL103, 1, a:loclist)
+function! g:SyntasticHighlightingNotifier.reset(loclist) " {{{2
+ if s:has_highlighting
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'highlighting: reset')
+ call self._reset()
+ endif
+endfunction " }}}2
+" @vimlint(EVL103, 0, a:loclist)
+
+" }}}1
+
+" Private methods {{{1
+
+" One time setup: define our own highlighting
+function! g:SyntasticHighlightingNotifier._setup() " {{{2
+ if s:has_highlighting
+ if !hlexists('SyntasticError')
+ highlight link SyntasticError SpellBad
+ endif
+ if !hlexists('SyntasticWarning')
+ highlight link SyntasticWarning SpellCap
+ endif
+ if !hlexists('SyntasticStyleError')
+ highlight link SyntasticStyleError SyntasticError
+ endif
+ if !hlexists('SyntasticStyleWarning')
+ highlight link SyntasticStyleWarning SyntasticWarning
+ endif
+ endif
+endfunction " }}}2
+
+function! g:SyntasticHighlightingNotifier._reset() " {{{2
+ for match in getmatches()
+ if stridx(match['group'], 'Syntastic') == 0
+ call matchdelete(match['id'])
+ endif
+ endfor
+endfunction " }}}2
+
+" }}}1
+
+" vim: set sw=4 sts=4 et fdm=marker:
diff --git a/vim/vim.symlink/bundle/syntastic/plugin/syntastic/loclist.vim b/vim/vim.symlink/bundle/syntastic/plugin/syntastic/loclist.vim
new file mode 100644
index 0000000..84a6cd3
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/plugin/syntastic/loclist.vim
@@ -0,0 +1,423 @@
+if exists("g:loaded_syntastic_loclist") || !exists("g:loaded_syntastic_plugin")
+ finish
+endif
+let g:loaded_syntastic_loclist = 1
+
+let g:SyntasticLoclist = {}
+
+" Public methods {{{1
+
+function! g:SyntasticLoclist.New(rawLoclist) " {{{2
+ let newObj = copy(self)
+
+ let llist = filter(copy(a:rawLoclist), 'v:val["valid"] == 1')
+
+ for e in llist
+ if get(e, 'type', '') == ''
+ let e['type'] = 'E'
+ endif
+ endfor
+
+ let newObj._rawLoclist = llist
+ let newObj._name = ''
+ let newObj._owner = bufnr('')
+ let newObj._sorted = 0
+ let newObj._columns = g:syntastic_cursor_columns
+
+ return newObj
+endfunction " }}}2
+
+function! g:SyntasticLoclist.current() " {{{2
+ if !exists("b:syntastic_loclist") || empty(b:syntastic_loclist)
+ let b:syntastic_loclist = g:SyntasticLoclist.New([])
+ endif
+ return b:syntastic_loclist
+endfunction " }}}2
+
+function! g:SyntasticLoclist.extend(other) " {{{2
+ let list = self.copyRaw()
+ call extend(list, a:other.copyRaw())
+ return g:SyntasticLoclist.New(list)
+endfunction " }}}2
+
+function! g:SyntasticLoclist.sort() " {{{2
+ if !self._sorted
+ for e in self._rawLoclist
+ call s:_set_screen_column(e)
+ endfor
+
+ call sort(self._rawLoclist, self._columns ? 's:_compare_error_items_by_columns' : 's:_compare_error_items_by_lines')
+
+ let self._sorted = 1
+ endif
+endfunction " }}}2
+
+function! g:SyntasticLoclist.isEmpty() " {{{2
+ return empty(self._rawLoclist)
+endfunction " }}}2
+
+function! g:SyntasticLoclist.isNewerThan(stamp) " {{{2
+ if !exists("self._stamp")
+ let self._stamp = []
+ return 0
+ endif
+ return syntastic#util#compareLexi(self._stamp, a:stamp) > 0
+endfunction " }}}2
+
+function! g:SyntasticLoclist.copyRaw() " {{{2
+ return copy(self._rawLoclist)
+endfunction " }}}2
+
+function! g:SyntasticLoclist.getRaw() " {{{2
+ return self._rawLoclist
+endfunction " }}}2
+
+function! g:SyntasticLoclist.getBuffers() " {{{2
+ return syntastic#util#unique(map(copy(self._rawLoclist), 'str2nr(v:val["bufnr"])') + [self._owner])
+endfunction " }}}2
+
+function! g:SyntasticLoclist.getCursorColumns() " {{{2
+ return self._columns
+endfunction " }}}2
+
+function! g:SyntasticLoclist.getStatuslineFlag() " {{{2
+ if !exists("self._stl_format")
+ let self._stl_format = ''
+ endif
+ if !exists("self._stl_flag")
+ let self._stl_flag = ''
+ endif
+
+ if g:syntastic_stl_format !=# self._stl_format
+ let self._stl_format = g:syntastic_stl_format
+
+ if !empty(self._rawLoclist)
+ let errors = self.errors()
+ let warnings = self.warnings()
+
+ let num_errors = len(errors)
+ let num_warnings = len(warnings)
+ let num_issues = len(self._rawLoclist)
+
+ let output = self._stl_format
+
+ "hide stuff wrapped in %E(...) unless there are errors
+ let output = substitute(output, '\m\C%E{\([^}]*\)}', num_errors ? '\1' : '' , 'g')
+
+ "hide stuff wrapped in %W(...) unless there are warnings
+ let output = substitute(output, '\m\C%W{\([^}]*\)}', num_warnings ? '\1' : '' , 'g')
+
+ "hide stuff wrapped in %B(...) unless there are both errors and warnings
+ let output = substitute(output, '\m\C%B{\([^}]*\)}', (num_warnings && num_errors) ? '\1' : '' , 'g')
+
+ "sub in the total errors/warnings/both
+ let output = substitute(output, '\m\C%w', num_warnings, 'g')
+ let output = substitute(output, '\m\C%e', num_errors, 'g')
+ let output = substitute(output, '\m\C%t', num_issues, 'g')
+
+ "first error/warning line num
+ let output = substitute(output, '\m\C%F', num_issues ? self._rawLoclist[0]['lnum'] : '', 'g')
+
+ "first error line num
+ let output = substitute(output, '\m\C%fe', num_errors ? errors[0]['lnum'] : '', 'g')
+
+ "first warning line num
+ let output = substitute(output, '\m\C%fw', num_warnings ? warnings[0]['lnum'] : '', 'g')
+
+ let self._stl_flag = output
+ else
+ let self._stl_flag = ''
+ endif
+ endif
+
+ return self._stl_flag
+endfunction " }}}2
+
+function! g:SyntasticLoclist.getFirstIssue() " {{{2
+ return get(self._rawLoclist, 0, {})
+endfunction " }}}2
+
+function! g:SyntasticLoclist.getName() " {{{2
+ return len(self._name)
+endfunction " }}}2
+
+function! g:SyntasticLoclist.setName(name) " {{{2
+ let self._name = a:name
+endfunction " }}}2
+
+function! g:SyntasticLoclist.getOwner() " {{{2
+ return self._owner
+endfunction " }}}2
+
+function! g:SyntasticLoclist.setOwner(buffer) " {{{2
+ let self._owner = type(a:buffer) == type(0) ? a:buffer : str2nr(a:buffer)
+endfunction " }}}2
+
+function! g:SyntasticLoclist.deploy() " {{{2
+ call self.setOwner(bufnr(''))
+ let self._stamp = syntastic#util#stamp()
+ for buf in self.getBuffers()
+ call setbufvar(buf, 'syntastic_loclist', self)
+ endfor
+endfunction " }}}2
+
+function! g:SyntasticLoclist.destroy() " {{{2
+ for buf in self.getBuffers()
+ call setbufvar(buf, 'syntastic_loclist', {})
+ endfor
+endfunction " }}}2
+
+function! g:SyntasticLoclist.decorate(tag) " {{{2
+ for e in self._rawLoclist
+ let e['text'] .= ' [' . a:tag . ']'
+ endfor
+endfunction " }}}2
+
+function! g:SyntasticLoclist.balloons() " {{{2
+ if !exists("self._cachedBalloons")
+ let sep = has("balloon_multiline") ? "\n" : ' | '
+
+ let self._cachedBalloons = {}
+ for e in self._rawLoclist
+ let buf = e['bufnr']
+
+ if !has_key(self._cachedBalloons, buf)
+ let self._cachedBalloons[buf] = {}
+ endif
+
+ if has_key(self._cachedBalloons[buf], e['lnum'])
+ let self._cachedBalloons[buf][e['lnum']] .= sep . e['text']
+ else
+ let self._cachedBalloons[buf][e['lnum']] = e['text']
+ endif
+ endfor
+ endif
+
+ return get(self._cachedBalloons, bufnr(''), {})
+endfunction " }}}2
+
+function! g:SyntasticLoclist.errors() " {{{2
+ if !exists("self._cachedErrors")
+ let self._cachedErrors = self.filter({'type': "E"})
+ endif
+ return self._cachedErrors
+endfunction " }}}2
+
+function! g:SyntasticLoclist.warnings() " {{{2
+ if !exists("self._cachedWarnings")
+ let self._cachedWarnings = self.filter({'type': "W"})
+ endif
+ return self._cachedWarnings
+endfunction " }}}2
+
+" Legacy function. Syntastic no longer calls it, but we keep it
+" around because other plugins (f.i. powerline) depend on it.
+function! g:SyntasticLoclist.hasErrorsOrWarningsToDisplay() " {{{2
+ return !self.isEmpty()
+endfunction " }}}2
+
+" cache used by EchoCurrentError()
+function! g:SyntasticLoclist.messages(buf) " {{{2
+ if !exists("self._cachedMessages")
+ let self._cachedMessages = {}
+
+ let errors = self.errors() + self.warnings()
+ for e in errors
+ let b = e['bufnr']
+ let l = e['lnum']
+
+ if !has_key(self._cachedMessages, b)
+ let self._cachedMessages[b] = {}
+ endif
+
+ if !has_key(self._cachedMessages[b], l)
+ let self._cachedMessages[b][l] = [e]
+ elseif self._columns
+ call add(self._cachedMessages[b][l], e)
+ endif
+ endfor
+
+ if self._columns
+ if !self._sorted
+ for b in keys(self._cachedMessages)
+ for l in keys(self._cachedMessages[b])
+ if len(self._cachedMessages[b][l]) > 1
+ for e in self._cachedMessages[b][l]
+ call s:_set_screen_column(e)
+ endfor
+ call sort(self._cachedMessages[b][l], 's:_compare_error_items_by_columns')
+ endif
+ endfor
+ endfor
+ endif
+
+ for b in keys(self._cachedMessages)
+ for l in keys(self._cachedMessages[b])
+ call s:_remove_shadowed_items(self._cachedMessages[b][l])
+ endfor
+ endfor
+ endif
+ endif
+
+ return get(self._cachedMessages, a:buf, {})
+endfunction " }}}2
+
+"Filter the list and return new native loclist
+"e.g.
+" .filter({'bufnr': 10, 'type': 'e'})
+"
+"would return all errors for buffer 10.
+"
+"Note that all comparisons are done with ==?
+function! g:SyntasticLoclist.filter(filters) " {{{2
+ let conditions = values(map(copy(a:filters), 's:_translate(v:key, v:val)'))
+ let filter = len(conditions) == 1 ?
+ \ conditions[0] : join(map(conditions, '"(" . v:val . ")"'), ' && ')
+ return filter(copy(self._rawLoclist), filter)
+endfunction " }}}2
+
+function! g:SyntasticLoclist.setloclist() " {{{2
+ if !exists('w:syntastic_loclist_set')
+ let w:syntastic_loclist_set = 0
+ endif
+ let replace = g:syntastic_reuse_loc_lists && w:syntastic_loclist_set
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'loclist: setloclist ' . (replace ? '(replace)' : '(new)'))
+ call setloclist(0, self.getRaw(), replace ? 'r' : ' ')
+ let w:syntastic_loclist_set = 1
+endfunction " }}}2
+
+"display the cached errors for this buf in the location list
+function! g:SyntasticLoclist.show() " {{{2
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'loclist: show')
+ call self.setloclist()
+
+ if !self.isEmpty()
+ let num = winnr()
+ execute "lopen " . syntastic#util#var('loc_list_height')
+ if num != winnr()
+ wincmd p
+ endif
+
+ " try to find the loclist window and set w:quickfix_title
+ let errors = getloclist(0)
+ for buf in tabpagebuflist()
+ if buflisted(buf) && bufloaded(buf) && getbufvar(buf, '&buftype') ==# 'quickfix'
+ let win = bufwinnr(buf)
+ let title = getwinvar(win, 'quickfix_title')
+
+ " TODO: try to make sure we actually own this window; sadly,
+ " errors == getloclist(0) is the only somewhat safe way to
+ " achieve that
+ if strpart(title, 0, 16) ==# ':SyntasticCheck ' ||
+ \ ( (title == '' || title ==# ':setloclist()') && errors == getloclist(0) )
+ call setwinvar(win, 'quickfix_title', ':SyntasticCheck ' . self._name)
+ call setbufvar(buf, 'syntastic_owner_buffer', self._owner)
+ endif
+ endif
+ endfor
+ endif
+endfunction " }}}2
+
+" }}}1
+
+" Public functions {{{1
+
+function! SyntasticLoclistHide() " {{{2
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'loclist: hide')
+ silent! lclose
+endfunction " }}}2
+
+" }}}1
+
+" Utilities {{{1
+
+function! s:_translate(key, val) " {{{2
+ return 'get(v:val, ' . string(a:key) . ', "") ==? ' . string(a:val)
+endfunction " }}}2
+
+function! s:_set_screen_column(item) " {{{2
+ if !has_key(a:item, 'scol')
+ let col = get(a:item, 'col', 0)
+ if col != 0 && get(a:item, 'vcol', 0) == 0
+ let buf = str2nr(a:item['bufnr'])
+ try
+ let line = getbufline(buf, a:item['lnum'])[0]
+ catch /\m^Vim\%((\a\+)\)\=:E684/
+ let line = ''
+ endtry
+ let a:item['scol'] = syntastic#util#screenWidth(strpart(line, 0, col), getbufvar(buf, '&tabstop'))
+ else
+ let a:item['scol'] = col
+ endif
+ endif
+endfunction " }}}2
+
+function! s:_remove_shadowed_items(errors) " {{{2
+ " keep only the first message at a given column
+ let i = 0
+ while i < len(a:errors) - 1
+ let j = i + 1
+ let dupes = 0
+ while j < len(a:errors) && a:errors[j].scol == a:errors[i].scol
+ let dupes = 1
+ let j += 1
+ endwhile
+ if dupes
+ call remove(a:errors, i + 1, j - 1)
+ endif
+ let i += 1
+ endwhile
+
+ " merge messages with the same text
+ let i = 0
+ while i < len(a:errors) - 1
+ let j = i + 1
+ let dupes = 0
+ while j < len(a:errors) && a:errors[j].text == a:errors[i].text
+ let dupes = 1
+ let j += 1
+ endwhile
+ if dupes
+ call remove(a:errors, i + 1, j - 1)
+ endif
+ let i += 1
+ endwhile
+endfunction " }}}2
+
+function! s:_compare_error_items_by_columns(a, b) " {{{2
+ if a:a['bufnr'] != a:b['bufnr']
+ " group by file
+ return a:a['bufnr'] - a:b['bufnr']
+ elseif a:a['lnum'] != a:b['lnum']
+ " sort by line
+ return a:a['lnum'] - a:b['lnum']
+ elseif a:a['scol'] != a:b['scol']
+ " sort by screen column
+ return a:a['scol'] - a:b['scol']
+ elseif a:a['type'] !=? a:b['type']
+ " errors take precedence over warnings
+ return a:a['type'] ==? 'E' ? -1 : 1
+ else
+ return 0
+ endif
+endfunction " }}}2
+
+function! s:_compare_error_items_by_lines(a, b) " {{{2
+ if a:a['bufnr'] != a:b['bufnr']
+ " group by file
+ return a:a['bufnr'] - a:b['bufnr']
+ elseif a:a['lnum'] != a:b['lnum']
+ " sort by line
+ return a:a['lnum'] - a:b['lnum']
+ elseif a:a['type'] !=? a:b['type']
+ " errors take precedence over warnings
+ return a:a['type'] ==? 'E' ? -1 : 1
+ else
+ " sort by screen column
+ return a:a['scol'] - a:b['scol']
+ endif
+endfunction " }}}2
+
+" }}}1
+
+" vim: set sw=4 sts=4 et fdm=marker:
diff --git a/vim/vim.symlink/bundle/syntastic/plugin/syntastic/modemap.vim b/vim/vim.symlink/bundle/syntastic/plugin/syntastic/modemap.vim
new file mode 100644
index 0000000..3d9a296
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/plugin/syntastic/modemap.vim
@@ -0,0 +1,100 @@
+if exists("g:loaded_syntastic_modemap") || !exists("g:loaded_syntastic_plugin")
+ finish
+endif
+let g:loaded_syntastic_modemap = 1
+
+let g:SyntasticModeMap = {}
+
+" Public methods {{{1
+
+function! g:SyntasticModeMap.Instance() " {{{2
+ if !exists('s:SyntasticModeMapInstance')
+ let s:SyntasticModeMapInstance = copy(self)
+ call s:SyntasticModeMapInstance.synch()
+ endif
+
+ return s:SyntasticModeMapInstance
+endfunction " }}}2
+
+function! g:SyntasticModeMap.synch() " {{{2
+ if exists('g:syntastic_mode_map')
+ let self._mode = get(g:syntastic_mode_map, 'mode', 'active')
+ let self._activeFiletypes = copy(get(g:syntastic_mode_map, 'active_filetypes', []))
+ let self._passiveFiletypes = copy(get(g:syntastic_mode_map, 'passive_filetypes', []))
+ else
+ let self._mode = 'active'
+ let self._activeFiletypes = []
+ let self._passiveFiletypes = []
+ endif
+endfunction " }}}2
+
+function! g:SyntasticModeMap.allowsAutoChecking(filetype) " {{{2
+ let fts = split(a:filetype, '\m\.')
+
+ if self.isPassive()
+ return self._isOneFiletypeActive(fts)
+ else
+ return self._noFiletypesArePassive(fts)
+ endif
+endfunction " }}}2
+
+function! g:SyntasticModeMap.isPassive() " {{{2
+ return self._mode ==# 'passive'
+endfunction " }}}2
+
+function! g:SyntasticModeMap.toggleMode() " {{{2
+ call self.synch()
+
+ if self._mode ==# 'active'
+ let self._mode = 'passive'
+ else
+ let self._mode = 'active'
+ endif
+
+ "XXX Changing a global variable. Tsk, tsk...
+ if !exists('g:syntastic_mode_map')
+ let g:syntastic_mode_map = {}
+ endif
+ let g:syntastic_mode_map['mode'] = self._mode
+endfunction " }}}2
+
+function! g:SyntasticModeMap.echoMode() " {{{2
+ echo "Syntastic: " . self._mode . " mode enabled"
+endfunction " }}}2
+
+function! g:SyntasticModeMap.modeInfo(filetypes) " {{{2
+ echomsg 'Syntastic version: ' . g:_SYNTASTIC_VERSION
+ let type = len(a:filetypes) ? a:filetypes[0] : &filetype
+ echomsg 'Info for filetype: ' . type
+
+ call self.synch()
+ echomsg 'Mode: ' . self._mode
+ if self._mode ==# 'active'
+ if len(self._passiveFiletypes)
+ let plural = len(self._passiveFiletypes) != 1 ? 's' : ''
+ echomsg 'Passive filetype' . plural . ': ' . join(sort(copy(self._passiveFiletypes)))
+ endif
+ else
+ if len(self._activeFiletypes)
+ let plural = len(self._activeFiletypes) != 1 ? 's' : ''
+ echomsg 'Active filetype' . plural . ': ' . join(sort(copy(self._activeFiletypes)))
+ endif
+ endif
+ echomsg 'Filetype ' . type . ' is ' . (self.allowsAutoChecking(type) ? 'active' : 'passive')
+endfunction " }}}2
+
+" }}}1
+
+" Private methods {{{1
+
+function! g:SyntasticModeMap._isOneFiletypeActive(filetypes) " {{{2
+ return !empty(filter(copy(a:filetypes), 'index(self._activeFiletypes, v:val) != -1'))
+endfunction " }}}2
+
+function! g:SyntasticModeMap._noFiletypesArePassive(filetypes) " {{{2
+ return empty(filter(copy(a:filetypes), 'index(self._passiveFiletypes, v:val) != -1'))
+endfunction " }}}2
+
+" }}}1
+
+" vim: set sw=4 sts=4 et fdm=marker:
diff --git a/vim/vim.symlink/bundle/syntastic/plugin/syntastic/notifiers.vim b/vim/vim.symlink/bundle/syntastic/plugin/syntastic/notifiers.vim
new file mode 100644
index 0000000..11b72c6
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/plugin/syntastic/notifiers.vim
@@ -0,0 +1,86 @@
+if exists("g:loaded_syntastic_notifiers") || !exists("g:loaded_syntastic_plugin")
+ finish
+endif
+let g:loaded_syntastic_notifiers = 1
+
+let g:SyntasticNotifiers = {}
+
+let s:_NOTIFIER_TYPES = ['signs', 'balloons', 'highlighting', 'cursor', 'autoloclist']
+lockvar! s:_NOTIFIER_TYPES
+
+let s:_PERSISTENT_NOTIFIERS = ['signs', 'balloons']
+lockvar! s:_PERSISTENT_NOTIFIERS
+
+" Public methods {{{1
+
+function! g:SyntasticNotifiers.Instance() " {{{2
+ if !exists('s:SyntasticNotifiersInstance')
+ let s:SyntasticNotifiersInstance = copy(self)
+ call s:SyntasticNotifiersInstance._initNotifiers()
+ endif
+
+ return s:SyntasticNotifiersInstance
+endfunction " }}}2
+
+function! g:SyntasticNotifiers.refresh(loclist) " {{{2
+ if !a:loclist.isEmpty() && !a:loclist.isNewerThan([])
+ " loclist not fully constructed yet
+ return
+ endif
+
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'notifiers: refresh')
+ for type in self._enabled_types
+ let class = substitute(type, '\m.*', 'Syntastic\u&Notifier', '')
+ if !has_key(g:{class}, 'enabled') || self._notifier[type].enabled()
+ if index(s:_PERSISTENT_NOTIFIERS, type) > -1
+ " refresh only if loclist has changed since last call
+ if !exists('b:syntastic_' . type . '_stamp')
+ let b:syntastic_{type}_stamp = []
+ endif
+ if a:loclist.isNewerThan(b:syntastic_{type}_stamp) || a:loclist.isEmpty()
+ call self._notifier[type].refresh(a:loclist)
+ let b:syntastic_{type}_stamp = syntastic#util#stamp()
+ endif
+ else
+ call self._notifier[type].refresh(a:loclist)
+ endif
+ endif
+ endfor
+endfunction " }}}2
+
+function! g:SyntasticNotifiers.reset(loclist) " {{{2
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'notifiers: reset')
+ for type in self._enabled_types
+ let class = substitute(type, '\m.*', 'Syntastic\u&Notifier', '')
+
+ " reset notifiers regardless if they are enabled or not, since
+ " the user might have disabled them since the last refresh();
+ " notifiers MUST be prepared to deal with reset() when disabled
+ if has_key(g:{class}, 'reset')
+ call self._notifier[type].reset(a:loclist)
+ endif
+
+ " also reset stamps
+ if index(s:_PERSISTENT_NOTIFIERS, type) > -1
+ let b:syntastic_{type}_stamp = []
+ endif
+ endfor
+endfunction " }}}2
+
+" }}}1
+
+" Private methods {{{1
+
+function! g:SyntasticNotifiers._initNotifiers() " {{{2
+ let self._notifier = {}
+ for type in s:_NOTIFIER_TYPES
+ let class = substitute(type, '\m.*', 'Syntastic\u&Notifier', '')
+ let self._notifier[type] = g:{class}.New()
+ endfor
+
+ let self._enabled_types = copy(s:_NOTIFIER_TYPES)
+endfunction " }}}2
+
+" }}}1
+
+" vim: set sw=4 sts=4 et fdm=marker:
diff --git a/vim/vim.symlink/bundle/syntastic/plugin/syntastic/registry.vim b/vim/vim.symlink/bundle/syntastic/plugin/syntastic/registry.vim
new file mode 100644
index 0000000..be597c5
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/plugin/syntastic/registry.vim
@@ -0,0 +1,329 @@
+if exists("g:loaded_syntastic_registry") || !exists("g:loaded_syntastic_plugin")
+ finish
+endif
+let g:loaded_syntastic_registry = 1
+
+" Initialisation {{{1
+
+let s:_DEFAULT_CHECKERS = {
+ \ 'actionscript':['mxmlc'],
+ \ 'ada': ['gcc'],
+ \ 'applescript': ['osacompile'],
+ \ 'asciidoc': ['asciidoc'],
+ \ 'asm': ['gcc'],
+ \ 'bro': ['bro'],
+ \ 'bemhtml': ['bemhtmllint'],
+ \ 'c': ['gcc'],
+ \ 'cabal': ['cabal'],
+ \ 'chef': ['foodcritic'],
+ \ 'co': ['coco'],
+ \ 'cobol': ['cobc'],
+ \ 'coffee': ['coffee', 'coffeelint'],
+ \ 'coq': ['coqtop'],
+ \ 'cpp': ['gcc'],
+ \ 'cs': ['mcs'],
+ \ 'css': ['csslint'],
+ \ 'cucumber': ['cucumber'],
+ \ 'cuda': ['nvcc'],
+ \ 'd': ['dmd'],
+ \ 'dart': ['dartanalyzer'],
+ \ 'docbk': ['xmllint'],
+ \ 'dustjs': ['swiffer'],
+ \ 'elixir': [],
+ \ 'erlang': ['escript'],
+ \ 'eruby': ['ruby'],
+ \ 'fortran': ['gfortran'],
+ \ 'glsl': ['cgc'],
+ \ 'go': ['go'],
+ \ 'haml': ['haml'],
+ \ 'handlebars': ['handlebars'],
+ \ 'haskell': ['ghc_mod', 'hdevtools', 'hlint'],
+ \ 'haxe': ['haxe'],
+ \ 'hss': ['hss'],
+ \ 'html': ['tidy'],
+ \ 'java': ['javac'],
+ \ 'javascript': ['jshint', 'jslint'],
+ \ 'json': ['jsonlint', 'jsonval'],
+ \ 'less': ['lessc'],
+ \ 'lex': ['flex'],
+ \ 'limbo': ['limbo'],
+ \ 'lisp': ['clisp'],
+ \ 'llvm': ['llvm'],
+ \ 'lua': ['luac'],
+ \ 'markdown': ['mdl'],
+ \ 'matlab': ['mlint'],
+ \ 'nasm': ['nasm'],
+ \ 'nroff': ['mandoc'],
+ \ 'objc': ['gcc'],
+ \ 'objcpp': ['gcc'],
+ \ 'ocaml': ['camlp4o'],
+ \ 'perl': ['perlcritic'],
+ \ 'php': ['php', 'phpcs', 'phpmd'],
+ \ 'po': ['msgfmt'],
+ \ 'pod': ['podchecker'],
+ \ 'puppet': ['puppet', 'puppetlint'],
+ \ 'python': ['python', 'flake8', 'pylint'],
+ \ 'r': [],
+ \ 'racket': ['racket'],
+ \ 'rnc': ['rnv'],
+ \ 'rst': ['rst2pseudoxml'],
+ \ 'ruby': ['mri'],
+ \ 'sass': ['sass'],
+ \ 'scala': ['fsc', 'scalac'],
+ \ 'scss': ['sass', 'scss_lint'],
+ \ 'sh': ['sh', 'shellcheck'],
+ \ 'slim': ['slimrb'],
+ \ 'spec': ['rpmlint'],
+ \ 'tcl': ['nagelfar'],
+ \ 'tex': ['lacheck', 'chktex'],
+ \ 'texinfo': ['makeinfo'],
+ \ 'text': [],
+ \ 'twig': ['twiglint'],
+ \ 'typescript': ['tsc'],
+ \ 'vala': ['valac'],
+ \ 'verilog': ['verilator'],
+ \ 'vhdl': ['ghdl'],
+ \ 'vim': ['vimlint'],
+ \ 'xhtml': ['tidy'],
+ \ 'xml': ['xmllint'],
+ \ 'xslt': ['xmllint'],
+ \ 'yacc': ['bison'],
+ \ 'yaml': ['jsyaml'],
+ \ 'z80': ['z80syntaxchecker'],
+ \ 'zpt': ['zptlint'],
+ \ 'zsh': ['zsh', 'shellcheck'],
+ \ }
+lockvar! s:_DEFAULT_CHECKERS
+
+let s:_DEFAULT_FILETYPE_MAP = {
+ \ 'gentoo-metadata': 'xml',
+ \ 'groff': 'nroff',
+ \ 'lhaskell': 'haskell',
+ \ 'litcoffee': 'coffee',
+ \ 'mail': 'text',
+ \ 'mkd': 'markdown',
+ \ 'sgml': 'docbk',
+ \ 'sgmllnx': 'docbk',
+ \ }
+lockvar! s:_DEFAULT_FILETYPE_MAP
+
+let s:_ECLIM_TYPES = [
+ \ 'c',
+ \ 'cpp',
+ \ 'html',
+ \ 'java',
+ \ 'php',
+ \ 'python',
+ \ 'ruby',
+ \ ]
+lockvar! s:_ECLIM_TYPES
+
+let s:_YCM_TYPES = [
+ \ 'c',
+ \ 'cpp',
+ \ 'objc',
+ \ 'objcpp',
+ \ ]
+lockvar! s:_YCM_TYPES
+
+let g:SyntasticRegistry = {}
+
+" }}}1
+
+" Public methods {{{1
+
+" Note: Handling of filetype aliases: all public methods take aliases as
+" parameters, all private methods take normalized filetypes. Public methods
+" are thus supposed to normalize filetypes before calling private methods.
+
+function! g:SyntasticRegistry.Instance() " {{{2
+ if !exists('s:SyntasticRegistryInstance')
+ let s:SyntasticRegistryInstance = copy(self)
+ let s:SyntasticRegistryInstance._checkerMap = {}
+ endif
+
+ return s:SyntasticRegistryInstance
+endfunction " }}}2
+
+function! g:SyntasticRegistry.CreateAndRegisterChecker(args) " {{{2
+ let checker = g:SyntasticChecker.New(a:args)
+ let registry = g:SyntasticRegistry.Instance()
+ call registry._registerChecker(checker)
+endfunction " }}}2
+
+" Given a list of checker names hints_list, return a map name --> checker.
+" If hints_list is empty, user settings are are used instead. Checkers are
+" not checked for availability (that is, the corresponding IsAvailable() are
+" not run).
+function! g:SyntasticRegistry.getCheckers(ftalias, hints_list) " {{{2
+ let ft = s:_normalise_filetype(a:ftalias)
+ call self._loadCheckersFor(ft)
+
+ let checkers_map = self._checkerMap[ft]
+ if empty(checkers_map)
+ return []
+ endif
+
+ call self._checkDeprecation(ft)
+
+ let names =
+ \ !empty(a:hints_list) ? syntastic#util#unique(a:hints_list) :
+ \ exists('b:syntastic_checkers') ? b:syntastic_checkers :
+ \ exists('g:syntastic_' . ft . '_checkers') ? g:syntastic_{ft}_checkers :
+ \ get(s:_DEFAULT_CHECKERS, ft, 0)
+
+ return type(names) == type([]) ?
+ \ self._filterCheckersByName(checkers_map, names) : [checkers_map[keys(checkers_map)[0]]]
+endfunction " }}}2
+
+" Same as getCheckers(), but keep only the checkers available. This runs the
+" corresponding IsAvailable() functions for all checkers.
+function! g:SyntasticRegistry.getCheckersAvailable(ftalias, hints_list) " {{{2
+ return filter(self.getCheckers(a:ftalias, a:hints_list), 'v:val.isAvailable()')
+endfunction " }}}2
+
+function! g:SyntasticRegistry.getKnownFiletypes() " {{{2
+ let types = keys(s:_DEFAULT_CHECKERS)
+
+ call extend(types, keys(s:_DEFAULT_FILETYPE_MAP))
+
+ if exists('g:syntastic_filetype_map')
+ call extend(types, keys(g:syntastic_filetype_map))
+ endif
+
+ if exists('g:syntastic_extra_filetypes') && type(g:syntastic_extra_filetypes) == type([])
+ call extend(types, g:syntastic_extra_filetypes)
+ endif
+
+ return syntastic#util#unique(types)
+endfunction " }}}2
+
+function! g:SyntasticRegistry.getNamesOfAvailableCheckers(ftalias) " {{{2
+ let ft = s:_normalise_filetype(a:ftalias)
+ call self._loadCheckersFor(ft)
+ return keys(filter( copy(self._checkerMap[ft]), 'v:val.isAvailable()' ))
+endfunction " }}}2
+
+function! g:SyntasticRegistry.echoInfoFor(ftalias_list) " {{{2
+ let ft_list = syntastic#util#unique(map( copy(a:ftalias_list), 's:_normalise_filetype(v:val)' ))
+ if len(ft_list) != 1
+ let available = []
+ let active = []
+
+ for ft in ft_list
+ call extend(available, map( self.getNamesOfAvailableCheckers(ft), 'ft . "/" . v:val' ))
+ call extend(active, map( self.getCheckersAvailable(ft, []), 'ft . "/" . v:val.getName()' ))
+ endfor
+ else
+ let ft = ft_list[0]
+ let available = self.getNamesOfAvailableCheckers(ft)
+ let active = map(self.getCheckersAvailable(ft, []), 'v:val.getName()')
+ endif
+
+ let cnt = len(available)
+ let plural = cnt != 1 ? 's' : ''
+ let cklist = cnt ? join(sort(available)) : '-'
+ echomsg 'Available checker' . plural . ': ' . cklist
+
+ let cnt = len(active)
+ let plural = cnt != 1 ? 's' : ''
+ let cklist = cnt ? join(active) : '-'
+ echomsg 'Currently enabled checker' . plural . ': ' . cklist
+
+ " Eclim feels entitled to mess with syntastic's variables {{{3
+ if exists(':EclimValidate') && get(g:, 'EclimFileTypeValidate', 1)
+ let disabled = filter(copy(ft_list), 's:_disabled_by_eclim(v:val)')
+ let cnt = len(disabled)
+ if cnt
+ let plural = cnt != 1 ? 's' : ''
+ let cklist = join(disabled, ', ')
+ echomsg 'Checkers for filetype' . plural . ' ' . cklist . ' possibly disabled by Eclim'
+ endif
+ endif
+ " }}}3
+
+ " So does YouCompleteMe {{{3
+ if exists('g:loaded_youcompleteme') && get(g:, 'ycm_show_diagnostics_ui', get(g:, 'ycm_register_as_syntastic_checker', 1))
+ let disabled = filter(copy(ft_list), 's:_disabled_by_ycm(v:val)')
+ let cnt = len(disabled)
+ if cnt
+ let plural = cnt != 1 ? 's' : ''
+ let cklist = join(disabled, ', ')
+ echomsg 'Checkers for filetype' . plural . ' ' . cklist . ' possibly disabled by YouCompleteMe'
+ endif
+ endif
+ " }}}3
+endfunction " }}}2
+
+" }}}1
+
+" Private methods {{{1
+
+function! g:SyntasticRegistry._registerChecker(checker) abort " {{{2
+ let ft = a:checker.getFiletype()
+ if !has_key(self._checkerMap, ft)
+ let self._checkerMap[ft] = {}
+ endif
+
+ let name = a:checker.getName()
+ if has_key(self._checkerMap[ft], name)
+ throw 'Syntastic: Duplicate syntax checker name: ' . ft . '/' . name
+ endif
+
+ let self._checkerMap[ft][name] = a:checker
+endfunction " }}}2
+
+function! g:SyntasticRegistry._filterCheckersByName(checkers_map, list) " {{{2
+ return filter( map(copy(a:list), 'get(a:checkers_map, v:val, {})'), '!empty(v:val)' )
+endfunction " }}}2
+
+function! g:SyntasticRegistry._loadCheckersFor(filetype) " {{{2
+ if has_key(self._checkerMap, a:filetype)
+ return
+ endif
+
+ execute "runtime! syntax_checkers/" . a:filetype . "/*.vim"
+
+ if !has_key(self._checkerMap, a:filetype)
+ let self._checkerMap[a:filetype] = {}
+ endif
+endfunction " }}}2
+
+" Check for obsolete variable g:syntastic__checker
+function! g:SyntasticRegistry._checkDeprecation(filetype) " {{{2
+ if exists('g:syntastic_' . a:filetype . '_checker') && !exists('g:syntastic_' . a:filetype . '_checkers')
+ let g:syntastic_{a:filetype}_checkers = [g:syntastic_{a:filetype}_checker]
+ call syntastic#log#oneTimeWarn('variable g:syntastic_' . a:filetype . '_checker is deprecated')
+ endif
+endfunction " }}}2
+
+" }}}1
+
+" Utilities {{{1
+
+"resolve filetype aliases, and replace - with _ otherwise we cant name
+"syntax checker functions legally for filetypes like "gentoo-metadata"
+function! s:_normalise_filetype(ftalias) " {{{2
+ let ft = get(s:_DEFAULT_FILETYPE_MAP, a:ftalias, a:ftalias)
+ let ft = get(g:syntastic_filetype_map, ft, ft)
+ let ft = substitute(ft, '\m-', '_', 'g')
+ return ft
+endfunction " }}}2
+
+function! s:_disabled_by_eclim(filetype) " {{{2
+ if index(s:_ECLIM_TYPES, a:filetype) >= 0
+ let lang = toupper(a:filetype[0]) . a:filetype[1:]
+ let ft = a:filetype !=# 'cpp' ? lang : 'C'
+ return get(g:, 'Eclim' . lang . 'Validate', 1) && !get(g:, 'Eclim' . ft . 'SyntasticEnabled', 0)
+ endif
+
+ return 0
+endfunction " }}}2
+
+function! s:_disabled_by_ycm(filetype) " {{{2
+ return index(s:_YCM_TYPES, a:filetype) >= 0
+endfunction " }}}2
+
+" }}}1
+
+" vim: set sw=4 sts=4 et fdm=marker:
diff --git a/vim/vim.symlink/bundle/syntastic/plugin/syntastic/signs.vim b/vim/vim.symlink/bundle/syntastic/plugin/syntastic/signs.vim
new file mode 100644
index 0000000..a8bb393
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/plugin/syntastic/signs.vim
@@ -0,0 +1,136 @@
+if exists("g:loaded_syntastic_notifier_signs") || !exists("g:loaded_syntastic_plugin")
+ finish
+endif
+let g:loaded_syntastic_notifier_signs = 1
+
+" Initialisation {{{1
+
+" start counting sign ids at 5000, start here to hopefully avoid conflicting
+" with any other code that places signs (not sure if this precaution is
+" actually needed)
+let s:first_sign_id = 5000
+let s:next_sign_id = s:first_sign_id
+
+let g:SyntasticSignsNotifier = {}
+
+let s:setup_done = 0
+
+" }}}1
+
+" Public methods {{{1
+
+function! g:SyntasticSignsNotifier.New() " {{{2
+ let newObj = copy(self)
+
+ if !s:setup_done
+ call self._setup()
+ let s:setup_done = 1
+ lockvar s:setup_done
+ endif
+
+ return newObj
+endfunction " }}}2
+
+function! g:SyntasticSignsNotifier.enabled() " {{{2
+ return has('signs') && syntastic#util#var('enable_signs')
+endfunction " }}}2
+
+function! g:SyntasticSignsNotifier.refresh(loclist) " {{{2
+ call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'signs: refresh')
+ let old_signs = copy(self._bufSignIds())
+ if self.enabled()
+ call self._signErrors(a:loclist)
+ endif
+ call self._removeSigns(old_signs)
+endfunction " }}}2
+
+" }}}1
+
+" Private methods {{{1
+
+" One time setup: define our own sign types and highlighting
+function! g:SyntasticSignsNotifier._setup() " {{{2
+ if has('signs')
+ if !hlexists('SyntasticErrorSign')
+ highlight link SyntasticErrorSign error
+ endif
+ if !hlexists('SyntasticWarningSign')
+ highlight link SyntasticWarningSign todo
+ endif
+ if !hlexists('SyntasticStyleErrorSign')
+ highlight link SyntasticStyleErrorSign SyntasticErrorSign
+ endif
+ if !hlexists('SyntasticStyleWarningSign')
+ highlight link SyntasticStyleWarningSign SyntasticWarningSign
+ endif
+ if !hlexists('SyntasticStyleErrorLine')
+ highlight link SyntasticStyleErrorLine SyntasticErrorLine
+ endif
+ if !hlexists('SyntasticStyleWarningLine')
+ highlight link SyntasticStyleWarningLine SyntasticWarningLine
+ endif
+
+ " define the signs used to display syntax and style errors/warns
+ exe 'sign define SyntasticError text=' . g:syntastic_error_symbol .
+ \ ' texthl=SyntasticErrorSign linehl=SyntasticErrorLine'
+ exe 'sign define SyntasticWarning text=' . g:syntastic_warning_symbol .
+ \ ' texthl=SyntasticWarningSign linehl=SyntasticWarningLine'
+ exe 'sign define SyntasticStyleError text=' . g:syntastic_style_error_symbol .
+ \ ' texthl=SyntasticStyleErrorSign linehl=SyntasticStyleErrorLine'
+ exe 'sign define SyntasticStyleWarning text=' . g:syntastic_style_warning_symbol .
+ \ ' texthl=SyntasticStyleWarningSign linehl=SyntasticStyleWarningLine'
+ endif
+endfunction " }}}2
+
+" Place signs by all syntax errors in the buffer
+function! g:SyntasticSignsNotifier._signErrors(loclist) " {{{2
+ let loclist = a:loclist
+ if !loclist.isEmpty()
+
+ let buf = bufnr('')
+ if !bufloaded(buf)
+ " signs can be placed only in loaded buffers
+ return
+ endif
+
+ " errors come first, so that they are not masked by warnings
+ let issues = copy(loclist.errors())
+ call extend(issues, loclist.warnings())
+ call filter(issues, 'v:val["bufnr"] == buf')
+ let seen = {}
+
+ for i in issues
+ if i['lnum'] > 0 && !has_key(seen, i['lnum'])
+ let seen[i['lnum']] = 1
+
+ let severity = i['type'] ==? 'W' ? 'Warning' : 'Error'
+ let type = 'Syntastic' . severity
+
+ call matchaddpos(type, [i['lnum']], 400000)
+ let s:next_sign_id += 1
+ endif
+ endfor
+ endif
+endfunction " }}}2
+
+" Remove the signs with the given ids from this buffer
+function! g:SyntasticSignsNotifier._removeSigns(ids) " {{{2
+ if has('signs')
+ for s in reverse(copy(a:ids))
+ execute "sign unplace " . s
+ call remove(self._bufSignIds(), index(self._bufSignIds(), s))
+ endfor
+ endif
+endfunction " }}}2
+
+" Get all the ids of the SyntaxError signs in the buffer
+function! g:SyntasticSignsNotifier._bufSignIds() " {{{2
+ if !exists("b:syntastic_sign_ids")
+ let b:syntastic_sign_ids = []
+ endif
+ return b:syntastic_sign_ids
+endfunction " }}}2
+
+" }}}1
+
+" vim: set sw=4 sts=4 et fdm=marker:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/actionscript/mxmlc.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/actionscript/mxmlc.vim
new file mode 100644
index 0000000..dd47287
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/actionscript/mxmlc.vim
@@ -0,0 +1,67 @@
+"============================================================================
+"File: mxmlc.vim
+"Description: ActionScript syntax checker - using mxmlc
+"Maintainer: Andy Earnshaw
+"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:loaded_syntastic_actionscript_mxmlc_checker')
+ finish
+endif
+let g:loaded_syntastic_actionscript_mxmlc_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_actionscript_mxmlc_GetHighlightRegex(item)
+ let term = ''
+
+ if match(a:item['text'], '\mvariable ''') > -1
+ let term = matchstr(a:item['text'], '\m''\zs[^'']\+\ze''')
+
+ elseif match(a:item['text'], 'expected a definition keyword') > -1
+ let term = matchstr(a:item['text'], '\mnot \zs[^.]\+\ze\.')
+
+ elseif match(a:item['text'], '\mundefined \%(property\|method\)') > -1
+ let term = matchstr(a:item['text'], '\mundefined \%(property\|method\) \zs[^. ]\+\ze')
+
+ elseif match(a:item['text'], 'could not be found') > -1
+ let term = matchstr(a:item['text'], '\m \zs\S\+\ze could not be found')
+
+ elseif match(a:item['text'], 'Type was not found') > -1
+ let term = matchstr(a:item['text'], '\m: \zs[^.]\+\zs\.')
+
+ endif
+
+ return term != '' ? '\V\<' . escape(term, '\') . '\>' : ''
+endfunction
+
+function! SyntaxCheckers_actionscript_mxmlc_GetLocList() dict
+ call syntastic#log#deprecationWarn('actionscript_mxmlc_conf', 'actionscript_mxmlc_args',
+ \ "'-load-config+=' . syntastic#util#shexpand(OLD_VAR)")
+
+ let makeprg = self.makeprgBuild({ 'args_after': '-output=' . syntastic#util#DevNull() })
+
+ let errorformat =
+ \ '%f(%l): col: %c %trror: %m,' .
+ \ '%f(%l): col: %c %tarning: %m,' .
+ \ '%f: %trror: %m,' .
+ \ '%-G%.%#'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'actionscript',
+ \ 'name': 'mxmlc'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/ada/gcc.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/ada/gcc.vim
new file mode 100644
index 0000000..14e79a0
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/ada/gcc.vim
@@ -0,0 +1,47 @@
+"============================================================================
+"File: ada.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Alfredo Di Napoli
+"License: This program is free software. It comes without any warranty,
+" to the extent permitted by applicable law.
+"
+"============================================================================
+
+if exists('g:loaded_syntastic_ada_gcc_checker')
+ finish
+endif
+let g:loaded_syntastic_ada_gcc_checker = 1
+
+if !exists('g:syntastic_ada_compiler_options')
+ let g:syntastic_ada_compiler_options = ''
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_ada_gcc_IsAvailable() dict
+ if !exists('g:syntastic_ada_compiler')
+ let g:syntastic_ada_compiler = self.getExec()
+ endif
+ return executable(expand(g:syntastic_ada_compiler))
+endfunction
+
+function! SyntaxCheckers_ada_gcc_GetLocList() dict
+ return syntastic#c#GetLocList('ada', 'gcc', {
+ \ 'errorformat':
+ \ '%-G%f:%s:,' .
+ \ '%f:%l:%c: %m,' .
+ \ '%f:%l: %m',
+ \ 'main_flags': '-c -x ada -fsyntax-only',
+ \ 'header_flags': '-x ada',
+ \ 'header_names': '\.ads$' })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'ada',
+ \ 'name': 'gcc' })
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/applescript/osacompile.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/applescript/osacompile.vim
new file mode 100644
index 0000000..522e6a2
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/applescript/osacompile.vim
@@ -0,0 +1,49 @@
+"==============================================================================
+" 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("g:loaded_syntastic_applescript_osacompile_checker")
+ finish
+endif
+let g:loaded_syntastic_applescript_osacompile_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_applescript_osacompile_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'args_after': '-o ' . tempname() . '.scpt' })
+ let errorformat = '%f:%l:%m'
+ return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'applescript',
+ \ 'name': 'osacompile' })
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/asciidoc/asciidoc.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/asciidoc/asciidoc.vim
new file mode 100644
index 0000000..bec2a49
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/asciidoc/asciidoc.vim
@@ -0,0 +1,47 @@
+"============================================================================
+"File: asciidoc.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: LCD 47
+"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:loaded_syntastic_asciidoc_asciidoc_checker")
+ finish
+endif
+let g:loaded_syntastic_asciidoc_asciidoc_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_asciidoc_asciidoc_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'args_after': syntastic#c#NullOutput() })
+
+ let errorformat =
+ \ '%Easciidoc: %tRROR: %f: line %l: %m,' .
+ \ '%Easciidoc: %tRROR: %f: %m,' .
+ \ '%Easciidoc: FAILED: %f: line %l: %m,' .
+ \ '%Easciidoc: FAILED: %f: %m,' .
+ \ '%Wasciidoc: %tARNING: %f: line %l: %m,' .
+ \ '%Wasciidoc: %tARNING: %f: %m,' .
+ \ '%Wasciidoc: DEPRECATED: %f: line %l: %m,' .
+ \ '%Wasciidoc: DEPRECATED: %f: %m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'returns': [0, 1] })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'asciidoc',
+ \ 'name': 'asciidoc'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/asm/gcc.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/asm/gcc.vim
new file mode 100644
index 0000000..f5ecebe
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/asm/gcc.vim
@@ -0,0 +1,54 @@
+"============================================================================
+"File: gcc.vim
+"Description: Syntax checking for at&t and intel assembly files with gcc
+"Maintainer: Josh Rahm
+"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:loaded_syntastic_asm_gcc_checker')
+ finish
+endif
+let g:loaded_syntastic_asm_gcc_checker = 1
+
+if !exists('g:syntastic_asm_compiler_options')
+ let g:syntastic_asm_compiler_options = ''
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_asm_gcc_IsAvailable() dict
+ if !exists('g:syntastic_asm_compiler')
+ let g:syntastic_asm_compiler = self.getExec()
+ endif
+ return executable(expand(g:syntastic_asm_compiler))
+endfunction
+
+function! SyntaxCheckers_asm_gcc_GetLocList() dict
+ return syntastic#c#GetLocList('asm', 'gcc', {
+ \ 'errorformat':
+ \ '%-G%f:%s:,' .
+ \ '%f:%l:%c: %trror: %m,' .
+ \ '%f:%l:%c: %tarning: %m,' .
+ \ '%f:%l: %m',
+ \ 'main_flags': '-x assembler -fsyntax-only -masm=' . s:GetDialect() })
+endfunction
+
+function! s:GetDialect()
+ return exists('g:syntastic_asm_dialect') ? g:syntastic_asm_dialect :
+ \ expand('%:e') ==? 'asm' ? 'intel' : 'att'
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'asm',
+ \ 'name': 'gcc' })
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/bemhtml/bemhtmllint.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/bemhtml/bemhtmllint.vim
new file mode 100644
index 0000000..7f52ed3
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/bemhtml/bemhtmllint.vim
@@ -0,0 +1,35 @@
+"============================================================================
+"File: bemhtmllint.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Sergej Tatarincev
+"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:loaded_syntastic_bemhtml_bemhtmllint_checker")
+ finish
+endif
+
+let g:loaded_syntastic_bemhtml_bemhtmllint_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function SyntaxCheckers_bemhtml_bemhtmllint_GetLocList() dict
+ let makeprg = self.makeprgBuild({})
+ let errorformat = '%f:%l:%c: %m'
+ return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'bemhtml',
+ \ 'name': 'bemhtmllint',
+ \ 'exec': 'bemhtml-lint' })
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/bro/bro.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/bro/bro.vim
new file mode 100644
index 0000000..7a3c167
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/bro/bro.vim
@@ -0,0 +1,60 @@
+"============================================================================
+"File: bro.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Justin Azoff
+"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:loaded_syntastic_bro_bro_checker")
+ finish
+endif
+let g:loaded_syntastic_bro_bro_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_bro_bro_GetHighlightRegex(item)
+ let term = matchstr(a:item['text'], '\m at or near "\zs[^"]\+\ze"')
+ return term != '' ? '\V\<' . escape(term, '\') . '\>' : ''
+endfunction
+
+function! SyntaxCheckers_bro_bro_IsAvailable() dict
+ if !executable(self.getExec())
+ return 0
+ endif
+
+ if system(self.getExecEscaped() . ' --help') !~# '--parse-only'
+ call self.log('unknown option "--parse-only"')
+ return 0
+ endif
+
+ return 1
+endfunction
+
+function! SyntaxCheckers_bro_bro_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'args_before': '--parse-only' })
+
+ "example: error in ./foo.bro, line 3: unknown identifier banana, at or near "banana"
+ let errorformat =
+ \ 'fatal %trror in %f\, line %l: %m,' .
+ \ '%trror in %f\, line %l: %m,' .
+ \ '%tarning in %f\, line %l: %m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'bro',
+ \ 'name': 'bro'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/c/avrgcc.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/c/avrgcc.vim
new file mode 100644
index 0000000..5563d61
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/c/avrgcc.vim
@@ -0,0 +1,57 @@
+"============================================================================
+"File: avrgcc.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Karel
+"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:loaded_syntastic_c_avrgcc_checker')
+ finish
+endif
+let g:loaded_syntastic_c_avrgcc_checker = 1
+
+if !exists('g:syntastic_avrgcc_config_file')
+ let g:syntastic_avrgcc_config_file = '.syntastic_avrgcc_config'
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_c_avrgcc_GetLocList() dict
+ let makeprg = self.makeprgBuild({
+ \ 'args_before': syntastic#c#ReadConfig(g:syntastic_avrgcc_config_file),
+ \ 'args_after': '-x c -fsyntax-only' })
+
+ 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: %trror: %m,' .
+ \ '%f:%l:%c: %tarning: %m,' .
+ \ '%f:%l:%c: %m,' .
+ \ '%f:%l: %trror: %m,' .
+ \ '%f:%l: %tarning: %m,'.
+ \ '%f:%l: %m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'postprocess': ['compressWhitespace'] })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'c',
+ \ 'name': 'avrgcc',
+ \ 'exec': 'avr-gcc'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/c/checkpatch.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/c/checkpatch.vim
new file mode 100644
index 0000000..56a4260
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/c/checkpatch.vim
@@ -0,0 +1,60 @@
+"============================================================================
+"File: checkpatch.vim
+"Description: Syntax checking plugin for syntastic.vim using checkpatch.pl
+"Maintainer: Daniel Walker
+"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:loaded_syntastic_c_checkpatch_checker")
+ finish
+endif
+let g:loaded_syntastic_c_checkpatch_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_c_checkpatch_IsAvailable() dict
+ call syntastic#log#deprecationWarn('c_checker_checkpatch_location', 'c_checkpatch_exec')
+
+ if !exists('g:syntastic_c_checkpatch_exec') && !executable(self.getExec())
+ if executable('checkpatch')
+ let g:syntastic_c_checkpatch_exec = 'checkpatch'
+ elseif executable('./scripts/checkpatch.pl')
+ let g:syntastic_c_checkpatch_exec = fnamemodify('./scripts/checkpatch.pl', ':p')
+ elseif executable('./scripts/checkpatch')
+ let g:syntastic_c_checkpatch_exec = fnamemodify('./scripts/checkpatch', ':p')
+ endif
+ endif
+
+ call self.log('exec =', self.getExec())
+
+ return executable(self.getExec())
+endfunction
+
+function! SyntaxCheckers_c_checkpatch_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'args_after': '--no-summary --no-tree --terse --file' })
+
+ let errorformat =
+ \ '%f:%l: %tARNING: %m,' .
+ \ '%f:%l: %tRROR: %m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'returns': [0, 1],
+ \ 'subtype': 'Style' })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'c',
+ \ 'name': 'checkpatch',
+ \ 'exec': 'checkpatch.pl'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/c/clang_check.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/c/clang_check.vim
new file mode 100644
index 0000000..6ef9096
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/c/clang_check.vim
@@ -0,0 +1,61 @@
+"============================================================================
+"File: clang_check.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Benjamin Bannier
+"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:loaded_syntastic_c_clang_check_checker")
+ finish
+endif
+let g:loaded_syntastic_c_clang_check_checker = 1
+
+if !exists('g:syntastic_clang_check_config_file')
+ let g:syntastic_clang_check_config_file = '.syntastic_clang_check_config'
+endif
+
+if !exists('g:syntastic_c_clang_check_sort')
+ let g:syntastic_c_clang_check_sort = 1
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_c_clang_check_GetLocList() dict
+ let makeprg = self.makeprgBuild({
+ \ 'post_args':
+ \ '-- ' .
+ \ syntastic#c#ReadConfig(g:syntastic_clang_check_config_file) . ' ' .
+ \ '-fshow-column ' .
+ \ '-fshow-source-location ' .
+ \ '-fno-caret-diagnostics ' .
+ \ '-fno-color-diagnostics ' .
+ \ '-fdiagnostics-format=clang' })
+
+ let errorformat =
+ \ '%E%f:%l:%c: fatal error: %m,' .
+ \ '%E%f:%l:%c: error: %m,' .
+ \ '%W%f:%l:%c: warning: %m,' .
+ \ '%-G%\m%\%%(LLVM ERROR:%\|No compilation database found%\)%\@!%.%#,' .
+ \ '%E%m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'defaults': {'bufnr': bufnr('')},
+ \ 'returns': [0, 1] })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'c',
+ \ 'name': 'clang_check',
+ \ 'exec': 'clang-check'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/c/clang_tidy.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/c/clang_tidy.vim
new file mode 100644
index 0000000..3514b55
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/c/clang_tidy.vim
@@ -0,0 +1,61 @@
+"============================================================================
+"File: clang_tidy.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Benjamin Bannier
+"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:loaded_syntastic_c_clang_tidy_checker")
+ finish
+endif
+let g:loaded_syntastic_c_clang_tidy_checker = 1
+
+if !exists('g:syntastic_clang_tidy_config_file')
+ let g:syntastic_clang_tidy_config_file = '.syntastic_clang_tidy_config'
+endif
+
+if !exists('g:syntastic_c_clang_tidy_sort')
+ let g:syntastic_c_clang_tidy_sort = 1
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_c_clang_tidy_GetLocList() dict
+ let makeprg = self.makeprgBuild({
+ \ 'post_args':
+ \ '-- ' .
+ \ syntastic#c#ReadConfig(g:syntastic_clang_tidy_config_file) . ' ' .
+ \ '-fshow-column ' .
+ \ '-fshow-source-location ' .
+ \ '-fno-caret-diagnostics ' .
+ \ '-fno-color-diagnostics ' .
+ \ '-fdiagnostics-format=clang' })
+
+ let errorformat =
+ \ '%E%f:%l:%c: fatal error: %m,' .
+ \ '%E%f:%l:%c: error: %m,' .
+ \ '%W%f:%l:%c: warning: %m,' .
+ \ '%-G%\m%\%%(LLVM ERROR:%\|No compilation database found%\)%\@!%.%#,' .
+ \ '%E%m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'defaults': {'bufnr': bufnr('')},
+ \ 'returns': [0, 1] })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'c',
+ \ 'name': 'clang_tidy',
+ \ 'exec': 'clang-tidy'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/c/cppcheck.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/c/cppcheck.vim
new file mode 100644
index 0000000..1cdc990
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/c/cppcheck.vim
@@ -0,0 +1,62 @@
+"============================================================================
+"File: cppcheck.vim
+"Description: Syntax checking plugin for syntastic.vim using cppcheck.pl
+"Maintainer: LCD 47
+"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:loaded_syntastic_c_cppcheck_checker")
+ finish
+endif
+let g:loaded_syntastic_c_cppcheck_checker = 1
+
+if !exists('g:syntastic_cppcheck_config_file')
+ let g:syntastic_cppcheck_config_file = '.syntastic_cppcheck_config'
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_c_cppcheck_GetLocList() dict
+ let makeprg = self.makeprgBuild({
+ \ 'args': syntastic#c#ReadConfig(g:syntastic_cppcheck_config_file),
+ \ 'args_after': '-q --enable=style' })
+
+ let errorformat =
+ \ '[%f:%l]: (%trror) %m,' .
+ \ '[%f:%l]: (%tarning) %m,' .
+ \ '[%f:%l]: (%ttyle) %m,' .
+ \ '[%f:%l]: (%terformance) %m,' .
+ \ '[%f:%l]: (%tortability) %m,' .
+ \ '[%f:%l]: (%tnformation) %m,' .
+ \ '[%f:%l]: (%tnconclusive) %m,' .
+ \ '%-G%.%#'
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'preprocess': 'cppcheck',
+ \ 'returns': [0] })
+
+ for e in loclist
+ if e['type'] =~? '\m^[SPI]'
+ let e['type'] = 'w'
+ let e['subtype'] = 'Style'
+ endif
+ endfor
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'c',
+ \ 'name': 'cppcheck'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/c/gcc.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/c/gcc.vim
new file mode 100644
index 0000000..796d773
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/c/gcc.vim
@@ -0,0 +1,59 @@
+"============================================================================
+"File: c.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Gregor Uhlenheuer
+"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:loaded_syntastic_c_gcc_checker')
+ finish
+endif
+let g:loaded_syntastic_c_gcc_checker = 1
+
+if !exists('g:syntastic_c_compiler_options')
+ let g:syntastic_c_compiler_options = '-std=gnu99'
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_c_gcc_IsAvailable() dict
+ if !exists('g:syntastic_c_compiler')
+ let g:syntastic_c_compiler = executable(self.getExec()) ? self.getExec() : 'clang'
+ endif
+ call self.log('g:syntastic_c_compiler =', g:syntastic_c_compiler)
+ return executable(expand(g:syntastic_c_compiler))
+endfunction
+
+function! SyntaxCheckers_c_gcc_GetLocList() dict
+ return syntastic#c#GetLocList('c', 'gcc', {
+ \ '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: %trror: %m,' .
+ \ '%f:%l:%c: %tarning: %m,' .
+ \ '%f:%l:%c: %m,' .
+ \ '%f:%l: %trror: %m,' .
+ \ '%f:%l: %tarning: %m,'.
+ \ '%f:%l: %m',
+ \ 'main_flags': '-x c -fsyntax-only',
+ \ 'header_flags': '-x c',
+ \ 'header_names': '\m\.h$' })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'c',
+ \ 'name': 'gcc' })
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/c/make.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/c/make.vim
new file mode 100644
index 0000000..8b84173
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/c/make.vim
@@ -0,0 +1,61 @@
+"============================================================================
+"File: make.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Gregor Uhlenheuer
+"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:loaded_syntastic_c_make_checker')
+ finish
+endif
+let g:loaded_syntastic_c_make_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_c_make_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'args': '-sk', 'fname': '' })
+
+ 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: %trror: %m,' .
+ \ '%f:%l:%c: %tarning: %m,' .
+ \ '%f:%l:%c: %m,' .
+ \ '%f:%l: %trror: %m,' .
+ \ '%f:%l: %tarning: %m,'.
+ \ '%f:%l: %m'
+
+ if exists('g:syntastic_c_errorformat')
+ let errorformat = g:syntastic_c_errorformat
+ 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
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'c',
+ \ 'name': 'make'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/c/oclint.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/c/oclint.vim
new file mode 100644
index 0000000..e552839
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/c/oclint.vim
@@ -0,0 +1,65 @@
+"============================================================================
+"File: oclint.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: "UnCO" Lin
+"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:loaded_syntastic_c_oclint_checker")
+ finish
+endif
+let g:loaded_syntastic_c_oclint_checker = 1
+
+if !exists('g:syntastic_oclint_config_file')
+ let g:syntastic_oclint_config_file = '.syntastic_oclint_config'
+endif
+
+if !exists('g:syntastic_c_oclint_sort')
+ let g:syntastic_c_oclint_sort = 1
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_c_oclint_GetLocList() dict
+ let makeprg = self.makeprgBuild({
+ \ 'post_args': '-- -c ' . syntastic#c#ReadConfig(g:syntastic_oclint_config_file) })
+
+ let errorformat =
+ \ '%E%f:%l:%c: fatal error: %m,' .
+ \ '%E%f:%l:%c: error: %m,' .
+ \ '%W%f:%l:%c: warning: %m,' .
+ \ '%E%f:%l:%c: %m,' .
+ \ '%-G%.%#'
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'subtype': 'Style',
+ \ 'postprocess': ['compressWhitespace'],
+ \ 'returns': [0, 3, 5] })
+
+ for e in loclist
+ if e['text'] =~# '\v P3( |$)'
+ let e['type'] = 'W'
+ endif
+
+ let e['text'] = substitute(e['text'], '\m\C P[1-3]$', '', '')
+ let e['text'] = substitute(e['text'], '\m\C P[1-3] ', ': ', '')
+ endfor
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'c',
+ \ 'name': 'oclint'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/c/pc_lint.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/c/pc_lint.vim
new file mode 100644
index 0000000..4987457
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/c/pc_lint.vim
@@ -0,0 +1,66 @@
+"============================================================================
+"File: pc_lint.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Steve Bragg
+"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:loaded_syntastic_c_pc_lint_checker")
+ finish
+endif
+let g:loaded_syntastic_c_pc_lint_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+if !exists('g:syntastic_pc_lint_config_file')
+ let g:syntastic_pc_lint_config_file = 'options.lnt'
+endif
+
+function! SyntaxCheckers_c_pc_lint_GetLocList() dict
+ let config = findfile(g:syntastic_pc_lint_config_file, '.;')
+ call self.log('config =', config)
+
+ " -hFs1 - show filename, add space after messages, try to make message 1 line
+ " -width(0,0) - make sure there are no line breaks
+ " -t - set tab size
+ " -v - turn off verbosity
+ let makeprg = self.makeprgBuild({
+ \ 'args': (filereadable(config) ? syntastic#util#shescape(fnamemodify(config, ':p')) : ''),
+ \ 'args_after': ['-hFs1', '-width(0,0)', '-t' . &tabstop, '-format=%f:%l:%C:%t:%n:%m'] })
+
+ let errorformat =
+ \ '%E%f:%l:%v:Error:%n:%m,' .
+ \ '%W%f:%l:%v:Warning:%n:%m,' .
+ \ '%I%f:%l:%v:Info:%n:%m,' .
+ \ '%-G%.%#'
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'postprocess': ['cygwinRemoveCR'] })
+
+ for e in loclist
+ if e['type'] ==? 'I'
+ let e['type'] = 'W'
+ let e['subtype'] = 'Style'
+ endif
+ endfor
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'c',
+ \ 'name': 'pc_lint',
+ \ 'exec': 'lint-nt'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/c/sparse.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/c/sparse.vim
new file mode 100644
index 0000000..6c2ae4c
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/c/sparse.vim
@@ -0,0 +1,46 @@
+"============================================================================
+"File: sparse.vim
+"Description: Syntax checking plugin for syntastic.vim using sparse.pl
+"Maintainer: Daniel Walker
+"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:loaded_syntastic_c_sparse_checker")
+ finish
+endif
+let g:loaded_syntastic_c_sparse_checker = 1
+
+if !exists('g:syntastic_sparse_config_file')
+ let g:syntastic_sparse_config_file = '.syntastic_sparse_config'
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_c_sparse_GetLocList() dict
+ let makeprg = self.makeprgBuild({
+ \ 'args': syntastic#c#ReadConfig(g:syntastic_sparse_config_file),
+ \ 'args_after': '-ftabstop=' . &ts })
+
+ let errorformat = '%f:%l:%v: %trror: %m,%f:%l:%v: %tarning: %m,'
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'defaults': {'bufnr': bufnr("")},
+ \ 'returns': [0] })
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'c',
+ \ 'name': 'sparse'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/c/splint.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/c/splint.vim
new file mode 100644
index 0000000..e862eee
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/c/splint.vim
@@ -0,0 +1,55 @@
+"============================================================================
+"File: splint.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: LCD 47
+"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:loaded_syntastic_c_splint_checker")
+ finish
+endif
+let g:loaded_syntastic_c_splint_checker = 1
+
+if !exists('g:syntastic_splint_config_file')
+ let g:syntastic_splint_config_file = '.syntastic_splint_config'
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_c_splint_GetLocList() dict
+ let makeprg = self.makeprgBuild({
+ \ 'args': syntastic#c#ReadConfig(g:syntastic_splint_config_file),
+ \ 'args_after': '-showfunc -hints +quiet' })
+
+ let errorformat =
+ \ '%-G%f:%l:%v: %[%#]%[%#]%[%#] Internal Bug %.%#,' .
+ \ '%-G%f(%l\,%v): %[%#]%[%#]%[%#] Internal Bug %.%#,' .
+ \ '%W%f:%l:%v: %m,' .
+ \ '%W%f(%l\,%v): %m,' .
+ \ '%W%f:%l: %m,' .
+ \ '%W%f(%l): %m,' .
+ \ '%-C %\+In file included from %.%#,' .
+ \ '%-C %\+from %.%#,' .
+ \ '%+C %.%#'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'subtype': 'Style',
+ \ 'postprocess': ['compressWhitespace'],
+ \ 'defaults': {'type': 'W'} })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'c',
+ \ 'name': 'splint'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/cabal/cabal.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/cabal/cabal.vim
new file mode 100644
index 0000000..191969b
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/cabal/cabal.vim
@@ -0,0 +1,55 @@
+"============================================================================
+"File: cabal.vim
+"Description: Haskell package description (.cabal file) linting and syntax
+" validation via 'cabal check'
+"Maintainer: Ian D. Bollinger
+"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:loaded_syntastic_cabal_cabal_checker')
+ finish
+endif
+let g:loaded_syntastic_cabal_cabal_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_cabal_cabal_GetHighlightRegex(item)
+ let field = matchstr(a:item['text'], "\\vParse of field '\\zs[^']+")
+ if field != ''
+ return '\v\c^\s*' . field . '\s*:\s*\zs.*$'
+ endif
+ let field = matchstr(a:item['text'], "\\v(^|\\s)'\\zs[^']+\\ze'")
+ if field != ''
+ return '\V\c\<' . escape(field, '\') . '\>'
+ endif
+ return ''
+endfunction
+
+function! SyntaxCheckers_cabal_cabal_GetLocList() dict
+ let makeprg = self.getExecEscaped() . ' check'
+
+ let errorformat =
+ \ '%Ecabal: %f:%l: %m,' .
+ \ '%W* %m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'cwd': expand('%:p:h'),
+ \ 'preprocess': 'cabal',
+ \ 'defaults': {'bufnr': bufnr('')} })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'cabal',
+ \ 'name': 'cabal'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/chef/foodcritic.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/chef/foodcritic.vim
new file mode 100644
index 0000000..e777333
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/chef/foodcritic.vim
@@ -0,0 +1,39 @@
+"============================================================================
+"File: foodcritic.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Doug Ireton
+"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:loaded_syntastic_chef_foodcritic_checker")
+ finish
+endif
+let g:loaded_syntastic_chef_foodcritic_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_chef_foodcritic_GetLocList() dict
+ let makeprg = self.makeprgBuild({})
+
+ " FC023: Prefer conditional attributes: ./recipes/config.rb:49
+ let errorformat = 'FC%n: %m: %f:%l'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'chef',
+ \ 'name': 'foodcritic'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/co/coco.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/co/coco.vim
new file mode 100644
index 0000000..ca31e22
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/co/coco.vim
@@ -0,0 +1,47 @@
+"============================================================================
+"File: co.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Andrew Kelley
+"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:loaded_syntastic_co_coco_checker")
+ finish
+endif
+let g:loaded_syntastic_co_coco_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_co_coco_GetLocList() dict
+ let tmpdir = syntastic#util#tmpdir()
+ let makeprg = self.makeprgBuild({ 'args_after': '-c -o ' . tmpdir })
+
+ let errorformat =
+ \ '%EFailed at: %f,' .
+ \ '%ZSyntax%trror: %m on line %l,'.
+ \ '%EFailed at: %f,'.
+ \ '%Z%trror: Parse error on line %l: %m'
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+
+ call syntastic#util#rmrf(tmpdir)
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'co',
+ \ 'name': 'coco'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/cobol/cobc.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/cobol/cobc.vim
new file mode 100644
index 0000000..09fd7ea
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/cobol/cobc.vim
@@ -0,0 +1,47 @@
+"============================================================================
+"File: cobc.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: LCD 47
+"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:loaded_syntastic_cobol_cobc_checker')
+ finish
+endif
+let g:loaded_syntastic_cobol_cobc_checker = 1
+
+if !exists('g:syntastic_cobol_compiler_options')
+ let g:syntastic_cobol_compiler_options = ''
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_cobol_cobc_IsAvailable() dict
+ if !exists('g:syntastic_cobol_compiler')
+ let g:syntastic_cobol_compiler = self.getExec()
+ endif
+ call self.log('g:syntastic_cobol_compiler =', g:syntastic_cobol_compiler)
+ return executable(expand(g:syntastic_cobol_compiler))
+endfunction
+
+function! SyntaxCheckers_cobol_cobc_GetLocList() dict
+ return syntastic#c#GetLocList('cobol', 'cobc', {
+ \ 'errorformat': '%f:%l: %trror: %m',
+ \ 'main_flags': '-fsyntax-only' })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'cobol',
+ \ 'name': 'cobc' })
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/coffee/coffee.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/coffee/coffee.vim
new file mode 100644
index 0000000..c19c047
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/coffee/coffee.vim
@@ -0,0 +1,61 @@
+"============================================================================
+"File: coffee.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Lincoln Stoll
+"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 script requires CoffeeScript version 1.6.2 or newer.
+"
+
+if exists("g:loaded_syntastic_coffee_coffee_checker")
+ finish
+endif
+let g:loaded_syntastic_coffee_coffee_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_coffee_coffee_IsAvailable() dict
+ if !executable(self.getExec())
+ return 0
+ endif
+
+ let ver = syntastic#util#getVersion(self.getExecEscaped() . ' --version 2>' . syntastic#util#DevNull())
+ call self.log(self.getExec() . ' version = ', ver)
+
+ return syntastic#util#versionIsAtLeast(ver, [1, 6, 2])
+endfunction
+
+function! SyntaxCheckers_coffee_coffee_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'args_after': '-cp' })
+
+ let errorformat =
+ \ '%E%f:%l:%c: %trror: %m,' .
+ \ 'Syntax%trror: In %f\, %m on line %l,' .
+ \ '%EError: In %f\, Parse error on line %l: %m,' .
+ \ '%EError: In %f\, %m on line %l,' .
+ \ '%W%f(%l): lint warning: %m,' .
+ \ '%W%f(%l): warning: %m,' .
+ \ '%E%f(%l): SyntaxError: %m,' .
+ \ '%-Z%p^,' .
+ \ '%-G%.%#'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'coffee',
+ \ 'name': 'coffee'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/coffee/coffeelint.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/coffee/coffeelint.vim
new file mode 100644
index 0000000..17a656b
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/coffee/coffeelint.vim
@@ -0,0 +1,49 @@
+"============================================================================
+"File: coffeelint.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Lincoln Stoll
+"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:loaded_syntastic_coffee_coffeelint_checker")
+ finish
+endif
+let g:loaded_syntastic_coffee_coffeelint_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_coffee_coffeelint_GetLocList() dict
+ if !exists('s:coffeelint_new')
+ let ver = syntastic#util#getVersion(self.getExecEscaped() . ' --version')
+ call self.log(self.getExec() . ' version =', ver)
+ let s:coffeelint_new = syntastic#util#versionIsAtLeast(ver, [1, 4])
+ endif
+ let makeprg = self.makeprgBuild({ 'args_after': (s:coffeelint_new ? '--reporter csv' : '--csv') })
+
+ let errorformat =
+ \ '%f\,%l\,%\d%#\,%trror\,%m,' .
+ \ '%f\,%l\,%trror\,%m,' .
+ \ '%f\,%l\,%\d%#\,%tarn\,%m,' .
+ \ '%f\,%l\,%tarn\,%m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'subtype': 'Style',
+ \ 'returns': [0, 1] })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'coffee',
+ \ 'name': 'coffeelint'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/coq/coqtop.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/coq/coqtop.vim
new file mode 100644
index 0000000..292bbaa
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/coq/coqtop.vim
@@ -0,0 +1,40 @@
+"============================================================================
+"File: coqtop.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Matvey Aksenov
+"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:loaded_syntastic_coq_coqtop_checker")
+ finish
+endif
+let g:loaded_syntastic_coq_coqtop_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_coq_coqtop_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'args_after': '-noglob -batch -load-vernac-source' })
+
+ let errorformat =
+ \ '%AFile \"%f\"\, line %l\, characters %c\-%.%#\:,'.
+ \ '%C%m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'coq',
+ \ 'name': 'coqtop'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/cpp/clang_check.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/cpp/clang_check.vim
new file mode 100644
index 0000000..3eb7b80
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/cpp/clang_check.vim
@@ -0,0 +1,25 @@
+"============================================================================
+"File: clang_check.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Benjamin Bannier
+"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:loaded_syntastic_cpp_clang_check_checker")
+ finish
+endif
+let g:loaded_syntastic_cpp_clang_check_checker = 1
+
+runtime! syntax_checkers/c/*.vim
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'cpp',
+ \ 'name': 'clang_check',
+ \ 'exec': 'clang-check',
+ \ 'redirect': 'c/clang_check'})
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/cpp/clang_tidy.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/cpp/clang_tidy.vim
new file mode 100644
index 0000000..e426666
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/cpp/clang_tidy.vim
@@ -0,0 +1,25 @@
+"============================================================================
+"File: clang_tidy.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Benjamin Bannier
+"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:loaded_syntastic_cpp_clang_tidy_checker")
+ finish
+endif
+let g:loaded_syntastic_cpp_clang_tidy_checker = 1
+
+runtime! syntax_checkers/c/*.vim
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'cpp',
+ \ 'name': 'clang_tidy',
+ \ 'exec': 'clang-tidy',
+ \ 'redirect': 'c/clang_tidy'})
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/cpp/cppcheck.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/cpp/cppcheck.vim
new file mode 100644
index 0000000..db7cf43
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/cpp/cppcheck.vim
@@ -0,0 +1,24 @@
+"============================================================================
+"File: cppcheck.vim
+"Description: Syntax checking plugin for syntastic.vim using cppcheck.pl
+"Maintainer: LCD 47
+"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:loaded_syntastic_cpp_cppcheck_checker")
+ finish
+endif
+let g:loaded_syntastic_cpp_cppcheck_checker = 1
+
+runtime! syntax_checkers/c/*.vim
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'cpp',
+ \ 'name': 'cppcheck',
+ \ 'redirect': 'c/cppcheck'})
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/cpp/cpplint.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/cpp/cpplint.vim
new file mode 100644
index 0000000..682ab49
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/cpp/cpplint.vim
@@ -0,0 +1,52 @@
+"============================================================================
+"File: cpplint.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: LCD 47
+"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:loaded_syntastic_cpp_cpplint_checker")
+ finish
+endif
+let g:loaded_syntastic_cpp_cpplint_checker = 1
+
+if !exists('g:syntastic_cpp_cpplint_thres')
+ let g:syntastic_cpp_cpplint_thres = 5
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_cpp_cpplint_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'args': '--verbose=3' })
+
+ let errorformat = '%A%f:%l: %m [%t],%-G%.%#'
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'subtype': 'Style',
+ \ 'returns': [0, 1] })
+
+ " change error types according to the prescribed threshold
+ for e in loclist
+ let e['type'] = e['type'] < g:syntastic_cpp_cpplint_thres ? 'W' : 'E'
+ endfor
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'cpp',
+ \ 'name': 'cpplint',
+ \ 'exec': 'cpplint.py'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/cpp/gcc.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/cpp/gcc.vim
new file mode 100644
index 0000000..669e625
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/cpp/gcc.vim
@@ -0,0 +1,56 @@
+"============================================================================
+"File: cpp.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Gregor Uhlenheuer
+"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:loaded_syntastic_cpp_gcc_checker')
+ finish
+endif
+let g:loaded_syntastic_cpp_gcc_checker = 1
+
+if !exists('g:syntastic_cpp_compiler_options')
+ let g:syntastic_cpp_compiler_options = ''
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_cpp_gcc_IsAvailable() dict
+ if !exists('g:syntastic_cpp_compiler')
+ let g:syntastic_cpp_compiler = executable(self.getExec()) ? self.getExec() : 'clang++'
+ endif
+ call self.log('g:syntastic_cpp_compiler =', g:syntastic_cpp_compiler)
+ return executable(expand(g:syntastic_cpp_compiler))
+endfunction
+
+function! SyntaxCheckers_cpp_gcc_GetLocList() dict
+ return syntastic#c#GetLocList('cpp', 'gcc', {
+ \ 'errorformat':
+ \ '%-G%f:%s:,' .
+ \ '%f:%l:%c: %trror: %m,' .
+ \ '%f:%l:%c: %tarning: %m,' .
+ \ '%f:%l:%c: %m,'.
+ \ '%f:%l: %trror: %m,'.
+ \ '%f:%l: %tarning: %m,'.
+ \ '%f:%l: %m',
+ \ 'main_flags': '-x c++ -fsyntax-only',
+ \ 'header_flags': '-x c++',
+ \ 'header_names': '\m\.\(h\|hpp\|hh\)$' })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'cpp',
+ \ 'name': 'gcc',
+ \ 'exec': 'g++' })
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/cpp/oclint.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/cpp/oclint.vim
new file mode 100644
index 0000000..fa7551e
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/cpp/oclint.vim
@@ -0,0 +1,24 @@
+"============================================================================
+"File: oclint.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: "UnCO" Lin
+"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:loaded_syntastic_cpp_oclint_checker")
+ finish
+endif
+let g:loaded_syntastic_cpp_oclint_checker = 1
+
+runtime! syntax_checkers/c/*.vim
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'cpp',
+ \ 'name': 'oclint',
+ \ 'redirect': 'c/oclint'})
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/cpp/pc_lint.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/cpp/pc_lint.vim
new file mode 100644
index 0000000..95feab5
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/cpp/pc_lint.vim
@@ -0,0 +1,26 @@
+"============================================================================
+"File: pc_lint.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Steve Bragg
+"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:loaded_syntastic_cpp_pc_lint_checker")
+ finish
+endif
+let g:loaded_syntastic_cpp_pc_lint_checker = 1
+
+runtime! syntax_checkers/c/*.vim
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'cpp',
+ \ 'name': 'pc_lint',
+ \ 'exec': 'lint-nt',
+ \ 'redirect': 'c/pc_lint'})
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/cs/mcs.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/cs/mcs.vim
new file mode 100644
index 0000000..d7662a1
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/cs/mcs.vim
@@ -0,0 +1,39 @@
+"============================================================================
+"File: cs.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Daniel Walker
+"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:loaded_syntastic_cs_mcs_checker")
+ finish
+endif
+let g:loaded_syntastic_cs_mcs_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_cs_mcs_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'args_after': '--parse' })
+
+ let errorformat = '%f(%l\,%c): %trror %m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'defaults': {'bufnr': bufnr("")} })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'cs',
+ \ 'name': 'mcs'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/css/csslint.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/css/csslint.vim
new file mode 100644
index 0000000..bd7a18d
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/css/csslint.vim
@@ -0,0 +1,47 @@
+"============================================================================
+"File: css.vim
+"Description: Syntax checking plugin for syntastic.vim using `csslint` CLI tool (http://csslint.net).
+"Maintainer: Ory Band
+"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:loaded_syntastic_css_csslint_checker')
+ finish
+endif
+let g:loaded_syntastic_css_csslint_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_css_csslint_GetLocList() dict
+ call syntastic#log#deprecationWarn('csslint_options', 'css_csslint_args')
+
+ let makeprg = self.makeprgBuild({ 'args_after': '--format=compact' })
+
+ " 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
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'css',
+ \ 'name': 'csslint'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/css/phpcs.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/css/phpcs.vim
new file mode 100644
index 0000000..a3db98a
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/css/phpcs.vim
@@ -0,0 +1,25 @@
+"============================================================================
+"File: phpcs.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: LCD 47
+"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:loaded_syntastic_css_phpcs_checker")
+ finish
+endif
+let g:loaded_syntastic_css_phpcs_checker = 1
+
+runtime! syntax_checkers/php/*.vim
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'css',
+ \ 'name': 'phpcs',
+ \ 'redirect': 'php/phpcs'})
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/css/prettycss.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/css/prettycss.vim
new file mode 100644
index 0000000..8c28a68
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/css/prettycss.vim
@@ -0,0 +1,61 @@
+"============================================================================
+"File: prettycss.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: LCD 47
+"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:loaded_syntastic_css_prettycss_checker")
+ finish
+endif
+let g:loaded_syntastic_css_prettycss_checker = 1
+
+if !exists('g:syntastic_css_prettycss_sort')
+ let g:syntastic_css_prettycss_sort = 1
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_css_prettycss_GetHighlightRegex(item)
+ let term = matchstr(a:item["text"], '\m (\zs[^)]\+\ze)$')
+ if term != ''
+ let term = '\V' . escape(term, '\')
+ endif
+ return term
+endfunction
+
+function! SyntaxCheckers_css_prettycss_GetLocList() dict
+ let makeprg = self.makeprgBuild({})
+
+ " Print CSS Lint's error/warning messages from compact format. Ignores blank lines.
+ let errorformat =
+ \ '%EError: %m\, line %l\, char %c),' .
+ \ '%WWarning: %m\, line %l\, char %c),' .
+ \ '%-G%.%#'
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'defaults': {'bufnr': bufnr("")} })
+
+ for e in loclist
+ let e["text"] .= ')'
+ endfor
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'css',
+ \ 'name': 'prettycss'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/css/recess.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/css/recess.vim
new file mode 100644
index 0000000..6d043e4
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/css/recess.vim
@@ -0,0 +1,26 @@
+"============================================================================
+"File: recess.vim
+"Description: Syntax checking plugin for syntastic.vim using `recess`
+" (http://twitter.github.io/recess/).
+"Maintainer: Tim Carry
+"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:loaded_syntastic_css_recess_checker")
+ finish
+endif
+let g:loaded_syntastic_css_recess_checker = 1
+
+runtime! syntax_checkers/less/*.vim
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'css',
+ \ 'name': 'recess',
+ \ 'redirect': 'less/recess'})
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/cucumber/cucumber.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/cucumber/cucumber.vim
new file mode 100644
index 0000000..c06a06e
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/cucumber/cucumber.vim
@@ -0,0 +1,42 @@
+"============================================================================
+"File: cucumber.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Martin Grenfell
+"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:loaded_syntastic_cucumber_cucumber_checker")
+ finish
+endif
+let g:loaded_syntastic_cucumber_cucumber_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_cucumber_cucumber_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'args_after': '--dry-run --quiet --strict --format pretty' })
+
+ let errorformat =
+ \ '%f:%l:%c:%m,' .
+ \ '%W %.%# (%m),' .
+ \ '%-Z%f:%l:%.%#,'.
+ \ '%-G%.%#'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'cucumber',
+ \ 'name': 'cucumber'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/cuda/nvcc.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/cuda/nvcc.vim
new file mode 100644
index 0000000..b1f637c
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/cuda/nvcc.vim
@@ -0,0 +1,66 @@
+"============================================================================
+"File: cuda.vim
+"Description: Syntax checking plugin for syntastic.vim
+"
+"Author: Hannes Schulz
+"
+"============================================================================
+
+if exists("g:loaded_syntastic_cuda_nvcc_checker")
+ finish
+endif
+let g:loaded_syntastic_cuda_nvcc_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_cuda_nvcc_GetLocList() dict
+ if exists('g:syntastic_cuda_arch')
+ let arch_flag = '-arch=' . g:syntastic_cuda_arch
+ else
+ let arch_flag = ''
+ endif
+ let makeprg =
+ \ self.getExecEscaped() . ' ' . arch_flag .
+ \ ' --cuda -O0 -I . -Xcompiler -fsyntax-only ' .
+ \ syntastic#util#shexpand('%') . ' ' . syntastic#c#NullOutput()
+
+ 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('%') =~? '\m\%(.h\|.hpp\|.cuh\)$'
+ if exists('g:syntastic_cuda_check_header')
+ let makeprg =
+ \ 'echo > .syntastic_dummy.cu ; ' .
+ \ self.getExecEscaped() . ' ' . arch_flag .
+ \ ' --cuda -O0 -I . .syntastic_dummy.cu -Xcompiler -fsyntax-only -include ' .
+ \ syntastic#util#shexpand('%') . ' ' . syntastic#c#NullOutput()
+ else
+ return []
+ endif
+ endif
+
+ return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'cuda',
+ \ 'name': 'nvcc'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/d/dmd.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/d/dmd.vim
new file mode 100644
index 0000000..d751ede
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/d/dmd.vim
@@ -0,0 +1,60 @@
+"============================================================================
+"File: d.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Alfredo Di Napoli
+"License: Based on the original work of Gregor Uhlenheuer and his
+" cpp.vim checker so credits are dued.
+" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+" EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+" OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+" NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+" HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+" WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+" FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+" OTHER DEALINGS IN THE SOFTWARE.
+"
+"============================================================================
+
+if exists('g:loaded_syntastic_d_dmd_checker')
+ finish
+endif
+let g:loaded_syntastic_d_dmd_checker = 1
+
+if !exists('g:syntastic_d_compiler_options')
+ let g:syntastic_d_compiler_options = ''
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_d_dmd_IsAvailable() dict
+ if !exists('g:syntastic_d_compiler')
+ let g:syntastic_d_compiler = self.getExec()
+ endif
+ call self.log('g:syntastic_d_compiler =', g:syntastic_d_compiler)
+ return executable(expand(g:syntastic_d_compiler))
+endfunction
+
+function! SyntaxCheckers_d_dmd_GetLocList() dict
+ if !exists('g:syntastic_d_include_dirs')
+ let g:syntastic_d_include_dirs = filter(glob($HOME . '/.dub/packages/*', 1, 1), 'isdirectory(v:val)')
+ call map(g:syntastic_d_include_dirs, 'isdirectory(v:val . "/source") ? v:val . "/source" : v:val')
+ call add(g:syntastic_d_include_dirs, './source')
+ endif
+
+ return syntastic#c#GetLocList('d', 'dmd', {
+ \ 'errorformat':
+ \ '%-G%f:%s:,%f(%l): %m,' .
+ \ '%f:%l: %m',
+ \ 'main_flags': '-c -of' . syntastic#util#DevNull(),
+ \ 'header_names': '\m\.di$' })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'd',
+ \ 'name': 'dmd' })
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/dart/dartanalyzer.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/dart/dartanalyzer.vim
new file mode 100644
index 0000000..839fae9
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/dart/dartanalyzer.vim
@@ -0,0 +1,76 @@
+"============================================================================
+"File: dartanalyzer.vim
+"Description: Dart syntax checker - using dartanalyzer
+"Maintainer: Maksim Ryzhikov
+"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:loaded_syntastic_dart_dartanalyzer_checker")
+ finish
+endif
+let g:loaded_syntastic_dart_dartanalyzer_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_dart_dartanalyzer_GetHighlightRegex(error)
+ if a:error['len']
+ let lcol = a:error['col'] - 1
+ let rcol = a:error['col'] + a:error['len']
+ let ret = '\%>' . lcol . 'c\%<' . rcol . 'c'
+ else
+ let ret = ''
+ endif
+
+ return ret
+endfunction
+
+function! SyntaxCheckers_dart_dartanalyzer_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'args_after': '--machine' })
+
+ " Machine readable format looks like:
+ " SEVERITY|TYPE|ERROR_CODE|FILENAME|LINE_NUMBER|COLUMN|LENGTH|MESSAGE
+ " SEVERITY: (WARNING|ERROR)
+ " TYPE: (RESOLVER|STATIC_TYPE|...)
+ " ERROR_CODE: (NO_SUCH_TYPE|...)
+ " FILENAME: String
+ " LINE_NUMBER: int
+ " COLUMN: int
+ " LENGTH: int
+ " MESSAGE: String
+
+ " We use %n to grab the error length, for the syntax highlighter
+ let commonformat = '|%.%#|%.%#|%f|%l|%c|%n|%m'
+
+ let errorformat =
+ \ '%EERROR' . commonformat . ',' .
+ \ '%WWARNING' . commonformat
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'returns': [0, 1, 2, 3] })
+
+ for e in loclist
+ let e['text'] = substitute(e['text'], '\m\\\([\\|]\)', '\1', 'g')
+
+ " Undo the %n hack
+ let e['len'] = e['nr']
+ call remove(e, 'nr')
+ endfor
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'dart',
+ \ 'name': 'dartanalyzer' })
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/docbk/igor.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/docbk/igor.vim
new file mode 100644
index 0000000..46a12f6
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/docbk/igor.vim
@@ -0,0 +1,55 @@
+"============================================================================
+"File: igor.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: LCD 47
+"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:loaded_syntastic_docbk_igor_checker')
+ finish
+endif
+let g:loaded_syntastic_docbk_igor_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_docbk_igor_GetLocList() dict
+ let makeprg = self.makeprgBuild({})
+
+ let errorformat = '%f:%l:%m'
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'defaults': { 'type': 'W' },
+ \ 'subtype': 'Style',
+ \ 'returns': [0] })
+
+ let buf = bufnr('')
+ for e in loclist
+ " XXX: igor strips directories from filenames
+ let e['bufnr'] = buf
+
+ let e['hl'] = '\V' . escape( substitute(e['text'], '\m[^:]*:', '', ''), '\' )
+ let e['hl'] = substitute(e['hl'], '\V[', '\\zs', 'g')
+ let e['hl'] = substitute(e['hl'], '\V]', '\\ze', 'g')
+
+ " let e['text'] = substitute(e['text'], '\m:.*$', '', '')
+ endfor
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'docbk',
+ \ 'name': 'igor'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/docbk/xmllint.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/docbk/xmllint.vim
new file mode 100644
index 0000000..bfb9da0
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/docbk/xmllint.vim
@@ -0,0 +1,25 @@
+"============================================================================
+"File: docbk.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Martin Grenfell
+"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:loaded_syntastic_docbk_xmllint_checker")
+ finish
+endif
+let g:loaded_syntastic_docbk_xmllint_checker = 1
+
+runtime! syntax_checkers/xml/*.vim
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'docbk',
+ \ 'name': 'xmllint',
+ \ 'redirect': 'xml/xmllint'})
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/dustjs/swiffer.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/dustjs/swiffer.vim
new file mode 100644
index 0000000..0bdf281
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/dustjs/swiffer.vim
@@ -0,0 +1,38 @@
+"============================================================================
+"File: swiffer.vim
+"Description: Dust.js syntax checker - using swiffer
+"Maintainer: Steven Foote
+"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:loaded_syntastic_dustjs_swiffer_checker")
+ finish
+endif
+
+let g:loaded_syntastic_dustjs_swiffer_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_dustjs_swiffer_GetLocList() dict
+ let makeprg = self.makeprgBuild({})
+
+ let errorformat = '%E%f - Line %l\, Column %c: %m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+ endfunction
+
+call SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'dustjs',
+ \ 'name': 'swiffer'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/elixir/elixir.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/elixir/elixir.vim
new file mode 100644
index 0000000..c834b51
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/elixir/elixir.vim
@@ -0,0 +1,59 @@
+"============================================================================
+"File: elixir.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Richard Ramsden
+"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:loaded_syntastic_elixir_elixir_checker")
+ finish
+endif
+let g:loaded_syntastic_elixir_elixir_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+" TODO: we should probably split this into separate checkers
+function! SyntaxCheckers_elixir_elixir_IsAvailable() dict
+ call self.log(
+ \ 'executable("elixir") = ' . executable('elixir') . ', ' .
+ \ 'executable("mix") = ' . executable('mix'))
+ return executable('elixir') && executable('mix')
+endfunction
+
+function! SyntaxCheckers_elixir_elixir_GetLocList() dict
+ if !exists('g:syntastic_enable_elixir_checker') || !g:syntastic_enable_elixir_checker
+ call syntastic#log#error('checker elixir/elixir: checks disabled for security reasons; ' .
+ \ 'set g:syntastic_enable_elixir_checker to 1 to override')
+ return []
+ endif
+
+ let make_options = {}
+ let compile_command = 'elixir'
+ let mix_file = syntastic#util#findInParent('mix.exs', expand('%:p:h'))
+
+ if filereadable(mix_file)
+ let compile_command = 'mix compile'
+ let make_options['cwd'] = fnamemodify(mix_file, ':p:h')
+ endif
+
+ let make_options['makeprg'] = self.makeprgBuild({ 'exe': compile_command })
+
+ let make_options['errorformat'] = '** %*[^\ ] %f:%l: %m'
+
+ return SyntasticMake(make_options)
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'elixir',
+ \ 'name': 'elixir'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/erlang/erlang_check_file.erl b/vim/vim.symlink/bundle/syntastic/syntax_checkers/erlang/erlang_check_file.erl
new file mode 100755
index 0000000..367c110
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/erlang/erlang_check_file.erl
@@ -0,0 +1,66 @@
+#!/usr/bin/env escript
+-export([main/1]).
+
+main([FileName]) ->
+ LibDirs = (["ebin", "include", "src", "test"] ++
+ filelib:wildcard("{apps,deps,lib}/*/{ebin,include}")),
+ compile(FileName, LibDirs);
+
+main([FileName, "-rebar", Path, LibDirs]) ->
+ {ok, L} = file:consult(Path),
+ P = dict:from_list(L),
+ Root = filename:dirname(Path),
+
+ Lib1 = case dict:find(lib_dirs, P) of
+ {ok, X} -> lists:map(fun(Sub) -> Root ++ "/" ++ Sub end, X);
+ _ -> []
+ end,
+
+ Lib2 = case dict:find(sub_dirs, P) of
+ {ok, Y} -> lists:foldl(
+ fun(Sub,Sofar) ->
+ Sofar ++ [
+ Root ++ "/" ++ Sub,
+ Root ++ "/" ++ Sub ++ "/include",
+ Root ++ "/" ++ Sub ++ "/deps",
+ Root ++ "/" ++ Sub ++ "/lib"
+ ] end, [], Y);
+ _ -> []
+ end,
+
+ LibDirs1 = LibDirs ++ Lib1 ++ Lib2,
+ %io:format("~p~n", [LibDirs1]),
+ compile(FileName, LibDirs1);
+
+main([FileName | LibDirs]) ->
+ compile(FileName, LibDirs).
+
+compile(FileName, LibDirs) ->
+ Root = get_root(filename:dirname(FileName)),
+ ok = code:add_pathsa(LibDirs),
+ compile:file(FileName,
+ [warn_obsolete_guard,
+ warn_unused_import,
+ warn_shadow_vars,
+ warn_export_vars,
+ strong_validation,
+ report] ++
+ [{i, filename:join(Root, I)} || I <- LibDirs] ++
+ case lists:member("deps/pmod_transform/include", LibDirs) of
+ true -> [{parse_transform, pmod_pt}];
+ _ -> []
+ end
+ ).
+
+get_root(Dir) ->
+ Path = filename:split(filename:absname(Dir)),
+ filename:join(get_root(lists:reverse(Path), Path)).
+
+get_root([], Path) ->
+ Path;
+get_root(["src" | Tail], _Path) ->
+ lists:reverse(Tail);
+get_root(["test" | Tail], _Path) ->
+ lists:reverse(Tail);
+get_root([_ | Tail], Path) ->
+ get_root(Tail, Path).
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/erlang/escript.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/erlang/escript.vim
new file mode 100644
index 0000000..b472550
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/erlang/escript.vim
@@ -0,0 +1,61 @@
+"============================================================================
+"File: erlang.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Pawel Salata
+"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:loaded_syntastic_erlang_erlang_checker')
+ finish
+endif
+let g:loaded_syntastic_erlang_erlang_checker = 1
+
+if !exists('g:syntastic_erlc_include_path')
+ let g:syntastic_erlc_include_path = ''
+endif
+
+let s:check_file = syntastic#util#shescape(expand(':p:h') . syntastic#util#Slash() . 'erlang_check_file.erl')
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_erlang_escript_GetLocList() dict
+ if expand('%:e') ==# 'hrl'
+ return []
+ endif
+
+ let shebang = syntastic#util#parseShebang()
+ if shebang['exe'] ==# 'escript'
+ let args = '-s'
+ let post_args = ''
+ else
+ let args = s:check_file
+ let post_args = g:syntastic_erlc_include_path
+ endif
+ let makeprg = self.makeprgBuild({
+ \ 'args_after': args,
+ \ 'fname': syntastic#util#shexpand('%:p'),
+ \ 'post_args_after': post_args })
+
+ let errorformat =
+ \ '%W%f:%l: warning: %m,'.
+ \ '%E%f:%l: %m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'erlang',
+ \ 'name': 'escript'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/erlang/syntaxerl.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/erlang/syntaxerl.vim
new file mode 100644
index 0000000..91629c4
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/erlang/syntaxerl.vim
@@ -0,0 +1,42 @@
+"============================================================================
+"File: syntaxerl.vim
+"Description: Syntax checking plugin for syntastic.
+"Maintainer: locojay
+"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:loaded_syntastic_erlang_syntaxerl_checker")
+ finish
+endif
+
+let g:loaded_syntastic_erlang_syntaxerl_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+
+function! SyntaxCheckers_erlang_syntaxerl_GetLocList() dict
+
+ let makeprg = self.makeprgBuild({})
+
+ let errorformat =
+ \ '%W%f:%l: warning: %m,'.
+ \ '%E%f:%l: %m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'erlang',
+ \ 'name': 'syntaxerl'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/eruby/ruby.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/eruby/ruby.vim
new file mode 100644
index 0000000..96f9478
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/eruby/ruby.vim
@@ -0,0 +1,78 @@
+"============================================================================
+"File: ruby.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Martin Grenfell
+"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:loaded_syntastic_eruby_ruby_checker")
+ finish
+endif
+let g:loaded_syntastic_eruby_ruby_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_eruby_ruby_IsAvailable() dict
+ if !exists('g:syntastic_eruby_ruby_exec') && exists('g:syntastic_ruby_exec')
+ let g:syntastic_eruby_ruby_exec = g:syntastic_ruby_exec
+ call self.log('g:syntastic_eruby_ruby_exec =', g:syntastic_eruby_ruby_exec)
+ endif
+ return executable(self.getExec())
+endfunction
+
+function! SyntaxCheckers_eruby_ruby_GetLocList() dict
+ let fname = "'" . escape(expand('%'), "\\'") . "'"
+
+ " TODO: encodings became useful in ruby 1.9 :)
+ if syntastic#util#versionIsAtLeast(syntastic#util#getVersion(self.getExecEscaped(). ' --version'), [1, 9])
+ let enc = &fileencoding != '' ? &fileencoding : &encoding
+ let encoding_spec = ', :encoding => "' . (enc ==? 'utf-8' ? 'UTF-8' : 'BINARY') . '"'
+ else
+ let encoding_spec = ''
+ endif
+
+ "gsub fixes issue #7, rails has it's own eruby syntax
+ let makeprg =
+ \ self.getExecEscaped() . ' -rerb -e ' .
+ \ syntastic#util#shescape('puts ERB.new(File.read(' .
+ \ fname . encoding_spec .
+ \ ').gsub(''<%='',''<%''), nil, ''-'').src') .
+ \ ' | ' . self.getExecEscaped() . ' -w -c'
+
+ let errorformat = '%-G%\m%.%#warning: %\%%(possibly %\)%\?useless use of a literal in void context,'
+
+ " filter out lines starting with ...
+ " long lines are truncated and wrapped in ... %p then returns the wrong
+ " column offset
+ let errorformat .= '%-G%\%.%\%.%\%.%.%#,'
+
+ let errorformat .=
+ \ '%-GSyntax OK,'.
+ \ '%E-:%l: syntax error\, %m,%Z%p^,'.
+ \ '%W-:%l: warning: %m,'.
+ \ '%Z%p^,'.
+ \ '%-C%.%#'
+
+ let env = syntastic#util#isRunningWindows() ? {} : { 'RUBYOPT': '' }
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'env': env,
+ \ 'defaults': { 'bufnr': bufnr(""), 'vcol': 1 } })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'eruby',
+ \ 'name': 'ruby'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/fortran/gfortran.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/fortran/gfortran.vim
new file mode 100644
index 0000000..935b6bb
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/fortran/gfortran.vim
@@ -0,0 +1,52 @@
+"============================================================================
+"File: fortran.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Karl Yngve Lervåg
+"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:loaded_syntastic_fortran_gfortran_checker")
+ finish
+endif
+let g:loaded_syntastic_fortran_gfortran_checker=1
+
+if !exists('g:syntastic_fortran_compiler_options')
+ let g:syntastic_fortran_compiler_options = ''
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_fortran_gfortran_IsAvailable() dict
+ if !exists('g:syntastic_fortran_compiler')
+ let g:syntastic_fortran_compiler = self.getExec()
+ endif
+ call self.log('g:syntastic_fortran_compiler = ', g:syntastic_fortran_compiler)
+ return executable(expand(g:syntastic_fortran_compiler))
+endfunction
+
+function! SyntaxCheckers_fortran_gfortran_GetLocList() dict
+ return syntastic#c#GetLocList('fortran', 'gfortran', {
+ \ 'errorformat':
+ \ '%-C %#,'.
+ \ '%-C %#%.%#,'.
+ \ '%A%f:%l.%c:,'.
+ \ '%Z%trror: %m,'.
+ \ '%Z%tarning: %m,'.
+ \ '%-G%.%#',
+ \ 'main_flags': '-fsyntax-only' })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'fortran',
+ \ 'name': 'gfortran' })
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/glsl/cgc.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/glsl/cgc.vim
new file mode 100644
index 0000000..43b9069
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/glsl/cgc.vim
@@ -0,0 +1,77 @@
+"============================================================================
+"File: glsl.vim
+"Description: Syntax checker for OpenGL Shading Language
+"Maintainer: Joshua Rahm
+"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:loaded_syntastic_glsl_cgc_checker")
+ finish
+endif
+let g:loaded_syntastic_glsl_cgc_checker = 1
+
+let s:glsl_extensions = {
+ \ 'glslf': 'gpu_fp',
+ \ 'glslv': 'gpu_vp',
+ \ 'frag': 'gpu_fp',
+ \ 'vert': 'gpu_vp',
+ \ 'fp': 'gpu_fp',
+ \ 'vp': 'gpu_vp'
+ \ }
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_glsl_cgc_GetLocList() dict
+ let makeprg = self.makeprgBuild({
+ \ 'args_before': '-oglsl -profile ' . s:GetProfile(),
+ \ 'args': (exists('g:syntastic_glsl_options') ? ' ' . g:syntastic_glsl_options : '') })
+
+ let errorformat =
+ \ "%E%f(%l) : error %m," .
+ \ "%W%f(%l) : warning %m"
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+endfunction
+
+function! s:GetProfile()
+ let save_view = winsaveview()
+ let old_foldenable = &foldenable
+ let old_lazyredraw = &lazyredraw
+
+ let &lazyredraw = 1
+ let &foldenable = 0
+ call cursor(1, 1)
+
+ let magic = '\m\C^// profile:\s*'
+ let line = search(magic, 'c')
+
+ call winrestview(save_view)
+ let &foldenable = old_foldenable
+ let &lazyredraw = old_lazyredraw
+
+ if line
+ let profile = matchstr(getline(line), magic . '\zs.*')
+ else
+ let extensions = exists('g:syntastic_glsl_extensions') ? g:syntastic_glsl_extensions : s:glsl_extensions
+ let profile = get(extensions, tolower(expand('%:e')), 'gpu_vert')
+ endif
+
+ return profile
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \'filetype': 'glsl',
+ \'name': 'cgc'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/go/go.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/go/go.vim
new file mode 100644
index 0000000..d17c64d
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/go/go.vim
@@ -0,0 +1,92 @@
+"============================================================================
+"File: go.vim
+"Description: Check go syntax using 'gofmt -l' followed by 'go [build|test]'
+"Maintainer: Kamil Kisiel
+"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.
+"
+"============================================================================
+"
+" This syntax checker does not reformat your source code.
+" Use a BufWritePre autocommand to that end:
+" autocmd FileType go autocmd BufWritePre Fmt
+
+if exists("g:loaded_syntastic_go_go_checker")
+ finish
+endif
+let g:loaded_syntastic_go_go_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_go_go_IsAvailable() dict
+ return executable('go') && executable('gofmt')
+endfunction
+
+function! SyntaxCheckers_go_go_GetLocList() dict
+ " Check with gofmt first, since `go build` and `go test` might not report
+ " syntax errors in the current file if another file with syntax error is
+ " compiled first.
+ let makeprg = self.makeprgBuild({
+ \ 'exe': 'gofmt',
+ \ 'args': '-l',
+ \ 'tail': '> ' . syntastic#util#DevNull() })
+
+ let errorformat =
+ \ '%f:%l:%c: %m,' .
+ \ '%-G%.%#'
+
+ let errors = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'defaults': {'type': 'e'} })
+ if !empty(errors)
+ return errors
+ endif
+
+ " Test files, i.e. files with a name ending in `_test.go`, are not
+ " compiled by `go build`, therefore `go test` must be called for those.
+ if match(expand('%'), '\m_test\.go$') == -1
+ let makeprg = 'go build ' . syntastic#c#NullOutput()
+ let cleanup = 0
+ else
+ let makeprg = 'go test -c ' . syntastic#c#NullOutput()
+ let cleanup = 1
+ endif
+
+ " The first pattern is for warnings from C compilers.
+ let errorformat =
+ \ '%W%f:%l: warning: %m,' .
+ \ '%E%f:%l:%c:%m,' .
+ \ '%E%f:%l:%m,' .
+ \ '%C%\s%\+%m,' .
+ \ '%-G#%.%#'
+
+ " The go compiler needs to either be run with an import path as an
+ " argument or directly from the package directory. Since figuring out
+ " the proper import path is fickle, just cwd to the package.
+
+ let errors = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'cwd': expand('%:p:h'),
+ \ 'defaults': {'type': 'e'} })
+
+ if cleanup
+ call delete(expand('%:p:h') . syntastic#util#Slash() . expand('%:p:h:t') . '.test')
+ endif
+
+ return errors
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'go',
+ \ 'name': 'go'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/go/gofmt.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/go/gofmt.vim
new file mode 100644
index 0000000..fab051e
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/go/gofmt.vim
@@ -0,0 +1,45 @@
+"============================================================================
+"File: gofmt.vim
+"Description: Check go syntax using 'gofmt -l'
+"Maintainer: Brandon Thomson
+"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.
+"
+"============================================================================
+"
+" This syntax checker does not reformat your source code.
+" Use a BufWritePre autocommand to that end:
+" autocmd FileType go autocmd BufWritePre Fmt
+
+if exists("g:loaded_syntastic_go_gofmt_checker")
+ finish
+endif
+let g:loaded_syntastic_go_gofmt_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_go_gofmt_GetLocList() dict
+ let makeprg = self.makeprgBuild({
+ \ 'args_after': '-l',
+ \ 'tail_after': '> ' . syntastic#util#DevNull() })
+
+ let errorformat = '%f:%l:%c: %m,%-G%.%#'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'defaults': {'type': 'e'} })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'go',
+ \ 'name': 'gofmt'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/go/golint.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/go/golint.vim
new file mode 100644
index 0000000..f1c57d4
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/go/golint.vim
@@ -0,0 +1,42 @@
+"============================================================================
+"File: golint.vim
+"Description: Check go syntax using 'golint'
+"Maintainer: Hiroshi Ioka
+"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:loaded_syntastic_go_golint_checker")
+ finish
+endif
+let g:loaded_syntastic_go_golint_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_go_golint_GetLocList() dict
+ let makeprg = self.makeprgBuild({})
+
+ let errorformat =
+ \ '%f:%l:%c: %m,' .
+ \ '%-G%.%#'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'defaults': {'type': 'w'},
+ \ 'subtype': 'Style' })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'go',
+ \ 'name': 'golint'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/go/gotype.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/go/gotype.vim
new file mode 100644
index 0000000..6c49b99
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/go/gotype.vim
@@ -0,0 +1,46 @@
+"============================================================================
+"File: gotype.vim
+"Description: Perform syntactic and semantic checking of Go code using 'gotype'
+"Maintainer: luz
+"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:loaded_syntastic_go_gotype_checker")
+ finish
+endif
+let g:loaded_syntastic_go_gotype_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_go_gotype_GetLocList() dict
+ let makeprg = self.getExecEscaped() . ' .'
+
+ let errorformat =
+ \ '%f:%l:%c: %m,' .
+ \ '%-G%.%#'
+
+ " gotype needs the full go package to test types properly. Just cwd to
+ " the package for the same reasons specified in go.vim ("figuring out
+ " the import path is fickle").
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'cwd': expand('%:p:h'),
+ \ 'defaults': {'type': 'e'} })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'go',
+ \ 'name': 'gotype'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/go/govet.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/go/govet.vim
new file mode 100644
index 0000000..c4b7fd9
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/go/govet.vim
@@ -0,0 +1,51 @@
+"============================================================================
+"File: govet.vim
+"Description: Perform static analysis of Go code with the vet tool
+"Maintainer: Kamil Kisiel
+"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:loaded_syntastic_go_govet_checker")
+ finish
+endif
+let g:loaded_syntastic_go_govet_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_go_govet_IsAvailable() dict
+ return executable('go')
+endfunction
+
+function! SyntaxCheckers_go_govet_GetLocList() dict
+ let makeprg = 'go vet'
+
+ let errorformat =
+ \ '%Evet: %.%\+: %f:%l:%c: %m,' .
+ \ '%W%f:%l: %m,' .
+ \ '%-G%.%#'
+
+ " The go compiler needs to either be run with an import path as an
+ " argument or directly from the package directory. Since figuring out
+ " the proper import path is fickle, just cwd to the package.
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'cwd': expand('%:p:h'),
+ \ 'defaults': {'type': 'w'} })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'go',
+ \ 'name': 'govet'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/haml/haml.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/haml/haml.vim
new file mode 100644
index 0000000..a26fa6c
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/haml/haml.vim
@@ -0,0 +1,46 @@
+"============================================================================
+"File: haml.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Martin Grenfell
+"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:loaded_syntastic_haml_haml_checker')
+ finish
+endif
+let g:loaded_syntastic_haml_haml_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_haml_haml_IsAvailable() dict
+ call syntastic#log#deprecationWarn('haml_interpreter', 'haml_haml_exec')
+ return executable(self.getExec())
+endfunction
+
+function! SyntaxCheckers_haml_haml_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'args_after': '-c' })
+
+ let errorformat =
+ \ 'Haml error on line %l: %m,' .
+ \ 'Syntax error on line %l: %m,' .
+ \ '%-G%.%#'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'haml',
+ \ 'name': 'haml'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/haml/haml_lint.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/haml/haml_lint.vim
new file mode 100644
index 0000000..160d9a5
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/haml/haml_lint.vim
@@ -0,0 +1,37 @@
+"============================================================================
+"File: haml_lint.vim
+"Description: HAML style and syntax checker plugin for Syntastic
+"Maintainer: Shane da Silva
+"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:loaded_syntastic_haml_haml_lint_checker")
+ finish
+endif
+let g:loaded_syntastic_haml_haml_lint_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_haml_haml_lint_GetLocList() dict
+ let makeprg = self.makeprgBuild({})
+ let errorformat = '%f:%l [%t] %m'
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'subtype': 'Style'})
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'haml',
+ \ 'name': 'haml_lint',
+ \ 'exec': 'haml-lint' })
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/handlebars/handlebars.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/handlebars/handlebars.vim
new file mode 100644
index 0000000..adf4b61
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/handlebars/handlebars.vim
@@ -0,0 +1,43 @@
+"============================================================================
+"File: handlebars.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Martin Grenfell
+"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:loaded_syntastic_handlebars_handlebars_checker")
+ finish
+endif
+let g:loaded_syntastic_handlebars_handlebars_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_handlebars_handlebars_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'args_after': '-f ' . syntastic#util#DevNull() })
+
+ let errorformat =
+ \ '%EError: %m on line %l:,'.
+ \ "%EError: %m,".
+ \ '%Z%p^,' .
+ \ '%-G%.%#'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'postprocess': ['guards'],
+ \ 'defaults': {'bufnr': bufnr("")} })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'handlebars',
+ \ 'name': 'handlebars'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/haskell/ghc-mod.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/haskell/ghc-mod.vim
new file mode 100644
index 0000000..7d984d4
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/haskell/ghc-mod.vim
@@ -0,0 +1,83 @@
+"============================================================================
+"File: ghc-mod.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Anthony Carapetis
+"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:loaded_syntastic_haskell_ghc_mod_checker')
+ finish
+endif
+let g:loaded_syntastic_haskell_ghc_mod_checker = 1
+
+let s:ghc_mod_new = -1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_haskell_ghc_mod_IsAvailable() dict
+ if !executable(self.getExec())
+ return 0
+ endif
+
+ " ghc-mod 5.0.0 and later needs the "version" command to print the
+ " version. But the "version" command appeared in 4.1.0. Thus, we need to
+ " know the version in order to know how to find out the version. :)
+
+ " Try "ghc-mod version".
+ let ver = filter(split(system(self.getExecEscaped() . ' version'), '\n'), 'v:val =~# ''\m\sversion''')
+ if !len(ver)
+ " That didn't work. Try "ghc-mod" alone.
+ let ver = filter(split(system(self.getExecEscaped()), '\n'), 'v:val =~# ''\m\sversion''')
+ endif
+
+ if len(ver)
+ " Encouraged by the great success in finding out the version, now we
+ " need either a Vim that can handle NULs in system() output, or a
+ " ghc-mod that has the "--boundary" option.
+ let parsed_ver = syntastic#util#parseVersion(ver[0])
+ call self.log(self.getExec() . ' version =', parsed_ver)
+ let s:ghc_mod_new = syntastic#util#versionIsAtLeast(parsed_ver, [2, 1, 2])
+ else
+ call syntastic#log#error("checker haskell/ghc_mod: can't parse version string (abnormal termination?)")
+ let s:ghc_mod_new = -1
+ endif
+
+ return (s:ghc_mod_new >= 0) && (v:version >= 704 || s:ghc_mod_new)
+endfunction
+
+function! SyntaxCheckers_haskell_ghc_mod_GetLocList() dict
+ let makeprg = self.makeprgBuild({
+ \ 'exe': self.getExecEscaped() . ' check' . (s:ghc_mod_new ? ' --boundary=""' : '') })
+
+ 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,
+ \ 'postprocess': ['compressWhitespace'],
+ \ 'returns': [0] })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'haskell',
+ \ 'name': 'ghc_mod',
+ \ 'exec': 'ghc-mod' })
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/haskell/hdevtools.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/haskell/hdevtools.vim
new file mode 100644
index 0000000..978abd2
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/haskell/hdevtools.vim
@@ -0,0 +1,56 @@
+"============================================================================
+"File: hdevtools.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Anthony Carapetis
+"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:loaded_syntastic_haskell_hdevtools_checker")
+ finish
+endif
+let g:loaded_syntastic_haskell_hdevtools_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_haskell_hdevtools_GetLocList() dict
+ if !exists('g:syntastic_haskell_hdevtools_args') && exists('g:hdevtools_options')
+ call syntastic#log#oneTimeWarn('variable g:hdevtools_options is deprecated, ' .
+ \ 'please use g:syntastic_haskell_hdevtools_args instead')
+ let g:syntastic_haskell_hdevtools_args = g:hdevtools_options
+ endif
+
+ let makeprg = self.makeprgBuild({
+ \ 'exe_after': 'check',
+ \ 'fname': syntastic#util#shexpand('%:p') })
+
+ let errorformat =
+ \ '%-Z %#,'.
+ \ '%W%f:%l:%v: Warning: %m,'.
+ \ '%W%f:%l:%v: Warning:,'.
+ \ '%E%f:%l:%v: %m,'.
+ \ '%E%>%f:%l:%v:,'.
+ \ '%+C %#%m,'.
+ \ '%W%>%f:%l:%v:,'.
+ \ '%+C %#%tarning: %m,'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'defaults': {'vcol': 1},
+ \ 'postprocess': ['compressWhitespace'] })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'haskell',
+ \ 'name': 'hdevtools'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/haskell/hlint.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/haskell/hlint.vim
new file mode 100644
index 0000000..592e4d3
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/haskell/hlint.vim
@@ -0,0 +1,39 @@
+"============================================================================
+"File: hlint.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Nicolas Wu
+"License: BSD
+"============================================================================
+
+if exists('g:loaded_syntastic_haskell_hlint_checker')
+ finish
+endif
+let g:loaded_syntastic_haskell_hlint_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_haskell_hlint_GetLocList() dict
+ let makeprg = self.makeprgBuild({
+ \ 'fname': syntastic#util#shexpand('%:p')})
+
+ let errorformat =
+ \ '%E%f:%l:%v: Error: %m,' .
+ \ '%W%f:%l:%v: Warning: %m,' .
+ \ '%C%m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'defaults': {'vcol': 1},
+ \ 'postprocess': ['compressWhitespace'] })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'haskell',
+ \ 'name': 'hlint'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/haskell/scan.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/haskell/scan.vim
new file mode 100644
index 0000000..e2f4a13
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/haskell/scan.vim
@@ -0,0 +1,43 @@
+"============================================================================
+"File: scan.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: LCD 47
+"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:loaded_syntastic_haskell_scan_checker')
+ finish
+endif
+let g:loaded_syntastic_haskell_scan_checker = 1
+
+if !exists('g:syntastic_haskell_scan_sort')
+ let g:syntastic_haskell_scan_sort = 1
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_haskell_scan_GetLocList() dict
+ let makeprg = self.makeprgBuild({})
+
+ let errorformat = '%f:%l:%v: %m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'subtype': 'Style' })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'haskell',
+ \ 'name': 'scan'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/haxe/haxe.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/haxe/haxe.vim
new file mode 100644
index 0000000..3769627
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/haxe/haxe.vim
@@ -0,0 +1,63 @@
+"============================================================================
+"File: haxe.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: David Bernard
+"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:loaded_syntastic_haxe_haxe_checker")
+ finish
+endif
+let g:loaded_syntastic_haxe_haxe_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_haxe_haxe_GetLocList() dict
+ if exists('b:vaxe_hxml')
+ let hxml = b:vaxe_hxml
+ elseif exists('g:vaxe_hxml')
+ let hxml = g:vaxe_hxml
+ else
+ let hxml = syntastic#util#findInParent('*.hxml', expand('%:p:h'))
+ endif
+ let hxml = fnamemodify(hxml, ':p')
+
+ call self.log('hxml =', hxml)
+
+ if hxml != ''
+ let makeprg = self.makeprgBuild({
+ \ 'fname': syntastic#util#shescape(fnamemodify(hxml, ':t')) })
+
+ let errorformat = '%E%f:%l: characters %c-%n : %m'
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'cwd': fnamemodify(hxml, ':h') })
+
+ for e in loclist
+ let e['hl'] = '\%>' . e['col'] . 'c\%<' . (e['nr'] + 1) . 'c'
+ let e['col'] += 1
+ let e['nr'] = 0
+ endfor
+
+ return loclist
+ endif
+
+ return []
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'haxe',
+ \ 'name': 'haxe'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/hss/hss.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/hss/hss.vim
new file mode 100644
index 0000000..0f2ef52
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/hss/hss.vim
@@ -0,0 +1,38 @@
+"============================================================================
+"File: hss.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Justin Donaldson (jdonaldson@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.
+"
+"============================================================================
+
+if exists("g:loaded_syntastic_hss_hss_checker")
+ finish
+endif
+let g:loaded_syntastic_hss_hss_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_hss_hss_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'args_after' : '-output ' . syntastic#util#DevNull() })
+
+ let errorformat = '%E%f:%l: %m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'hss',
+ \ 'name': 'hss'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/html/jshint.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/html/jshint.vim
new file mode 100644
index 0000000..30c89b2
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/html/jshint.vim
@@ -0,0 +1,54 @@
+"============================================================================
+"File: jshint.vim
+"Description: Javascript syntax checker for HTML - using jshint
+"Maintainer: LCD 47
+"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:loaded_syntastic_html_jshint_checker')
+ finish
+endif
+let g:loaded_syntastic_html_jshint_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_html_jshint_IsAvailable() dict
+ call syntastic#log#deprecationWarn('jshint_exec', 'html_jshint_exec')
+ if !executable(self.getExec())
+ return 0
+ endif
+
+ let ver = syntastic#util#getVersion(self.getExecEscaped() . ' --version')
+ call self.log(self.getExec() . ' version =', ver)
+
+ return syntastic#util#versionIsAtLeast(ver, [2, 4])
+endfunction
+
+function! SyntaxCheckers_html_jshint_GetLocList() dict
+ call syntastic#log#deprecationWarn('html_jshint_conf', 'html_jshint_args',
+ \ "'--config ' . syntastic#util#shexpand(OLD_VAR)")
+
+ let makeprg = self.makeprgBuild({ 'args_after': '--verbose --extract always' })
+
+ let errorformat = '%A%f: line %l\, col %v\, %m \(%t%*\d\)'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'defaults': {'bufnr': bufnr('')},
+ \ 'returns': [0, 2] })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'html',
+ \ 'name': 'jshint'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/html/tidy.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/html/tidy.vim
new file mode 100644
index 0000000..2401fdd
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/html/tidy.vim
@@ -0,0 +1,208 @@
+"============================================================================
+"File: tidy.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Martin Grenfell
+"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: if you need to check HTML5 sources, you might consider installing a
+" fork of HTML Tidy, named "HTML Tidy for HTML5":
+"
+" http://w3c.github.io/tidy-html5/
+"
+" HTML Tidy for HTML5 can be used without changes by this checker, just install
+" it and point g:syntastic_html_tidy_exec to the executable.
+
+if exists("g:loaded_syntastic_html_tidy_checker")
+ finish
+endif
+let g:loaded_syntastic_html_tidy_checker = 1
+
+if !exists('g:syntastic_html_tidy_ignore_errors')
+ let g:syntastic_html_tidy_ignore_errors = []
+endif
+
+if !exists('g:syntastic_html_tidy_blocklevel_tags')
+ let g:syntastic_html_tidy_blocklevel_tags = []
+endif
+
+if !exists('g:syntastic_html_tidy_inline_tags')
+ let g:syntastic_html_tidy_inline_tags = []
+endif
+
+if !exists('g:syntastic_html_tidy_empty_tags')
+ let g:syntastic_html_tidy_empty_tags = []
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+" 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',
+ \ 'cp932': '-shiftjis',
+ \ 'sjis': '-shiftjis',
+ \ 'cp850': '-ibm858',
+ \ }
+ return get(TIDY_OPTS, &fileencoding, '-utf8')
+endfunction
+
+let s:IGNORE_ERRORS = [
+ \ " lacks \"summary\" attribute",
+ \ "not approved by W3C",
+ \ " proprietary attribute \"placeholder\"",
+ \ " proprietary attribute \"charset\"",
+ \ " lacks \"content\" attribute",
+ \ "inserting \"type\" attribute",
+ \ "proprietary attribute \"data-",
+ \ "missing declaration",
+ \ "inserting implicit ",
+ \ "inserting missing 'title' element",
+ \ "unescaped & or unknown entity",
+ \ " attribute \"type\" has invalid value",
+ \ "proprietary attribute \"role\"",
+ \ "proprietary attribute \"aria-activedescendant\"",
+ \ "proprietary attribute \"aria-atomic\"",
+ \ "proprietary attribute \"aria-autocomplete\"",
+ \ "proprietary attribute \"aria-busy\"",
+ \ "proprietary attribute \"aria-checked\"",
+ \ "proprietary attribute \"aria-controls\"",
+ \ "proprietary attribute \"aria-describedby\"",
+ \ "proprietary attribute \"aria-disabled\"",
+ \ "proprietary attribute \"aria-dropeffect\"",
+ \ "proprietary attribute \"aria-expanded\"",
+ \ "proprietary attribute \"aria-flowto\"",
+ \ "proprietary attribute \"aria-grabbed\"",
+ \ "proprietary attribute \"aria-haspopup\"",
+ \ "proprietary attribute \"aria-hidden\"",
+ \ "proprietary attribute \"aria-invalid\"",
+ \ "proprietary attribute \"aria-label\"",
+ \ "proprietary attribute \"aria-labelledby\"",
+ \ "proprietary attribute \"aria-level\"",
+ \ "proprietary attribute \"aria-live\"",
+ \ "proprietary attribute \"aria-multiline\"",
+ \ "proprietary attribute \"aria-multiselectable\"",
+ \ "proprietary attribute \"aria-orientation\"",
+ \ "proprietary attribute \"aria-owns\"",
+ \ "proprietary attribute \"aria-posinset\"",
+ \ "proprietary attribute \"aria-pressed\"",
+ \ "proprietary attribute \"aria-readonly\"",
+ \ "proprietary attribute \"aria-relevant\"",
+ \ "proprietary attribute \"aria-relevant\"",
+ \ "proprietary attribute \"aria-required\"",
+ \ "proprietary attribute \"aria-selected\"",
+ \ "proprietary attribute \"aria-setsize\"",
+ \ "proprietary attribute \"aria-sort\"",
+ \ "proprietary attribute \"aria-valuemax\"",
+ \ "proprietary attribute \"aria-valuemin\"",
+ \ "proprietary attribute \"aria-valuenow\"",
+ \ "proprietary attribute \"aria-valuetext\""
+ \ ]
+lockvar! s:IGNORE_ERRORS
+
+let s:BLOCKLEVEL_TAGS = [
+ \ "main",
+ \ "section",
+ \ "article",
+ \ "aside",
+ \ "header",
+ \ "footer",
+ \ "nav",
+ \ "figure",
+ \ "figcaption"
+ \ ]
+lockvar! s:BLOCKLEVEL_TAGS
+
+let s:INLINE_TAGS = [
+ \ "video",
+ \ "audio",
+ \ "source",
+ \ "embed",
+ \ "mark",
+ \ "progress",
+ \ "meter",
+ \ "time",
+ \ "ruby",
+ \ "rt",
+ \ "rp",
+ \ "canvas",
+ \ "command",
+ \ "details",
+ \ "datalist"
+ \ ]
+lockvar! s:INLINE_TAGS
+
+let s:EMPTY_TAGS = [
+ \ "wbr",
+ \ "keygen"
+ \ ]
+lockvar! s:EMPTY_TAGS
+
+function! s:IgnoreError(text)
+ for item in s:IGNORE_ERRORS + g:syntastic_html_tidy_ignore_errors
+ if stridx(a:text, item) != -1
+ return 1
+ endif
+ endfor
+ return 0
+endfunction
+
+function! s:NewTags(name)
+ return syntastic#util#shescape(join( s:{toupper(a:name)} + g:syntastic_html_tidy_{a:name}, ',' ))
+endfunction
+
+function! s:Args()
+ let args = s:TidyEncOptByFenc() .
+ \ ' --new-blocklevel-tags ' . s:NewTags('blocklevel_tags') .
+ \ ' --new-inline-tags ' . s:NewTags('inline_tags') .
+ \ ' --new-empty-tags ' . s:NewTags('empty_tags') .
+ \ ' -e'
+ return args
+endfunction
+
+function! SyntaxCheckers_html_tidy_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'args_after': s:Args() })
+
+ let errorformat =
+ \ '%Wline %l column %v - Warning: %m,' .
+ \ '%Eline %l column %v - Error: %m,' .
+ \ '%-G%.%#'
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'defaults': {'bufnr': bufnr("")},
+ \ 'returns': [0, 1, 2] })
+
+ " filter out valid HTML5 from the errors
+ for e in loclist
+ if e['valid'] && s:IgnoreError(e['text']) == 1
+ let e['valid'] = 0
+ endif
+ endfor
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'html',
+ \ 'name': 'tidy'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/html/validator.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/html/validator.vim
new file mode 100644
index 0000000..560470e
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/html/validator.vim
@@ -0,0 +1,69 @@
+"============================================================================
+"File: validator.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: LCD 47
+"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:loaded_syntastic_html_validator_checker")
+ finish
+endif
+let g:loaded_syntastic_html_validator_checker=1
+
+if !exists('g:syntastic_html_validator_api')
+ let g:syntastic_html_validator_api = 'http://validator.nu/'
+endif
+
+if !exists('g:syntastic_html_validator_parser')
+ let g:syntastic_html_validator_parser = ''
+endif
+
+if !exists('g:syntastic_html_validator_nsfilter')
+ let g:syntastic_html_validator_nsfilter = ''
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_html_validator_GetLocList() dict
+ let fname = syntastic#util#shexpand('%')
+ let makeprg = self.getExecEscaped() . ' -s --compressed -F out=gnu -F asciiquotes=yes' .
+ \ (g:syntastic_html_validator_parser != '' ? ' -F parser=' . g:syntastic_html_validator_parser : '') .
+ \ (g:syntastic_html_validator_nsfilter != '' ? ' -F nsfilter=' . g:syntastic_html_validator_nsfilter : '') .
+ \ ' -F doc=@' . fname . '\;type=text/html\;filename=' . fname . ' ' . g:syntastic_html_validator_api
+
+ let errorformat =
+ \ '%E"%f":%l: %trror: %m,' .
+ \ '%E"%f":%l-%\d%\+: %trror: %m,' .
+ \ '%E"%f":%l%\%.%c: %trror: %m,' .
+ \ '%E"%f":%l%\%.%c-%\d%\+%\%.%\d%\+: %trror: %m,' .
+ \ '%E"%f":%l: %trror fatal: %m,' .
+ \ '%E"%f":%l-%\d%\+: %trror fatal: %m,' .
+ \ '%E"%f":%l%\%.%c: %trror fatal: %m,' .
+ \ '%E"%f":%l%\%.%c-%\d%\+%\%.%\d%\+: %trror fatal: %m,' .
+ \ '%W"%f":%l: info %tarning: %m,' .
+ \ '%W"%f":%l-%\d%\+: info %tarning: %m,' .
+ \ '%W"%f":%l%\%.%c: info %tarning: %m,' .
+ \ '%W"%f":%l%\%.%c-%\d%\+%\%.%\d%\+: info %tarning: %m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'preprocess': 'validator',
+ \ 'returns': [0] })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'html',
+ \ 'name': 'validator',
+ \ 'exec': 'curl' })
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/html/w3.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/html/w3.vim
new file mode 100644
index 0000000..0390cdc
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/html/w3.vim
@@ -0,0 +1,62 @@
+"============================================================================
+"File: w3.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Martin Grenfell
+"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:loaded_syntastic_html_w3_checker")
+ finish
+endif
+let g:loaded_syntastic_html_w3_checker = 1
+
+if !exists('g:syntastic_html_w3_api')
+ let g:syntastic_html_w3_api = 'http://validator.w3.org/check'
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_html_w3_GetLocList() dict
+ let makeprg = self.getExecEscaped() . ' -s -F output=json ' .
+ \ '-F uploaded_file=@' . syntastic#util#shexpand('%:p') . '\;type=text/html ' .
+ \ g:syntastic_html_w3_api
+
+ let errorformat =
+ \ '%A %\+{,' .
+ \ '%C %\+"lastLine": %l\,%\?,' .
+ \ '%C %\+"lastColumn": %c\,%\?,' .
+ \ '%C %\+"message": "%m"\,%\?,' .
+ \ '%C %\+"type": "%trror"\,%\?,' .
+ \ '%-G %\+"type": "%tnfo"\,%\?,' .
+ \ '%C %\+"subtype": "%tarning"\,%\?,' .
+ \ '%Z %\+}\,,' .
+ \ '%-G%.%#'
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'defaults': {'bufnr': bufnr("")},
+ \ 'returns': [0] })
+
+ for e in loclist
+ let e['text'] = substitute(e['text'], '\m\\\([\"]\)', '\1', 'g')
+ endfor
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'html',
+ \ 'name': 'w3',
+ \ 'exec': 'curl' })
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/java/checkstyle.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/java/checkstyle.vim
new file mode 100644
index 0000000..6e05973
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/java/checkstyle.vim
@@ -0,0 +1,77 @@
+"============================================================================
+"File: checkstyle.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Dmitry Geurkov
+"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 checkstyle 5.5
+"============================================================================
+
+if exists("g:loaded_syntastic_java_checkstyle_checker")
+ finish
+endif
+let g:loaded_syntastic_java_checkstyle_checker = 1
+
+if !exists("g:syntastic_java_checkstyle_classpath")
+ let g:syntastic_java_checkstyle_classpath = 'checkstyle-5.5-all.jar'
+endif
+
+if !exists("g:syntastic_java_checkstyle_conf_file")
+ let g:syntastic_java_checkstyle_conf_file = 'sun_checks.xml'
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_java_checkstyle_IsAvailable() dict
+ if !executable(self.getExec())
+ return 0
+ endif
+
+ let classpath = expand(g:syntastic_java_checkstyle_classpath)
+ let conf_file = expand(g:syntastic_java_checkstyle_conf_file)
+ call self.log(
+ \ 'filereadable(' . string(classpath) . ') = ' . filereadable(classpath) . ', ' .
+ \ 'filereadable(' . string(conf_file) . ') = ' . filereadable(conf_file))
+
+ return filereadable(classpath) && filereadable(conf_file)
+endfunction
+
+function! SyntaxCheckers_java_checkstyle_GetLocList() dict
+
+ let fname = syntastic#util#shescape( expand('%:p:h') . syntastic#util#Slash() . expand('%:t') )
+
+ if has('win32unix')
+ let fname = substitute(system('cygpath -m ' . fname), '\m\%x00', '', 'g')
+ endif
+
+ let makeprg = self.makeprgBuild({
+ \ 'args_after': [
+ \ '-cp', expand(g:syntastic_java_checkstyle_classpath),
+ \ 'com.puppycrawl.tools.checkstyle.Main',
+ \ '-c', expand(g:syntastic_java_checkstyle_conf_file),
+ \ '-f', 'xml'],
+ \ 'fname': fname })
+
+ let errorformat = '%f:%t:%l:%c:%m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'preprocess': 'checkstyle',
+ \ 'subtype': 'Style' })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'java',
+ \ 'name': 'checkstyle',
+ \ 'exec': 'java'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/java/javac.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/java/javac.vim
new file mode 100644
index 0000000..3623d75
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/java/javac.vim
@@ -0,0 +1,415 @@
+"============================================================================
+"File: javac.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Jochen Keil
+" Dmitry Geurkov
+"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:loaded_syntastic_java_javac_checker')
+ finish
+endif
+let g:loaded_syntastic_java_javac_checker = 1
+let g:syntastic_java_javac_maven_pom_tags = ['build', 'properties']
+let g:syntastic_java_javac_maven_pom_properties = {}
+let s:has_maven = 0
+
+" Global Options
+if !exists('g:syntastic_java_javac_executable')
+ let g:syntastic_java_javac_executable = 'javac'
+endif
+
+if !exists('g:syntastic_java_maven_executable')
+ let g:syntastic_java_maven_executable = 'mvn'
+endif
+
+if !exists('g:syntastic_java_javac_options')
+ let g:syntastic_java_javac_options = '-Xlint'
+endif
+
+if !exists('g:syntastic_java_maven_options')
+ let g:syntastic_java_maven_options = ''
+endif
+
+if !exists('g:syntastic_java_javac_classpath')
+ let g:syntastic_java_javac_classpath = ''
+endif
+
+if !exists('g:syntastic_java_javac_delete_output')
+ let g:syntastic_java_javac_delete_output = 1
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! s:CygwinPath(path)
+ return substitute(system('cygpath -m ' . syntastic#util#shescape(a:path)), "\n", '', 'g')
+endfunction
+
+if !exists('g:syntastic_java_javac_temp_dir')
+ let g:syntastic_java_javac_temp_dir = syntastic#util#tmpdir()
+endif
+
+if !exists('g:syntastic_java_javac_autoload_maven_classpath')
+ let g:syntastic_java_javac_autoload_maven_classpath = 1
+endif
+
+if !exists('g:syntastic_java_javac_config_file_enabled')
+ let g:syntastic_java_javac_config_file_enabled = 0
+endif
+
+if !exists('g:syntastic_java_javac_config_file')
+ let g:syntastic_java_javac_config_file = '.syntastic_javac_config'
+endif
+
+if !exists('g:syntastic_java_javac_custom_classpath_command')
+ let g:syntastic_java_javac_custom_classpath_command = ''
+endif
+
+if !exists('g:syntastic_java_javac_maven_pom_ftime')
+ let g:syntastic_java_javac_maven_pom_ftime = {}
+endif
+
+if !exists('g:syntastic_java_javac_maven_pom_classpath')
+ let g:syntastic_java_javac_maven_pom_classpath = {}
+endif
+
+function! s:RemoveCarriageReturn(line)
+ return substitute(a:line, "\r", '', 'g')
+endfunction
+
+function! s:ClassSep()
+ return (syntastic#util#isRunningWindows() || has('win32unix')) ? ';' : ':'
+endfunction
+
+function! s:AddToClasspath(classpath, path)
+ if a:path == ''
+ return a:classpath
+ endif
+ return (a:classpath != '') ? a:classpath . s:ClassSep() . a:path : a:path
+endfunction
+
+function! s:SplitClasspath(classpath)
+ return split(a:classpath, s:ClassSep())
+endfunction
+
+function! s:LoadConfigFile()
+ if filereadable(expand(g:syntastic_java_javac_config_file))
+ exe 'source ' . fnameescape(expand(g:syntastic_java_javac_config_file))
+ endif
+endfunction
+
+function! s:SaveClasspath()
+ " build classpath from lines
+ let path = ''
+ let lines = getline(1, line('$'))
+ for l in lines
+ let path = s:AddToClasspath(path, l)
+ endfor
+ " save classpath to config file
+ if g:syntastic_java_javac_config_file_enabled
+ if filereadable(expand(g:syntastic_java_javac_config_file))
+ " load lines from config file
+ let lines = readfile(expand(g:syntastic_java_javac_config_file))
+ " strip g:syntastic_java_javac_classpath options from config file lines
+ let i = 0
+ while i < len(lines)
+ if match(lines[i], 'g:syntastic_java_javac_classpath') != -1
+ call remove(lines, i)
+ else
+ let i += 1
+ endif
+ endwhile
+ else
+ let lines = []
+ endif
+ " add new g:syntastic_java_javac_classpath option to config
+ call add(lines, 'let g:syntastic_java_javac_classpath = ' . string(path))
+ " save config file lines
+ call writefile(lines, expand(g:syntastic_java_javac_config_file))
+ endif
+ " set new classpath
+ let g:syntastic_java_javac_classpath = path
+ let &modified = 0
+endfunction
+
+function! s:EditClasspath()
+ let command = 'syntastic javac classpath'
+ let winnr = bufwinnr('^' . command . '$')
+ if winnr < 0
+ let path = []
+ let pathlines = split(g:syntastic_java_javac_classpath, "\n")
+ for p in pathlines
+ call extend(path, s:SplitClasspath(p))
+ endfor
+ execute (len(path) + 5) . 'sp ' . fnameescape(command)
+
+ augroup syntastic
+ autocmd BufWriteCmd call s:SaveClasspath() | bwipeout
+ augroup END
+
+ setlocal buftype=acwrite bufhidden=wipe nobuflisted noswapfile nowrap number
+ for p in path
+ call append(line('$') - 1, p)
+ endfor
+ let &modified = 0
+ else
+ execute winnr . 'wincmd w'
+ endif
+endfunction
+
+function! s:SaveConfig()
+ " get lines
+ let lines = getline(1, line('$'))
+ if g:syntastic_java_javac_config_file_enabled
+ " save config file lines
+ call writefile(lines, expand(g:syntastic_java_javac_config_file))
+ endif
+ let &modified = 0
+endfunction
+
+function! s:EditConfig()
+ let command = 'syntastic javac config'
+ let winnr = bufwinnr('^' . command . '$')
+ if winnr < 0
+ let lines = []
+ if filereadable(expand(g:syntastic_java_javac_config_file))
+ let lines = readfile(expand(g:syntastic_java_javac_config_file))
+ endif
+ execute (len(lines) + 5) . 'sp ' . fnameescape(command)
+
+ augroup syntastic
+ autocmd BufWriteCmd call s:SaveConfig() | bwipeout
+ augroup END
+
+ setlocal ft=vim buftype=acwrite bufhidden=wipe nobuflisted noswapfile nowrap number
+ for l in lines
+ call append(line('$') - 1, l)
+ endfor
+ let &modified = 0
+ else
+ execute winnr . 'wincmd w'
+ endif
+endfunction
+
+function! s:GetMavenProperties()
+ let mvn_properties = {}
+ let pom = findfile('pom.xml', '.;')
+ if s:has_maven && filereadable(pom)
+ if !has_key(g:syntastic_java_javac_maven_pom_properties, pom)
+ let mvn_cmd = syntastic#util#shexpand(g:syntastic_java_maven_executable) .
+ \ ' -f ' . syntastic#util#shescape(pom) .
+ \ ' ' . g:syntastic_java_maven_options
+ let mvn_is_managed_tag = 1
+ let mvn_settings_output = split(system(mvn_cmd . ' help:effective-pom'), "\n")
+ let current_path = 'project'
+ for line in mvn_settings_output
+ let matches = matchlist(line, '\m^\s*<\([a-zA-Z0-9\-\.]\+\)>\s*$')
+ if mvn_is_managed_tag && !empty(matches)
+ let mvn_is_managed_tag = index(g:syntastic_java_javac_maven_pom_tags, matches[1]) >= 0
+ let current_path .= '.' . matches[1]
+ else
+ let matches = matchlist(line, '\m^\s*\([a-zA-Z0-9\-\.]\+\)>\s*$')
+ if !empty(matches)
+ let mvn_is_managed_tag = index(g:syntastic_java_javac_maven_pom_tags, matches[1]) < 0
+ let current_path = substitute(current_path, '\m\.' . matches[1] . '$', '', '')
+ else
+ let matches = matchlist(line, '\m^\s*<\([a-zA-Z0-9\-\.]\+\)>\(.\+\)[a-zA-Z0-9\-\.]\+>\s*$')
+ if mvn_is_managed_tag && !empty(matches)
+ let mvn_properties[current_path . '.' . matches[1]] = matches[2]
+ endif
+ endif
+ endif
+ endfor
+ let g:syntastic_java_javac_maven_pom_properties[pom] = mvn_properties
+ endif
+ return g:syntastic_java_javac_maven_pom_properties[pom]
+ endif
+ return mvn_properties
+endfunction
+
+command! SyntasticJavacEditClasspath call s:EditClasspath()
+
+if g:syntastic_java_javac_config_file_enabled
+ command! SyntasticJavacEditConfig call s:EditConfig()
+endif
+
+function! s:GetMavenClasspath()
+ let pom = findfile('pom.xml', '.;')
+ if s:has_maven && filereadable(pom)
+ if !has_key(g:syntastic_java_javac_maven_pom_ftime, pom) || g:syntastic_java_javac_maven_pom_ftime[pom] != getftime(pom)
+ let mvn_cmd = syntastic#util#shexpand(g:syntastic_java_maven_executable) .
+ \ ' -f ' . syntastic#util#shescape(pom) .
+ \ ' ' . g:syntastic_java_maven_options
+ let mvn_classpath_output = split(system(mvn_cmd . ' dependency:build-classpath'), "\n")
+ let mvn_classpath = ''
+ let class_path_next = 0
+
+ for line in mvn_classpath_output
+ if class_path_next == 1
+ let mvn_classpath = s:RemoveCarriageReturn(line)
+ break
+ endif
+ if stridx(line, 'Dependencies classpath:') >= 0
+ let class_path_next = 1
+ endif
+ endfor
+
+ let mvn_properties = s:GetMavenProperties()
+
+ let output_dir = 'target/classes'
+ if has_key(mvn_properties, 'project.build.outputDirectory')
+ let output_dir = mvn_properties['project.build.outputDirectory']
+ endif
+ let mvn_classpath = s:AddToClasspath(mvn_classpath, output_dir)
+
+ let test_output_dir = 'target/test-classes'
+ if has_key(mvn_properties, 'project.build.testOutputDirectory')
+ let test_output_dir = mvn_properties['project.build.testOutputDirectory']
+ endif
+ let mvn_classpath = s:AddToClasspath(mvn_classpath, test_output_dir)
+
+ let g:syntastic_java_javac_maven_pom_ftime[pom] = getftime(pom)
+ let g:syntastic_java_javac_maven_pom_classpath[pom] = mvn_classpath
+ endif
+ return g:syntastic_java_javac_maven_pom_classpath[pom]
+ endif
+ return ''
+endfunction
+
+function! SyntaxCheckers_java_javac_IsAvailable() dict
+ let s:has_maven = executable(expand(g:syntastic_java_maven_executable))
+ return executable(expand(g:syntastic_java_javac_executable))
+endfunction
+
+function! s:MavenOutputDirectory()
+ let pom = findfile('pom.xml', '.;')
+ if s:has_maven && filereadable(pom)
+ let mvn_properties = s:GetMavenProperties()
+ let output_dir = getcwd()
+ if has_key(mvn_properties, 'project.properties.build.dir')
+ let output_dir = mvn_properties['project.properties.build.dir']
+ endif
+ if stridx(expand( '%:p:h' ), 'src.main.java') >= 0
+ let output_dir .= '/target/classes'
+ if has_key(mvn_properties, 'project.build.outputDirectory')
+ let output_dir = mvn_properties['project.build.outputDirectory']
+ endif
+ endif
+ if stridx(expand( '%:p:h' ), 'src.test.java') >= 0
+ let output_dir .= '/target/test-classes'
+ if has_key(mvn_properties, 'project.build.testOutputDirectory')
+ let output_dir = mvn_properties['project.build.testOutputDirectory']
+ endif
+ endif
+
+ if has('win32unix')
+ let output_dir = s:CygwinPath(output_dir)
+ endif
+ return output_dir
+ endif
+ return '.'
+endfunction
+
+function! SyntaxCheckers_java_javac_GetLocList() dict
+ let javac_opts = g:syntastic_java_javac_options
+
+ let output_dir = ''
+ if g:syntastic_java_javac_delete_output
+ let output_dir = g:syntastic_java_javac_temp_dir
+ let javac_opts .= ' -d ' . syntastic#util#shescape(output_dir)
+ endif
+
+ " load classpath from config file
+ if g:syntastic_java_javac_config_file_enabled
+ call s:LoadConfigFile()
+ endif
+
+ let javac_classpath = ''
+
+ " add classpathes to javac_classpath
+ for path in split(g:syntastic_java_javac_classpath, s:ClassSep())
+ if path != ''
+ try
+ let ps = glob(path, 0, 1)
+ catch
+ let ps = split(glob(path, 0), "\n")
+ endtry
+ if type(ps) == type([])
+ for p in ps
+ let javac_classpath = s:AddToClasspath(javac_classpath, p)
+ endfor
+ else
+ let javac_classpath = s:AddToClasspath(javac_classpath, ps)
+ endif
+ endif
+ endfor
+
+ if s:has_maven && g:syntastic_java_javac_autoload_maven_classpath
+ if !g:syntastic_java_javac_delete_output
+ let javac_opts .= ' -d ' . syntastic#util#shescape(s:MavenOutputDirectory())
+ endif
+ let javac_classpath = s:AddToClasspath(javac_classpath, s:GetMavenClasspath())
+ endif
+
+ " load custom classpath
+ if g:syntastic_java_javac_custom_classpath_command != ''
+ let lines = system(g:syntastic_java_javac_custom_classpath_command)
+ if syntastic#util#isRunningWindows() || has('win32unix')
+ let lines = substitute(lines, "\r\n", "\n", 'g')
+ endif
+ for l in split(lines, "\n")
+ let javac_classpath = s:AddToClasspath(javac_classpath, l)
+ endfor
+ endif
+
+ if javac_classpath != ''
+ let javac_opts .= ' -cp ' . syntastic#util#shexpand(javac_classpath)
+ endif
+
+ let fname = expand('%:p:h') . syntastic#util#Slash() . expand ('%:t')
+
+ if has('win32unix')
+ let fname = s:CygwinPath(fname)
+ endif
+
+ let makeprg = self.makeprgBuild({
+ \ 'args': javac_opts,
+ \ 'fname': syntastic#util#shescape(fname) })
+
+ " unashamedly stolen from *errorformat-javac* (quickfix.txt) and modified to include error types
+ let errorformat =
+ \ '%E%f:%l:\ error:\ %m,'.
+ \ '%W%f:%l:\ warning:\ %m,'.
+ \ '%A%f:%l:\ %m,'.
+ \ '%+Z%p^,'.
+ \ '%+C%.%#,'.
+ \ '%-G%.%#'
+
+ if g:syntastic_java_javac_delete_output
+ silent! call mkdir(output_dir, 'p')
+ endif
+ let errors = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'postprocess': ['cygwinRemoveCR'] })
+
+ if g:syntastic_java_javac_delete_output
+ call syntastic#util#rmrf(output_dir)
+ endif
+ return errors
+
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'java',
+ \ 'name': 'javac'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/javascript/closurecompiler.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/javascript/closurecompiler.vim
new file mode 100644
index 0000000..6a45fb8
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/javascript/closurecompiler.vim
@@ -0,0 +1,76 @@
+"============================================================================
+"File: closurecompiler.vim
+"Description: Javascript syntax checker - using Google Closure Compiler
+"Maintainer: Motohiro Takayama
+"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:loaded_syntastic_javascript_closurecompiler_checker")
+ finish
+endif
+let g:loaded_syntastic_javascript_closurecompiler_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_javascript_closurecompiler_IsAvailable() dict
+ call syntastic#log#deprecationWarn('javascript_closure_compiler_path', 'javascript_closurecompiler_path')
+
+ if !executable(self.getExec())
+ return 0
+ endif
+
+ let s:has_script = exists('g:syntastic_javascript_closurecompiler_script')
+ if s:has_script
+ return 1
+ endif
+
+ let cp = get(g:, 'syntastic_javascript_closurecompiler_path', '')
+ call self.log('g:syntastic_javascript_closurecompiler_path =', cp)
+
+ let jar = expand(cp)
+ call self.log('filereadable(' . string(jar) . ') = ' . filereadable(jar))
+
+ return filereadable(jar)
+endfunction
+
+function! SyntaxCheckers_javascript_closurecompiler_GetLocList() dict
+ call syntastic#log#deprecationWarn('javascript_closure_compiler_options', 'javascript_closurecompiler_args')
+ call syntastic#log#deprecationWarn('javascript_closure_compiler_file_list', 'javascript_closurecompiler_file_list')
+
+ let flist = expand(get(g:, 'syntastic_javascript_closurecompiler_file_list', ''))
+ if filereadable(flist)
+ let file_list = map( readfile(flist), 'expand(v:var)' )
+ else
+ let file_list = [expand('%')]
+ endif
+
+ let makeprg = self.makeprgBuild({
+ \ 'exe_after': (s:has_script ? [] : ['-jar', expand(g:syntastic_javascript_closurecompiler_path)]),
+ \ 'args_after': '--js',
+ \ 'fname': file_list })
+
+ let errorformat =
+ \ '%-GOK,'.
+ \ '%E%f:%l: ERROR - %m,'.
+ \ '%W%f:%l: WARNING - %m,'.
+ \ '%Z%p^'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'javascript',
+ \ 'name': 'closurecompiler',
+ \ 'exec': get(g:, 'syntastic_javascript_closurecompiler_script', 'java')})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/javascript/eslint.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/javascript/eslint.vim
new file mode 100644
index 0000000..acb9189
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/javascript/eslint.vim
@@ -0,0 +1,64 @@
+"============================================================================
+"File: eslint.vim
+"Description: Javascript syntax checker - using eslint
+"Maintainer: Maksim Ryzhikov
+"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:loaded_syntastic_javascript_eslint_checker')
+ finish
+endif
+let g:loaded_syntastic_javascript_eslint_checker = 1
+
+if !exists('g:syntastic_javascript_eslint_sort')
+ let g:syntastic_javascript_eslint_sort = 1
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_javascript_eslint_IsAvailable() dict
+ if !executable(self.getExec())
+ return 0
+ endif
+
+ let ver = syntastic#util#getVersion(self.getExecEscaped() . ' --version')
+ call self.log(self.getExec() . ' version =', ver)
+
+ return syntastic#util#versionIsAtLeast(ver, [0, 1])
+endfunction
+
+function! SyntaxCheckers_javascript_eslint_GetLocList() dict
+ call syntastic#log#deprecationWarn('javascript_eslint_conf', 'javascript_eslint_args',
+ \ "'--config ' . syntastic#util#shexpand(OLD_VAR)")
+
+ let makeprg = self.makeprgBuild({ 'args_before': '-f compact' })
+
+ let errorformat =
+ \ '%E%f: line %l\, col %c\, Error - %m,' .
+ \ '%W%f: line %l\, col %c\, Warning - %m'
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'postprocess': ['guards'] })
+
+ for e in loclist
+ let e['col'] += 1
+ endfor
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'javascript',
+ \ 'name': 'eslint'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/javascript/gjslint.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/javascript/gjslint.vim
new file mode 100644
index 0000000..1704ac2
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/javascript/gjslint.vim
@@ -0,0 +1,45 @@
+"============================================================================
+"File: gjslint.vim
+"Description: Javascript syntax checker - using gjslint
+"Maintainer: Martin Grenfell
+"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:loaded_syntastic_javascript_gjslint_checker")
+ finish
+endif
+let g:loaded_syntastic_javascript_gjslint_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_javascript_gjslint_GetLocList() dict
+ call syntastic#log#deprecationWarn('javascript_gjslint_conf', 'javascript_gjslint_args')
+
+ let makeprg = self.makeprgBuild({
+ \ 'args_after': '--nosummary --unix_mode --nodebug_indentation --nobeep' })
+
+ 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
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'javascript',
+ \ 'name': 'gjslint'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/javascript/jscs.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/javascript/jscs.vim
new file mode 100644
index 0000000..b1d3b75
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/javascript/jscs.vim
@@ -0,0 +1,44 @@
+"============================================================================
+"File: jscs.vim
+"Description: Javascript syntax checker - using jscs
+"Maintainer: LCD 47
+"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:loaded_syntastic_javascript_jscs_checker")
+ finish
+endif
+let g:loaded_syntastic_javascript_jscs_checker = 1
+
+if !exists('g:syntastic_javascript_jscs_sort')
+ let g:syntastic_javascript_jscs_sort = 1
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_javascript_jscs_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'args_after': '--no-colors --reporter checkstyle' })
+
+ let errorformat = '%f:%t:%l:%c:%m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'subtype': 'Style',
+ \ 'preprocess': 'checkstyle',
+ \ 'returns': [0, 2] })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'javascript',
+ \ 'name': 'jscs'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/javascript/jshint.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/javascript/jshint.vim
new file mode 100644
index 0000000..f0dc59f
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/javascript/jshint.vim
@@ -0,0 +1,64 @@
+"============================================================================
+"File: jshint.vim
+"Description: Javascript syntax checker - using jshint
+"Maintainer: Martin Grenfell
+"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:loaded_syntastic_javascript_jshint_checker')
+ finish
+endif
+let g:loaded_syntastic_javascript_jshint_checker = 1
+
+if !exists('g:syntastic_javascript_jshint_sort')
+ let g:syntastic_javascript_jshint_sort = 1
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_javascript_jshint_IsAvailable() dict
+ call syntastic#log#deprecationWarn('jshint_exec', 'javascript_jshint_exec')
+ if !executable(self.getExec())
+ return 0
+ endif
+
+ let s:jshint_version = syntastic#util#getVersion(self.getExecEscaped() . ' --version')
+ call self.log(self.getExec() . ' version =', s:jshint_version)
+
+ return syntastic#util#versionIsAtLeast(s:jshint_version, [1])
+endfunction
+
+function! SyntaxCheckers_javascript_jshint_GetLocList() dict
+ call syntastic#log#deprecationWarn('javascript_jshint_conf', 'javascript_jshint_args',
+ \ "'--config ' . syntastic#util#shexpand(OLD_VAR)")
+
+ if !exists('s:jshint_new')
+ let s:jshint_new = syntastic#util#versionIsAtLeast(s:jshint_version, [1, 1])
+ endif
+
+ let makeprg = self.makeprgBuild({ 'args_after': (s:jshint_new ? '--verbose ' : '') })
+
+ let errorformat = s:jshint_new ?
+ \ '%A%f: line %l\, col %v\, %m \(%t%*\d\)' :
+ \ '%E%f: line %l\, col %v\, %m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'defaults': {'bufnr': bufnr('')},
+ \ 'returns': [0, 2] })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'javascript',
+ \ 'name': 'jshint'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/javascript/jsl.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/javascript/jsl.vim
new file mode 100644
index 0000000..8f4148d
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/javascript/jsl.vim
@@ -0,0 +1,48 @@
+"============================================================================
+"File: jsl.vim
+"Description: Javascript syntax checker - using jsl
+"Maintainer: Martin Grenfell
+"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:loaded_syntastic_javascript_jsl_checker")
+ finish
+endif
+let g:loaded_syntastic_javascript_jsl_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_javascript_jsl_GetLocList() dict
+ call syntastic#log#deprecationWarn('javascript_jsl_conf', 'javascript_jsl_args',
+ \ "'-conf ' . syntastic#util#shexpand(OLD_VAR)")
+
+ let makeprg = self.makeprgBuild({
+ \ 'args_after': '-nologo -nofilelisting -nosummary -nocontext -process' })
+
+ 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
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'javascript',
+ \ 'name': 'jsl'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/javascript/jslint.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/javascript/jslint.vim
new file mode 100644
index 0000000..2be4839
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/javascript/jslint.vim
@@ -0,0 +1,51 @@
+"============================================================================
+"File: jslint.vim
+"Description: Javascript syntax checker - using jslint
+"Maintainer: Martin Grenfell
+"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:loaded_syntastic_javascript_jslint_checker")
+ finish
+endif
+
+let g:loaded_syntastic_javascript_jslint_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_javascript_jslint_GetHighlightRegex(item)
+ let term = matchstr(a:item['text'], '\mExpected .* and instead saw ''\zs.*\ze''')
+ if term != ''
+ let term = '\V\<' . escape(term, '\') . '\>'
+ endif
+ return term
+endfunction
+
+function! SyntaxCheckers_javascript_jslint_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'args': '--white --nomen --regexp --plusplus --bitwise --newcap --sloppy --vars' })
+
+ let errorformat =
+ \ '%E %##%\d%\+ %m,'.
+ \ '%-Z%.%#Line %l\, Pos %c,'.
+ \ '%-G%.%#'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'defaults': {'bufnr': bufnr("")} })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'javascript',
+ \ 'name': 'jslint'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/javascript/jsxhint.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/javascript/jsxhint.vim
new file mode 100644
index 0000000..1d24923
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/javascript/jsxhint.vim
@@ -0,0 +1,51 @@
+"============================================================================
+"File: jsxhint.vim
+"Description: Javascript syntax checker - using jsxhint
+"Maintainer: Thomas Boyt
+"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:loaded_syntastic_javascript_jsxhint_checker')
+ finish
+endif
+let g:loaded_syntastic_javascript_jsxhint_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_javascript_jsxhint_IsAvailable() dict
+ let jsxhint_version = system(self.getExecEscaped() . ' --version')
+ if v:shell_error || (jsxhint_version !~# '\m^JSXHint\>')
+ return 0
+ endif
+
+ let ver = syntastic#util#parseVersion(jsxhint_version)
+ call self.log(self.getExec() . ' version =', ver)
+
+ return syntastic#util#versionIsAtLeast(ver, [0, 4, 1])
+endfunction
+
+function! SyntaxCheckers_javascript_jsxhint_GetLocList() dict
+ let makeprg = self.makeprgBuild({
+ \ 'args_after': '--verbose' })
+
+ let errorformat = '%A%f: line %l\, col %v\, %m \(%t%*\d\)'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'defaults': {'bufnr': bufnr('')} })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'javascript',
+ \ 'name': 'jsxhint'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/json/jsonlint.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/json/jsonlint.vim
new file mode 100644
index 0000000..2b9ec45
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/json/jsonlint.vim
@@ -0,0 +1,43 @@
+"============================================================================
+"File: jsonlint.vim
+"Description: JSON syntax checker - using jsonlint
+"Maintainer: Miller Medeiros
+"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:loaded_syntastic_json_jsonlint_checker")
+ finish
+endif
+let g:loaded_syntastic_json_jsonlint_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_json_jsonlint_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'post_args_after': '--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
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'json',
+ \ 'name': 'jsonlint'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/json/jsonval.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/json/jsonval.vim
new file mode 100644
index 0000000..16e3009
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/json/jsonval.vim
@@ -0,0 +1,41 @@
+"============================================================================
+"File: jsonval.vim
+"Description: JSON syntax checker - using jsonval
+"Maintainer: Miller Medeiros
+"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:loaded_syntastic_json_jsonval_checker")
+ finish
+endif
+let g:loaded_syntastic_json_jsonval_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_json_jsonval_GetLocList() dict
+ " based on https://gist.github.com/1196345
+ let makeprg = self.makeprgBuild({})
+
+ let errorformat =
+ \ '%E%f:\ %m\ at\ line\ %l,' .
+ \ '%-G%.%#'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'defaults': {'bufnr': bufnr('')} })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'json',
+ \ 'name': 'jsonval'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/less/less-lint.coffee b/vim/vim.symlink/bundle/syntastic/syntax_checkers/less/less-lint.coffee
new file mode 100644
index 0000000..0b05e4a
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/less/less-lint.coffee
@@ -0,0 +1,41 @@
+#!/usr/bin/env node
+
+fs = require 'fs'
+less = require 'less'
+args = process.argv.slice(1)
+options = {}
+
+args = args.filter (arg) ->
+ match = arg.match(/^-I(.+)$/)
+ if match
+ options.paths.push(match[1]);
+ return false
+
+ match = arg.match(/^--?([a-z][\-0-9a-z]*)(?:=([^\s]+))?$/i)
+ if match
+ arg = match[1]
+ else
+ return arg
+
+ switch arg
+ when 'strict-imports' then options.strictImports = true
+ when 'include-path'
+ options.paths = match[2].split(if os.type().match(/Windows/) then ';' else ':')
+ .map (p) ->
+ if p
+ return path.resolve(process.cwd(), p)
+ when 'O0' then options.optimization = 0
+ when 'O1' then options.optimization = 1
+ when 'O2' then options.optimization = 2
+
+options.filename = args[1]
+
+parser = new(less.Parser) options
+
+fs.readFile(options.filename, 'utf-8', (err,data) ->
+ parser.parse(data, (err, tree) ->
+ if err
+ less.writeError err
+ process.exit(1)
+ )
+)
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/less/less-lint.js b/vim/vim.symlink/bundle/syntastic/syntax_checkers/less/less-lint.js
new file mode 100644
index 0000000..5abc653
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/less/less-lint.js
@@ -0,0 +1,57 @@
+// Generated by CoffeeScript 1.3.3
+(function() {
+ var args, fs, less, options, parser;
+
+ fs = require('fs');
+
+ less = require('less');
+
+ args = process.argv.slice(1);
+
+ options = {};
+
+ args = args.filter(function(arg) {
+ var match;
+ match = arg.match(/^-I(.+)$/);
+ if (match) {
+ options.paths.push(match[1]);
+ return false;
+ }
+ match = arg.match(/^--?([a-z][\-0-9a-z]*)(?:=([^\s]+))?$/i);
+ if (match) {
+ arg = match[1];
+ } else {
+ return arg;
+ }
+ switch (arg) {
+ case 'strict-imports':
+ return options.strictImports = true;
+ case 'include-path':
+ return options.paths = match[2].split(os.type().match(/Windows/) ? ';' : ':').map(function(p) {
+ if (p) {
+ return path.resolve(process.cwd(), p);
+ }
+ });
+ case 'O0':
+ return options.optimization = 0;
+ case 'O1':
+ return options.optimization = 1;
+ case 'O2':
+ return options.optimization = 2;
+ }
+ });
+
+ options.filename = args[1];
+
+ parser = new less.Parser(options);
+
+ fs.readFile(options.filename, 'utf-8', function(err, data) {
+ return parser.parse(data, function(err, tree) {
+ if (err) {
+ less.writeError(err);
+ return process.exit(1);
+ }
+ });
+ });
+
+}).call(this);
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/less/lessc.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/less/lessc.vim
new file mode 100644
index 0000000..51b7425
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/less/lessc.vim
@@ -0,0 +1,66 @@
+"============================================================================
+"File: less.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Julien Blanchard
+"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:loaded_syntastic_less_lessc_checker")
+ finish
+endif
+let g:loaded_syntastic_less_lessc_checker = 1
+
+if !exists("g:syntastic_less_options")
+ let g:syntastic_less_options = ""
+endif
+
+if !exists("g:syntastic_less_use_less_lint")
+ let g:syntastic_less_use_less_lint = 0
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+let s:node_file = 'node ' . syntastic#util#shescape(expand(':p:h') . syntastic#util#Slash() . 'less-lint.js')
+
+function! SyntaxCheckers_less_lessc_IsAvailable() dict
+ call self.log('g:syntastic_less_use_less_lint =', g:syntastic_less_use_less_lint)
+ return g:syntastic_less_use_less_lint ? executable('node') : executable(self.getExec())
+endfunction
+
+function! SyntaxCheckers_less_lessc_GetLocList() dict
+ if !exists('s:check_file')
+ let s:check_file = g:syntastic_less_use_less_lint ? s:node_file : self.getExecEscaped()
+ endif
+
+ let makeprg = self.makeprgBuild({
+ \ 'exe': s:check_file,
+ \ 'args': g:syntastic_less_options,
+ \ 'args_after': '--no-color',
+ \ 'tail': '> ' . syntastic#util#DevNull() })
+
+ let errorformat =
+ \ '%m in %f on line %l\, column %c:,' .
+ \ '%m in %f:%l:%c,' .
+ \ '%-G%.%#'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'postprocess': ['guards'],
+ \ 'defaults': {'bufnr': bufnr(""), 'text': "Syntax error"} })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'less',
+ \ 'name': 'lessc'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/less/recess.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/less/recess.vim
new file mode 100644
index 0000000..9294418
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/less/recess.vim
@@ -0,0 +1,44 @@
+"============================================================================
+"File: recess.vim
+"Description: Syntax checking plugin for syntastic.vim using `recess`
+" (http://twitter.github.io/recess/).
+"Maintainer: Tim Carry
+"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:loaded_syntastic_less_recess_checker')
+ finish
+endif
+let g:loaded_syntastic_less_recess_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_less_recess_GetLocList() dict
+ let makeprg = self.makeprgBuild({
+ \ 'post_args_after': '--format=compact --stripColors' })
+
+ let errorformat =
+ \ '%E%m in %f,' .
+ \ '%Z %#%l.%.%#,' .
+ \ '%f:%l:%m,' .
+ \ '%-G%.%#'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'less',
+ \ 'name': 'recess'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/lex/flex.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/lex/flex.vim
new file mode 100644
index 0000000..b8bc648
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/lex/flex.vim
@@ -0,0 +1,50 @@
+"============================================================================
+"File: lex.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: LCD 47
+"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:loaded_syntastic_lex_flex_checker")
+ finish
+endif
+let g:loaded_syntastic_lex_flex_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_lex_flex_GetHighlightRegex(item)
+ let term = matchstr(a:item['text'],
+ \ '\m^\(unrecognized %option\|bad \|bad character\( class expression\)\=\): \zs.*')
+ if term == ''
+ let term = matchstr(a:item['text'],
+ \ '\m^\(Definition value for\|undefined definition\) \zs{[^}]\+}\ze')
+ endif
+
+ return term != '' ? '\V' . escape(term, '\') : ''
+endfunction
+
+function! SyntaxCheckers_lex_flex_GetLocList() dict
+ let makeprg = self.makeprgBuild({
+ \ 'args_after': syntastic#c#NullOutput() })
+
+ let errorformat = '%f:%l: %m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'lex',
+ \ 'name': 'flex'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/limbo/limbo.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/limbo/limbo.vim
new file mode 100644
index 0000000..b501e3c
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/limbo/limbo.vim
@@ -0,0 +1,46 @@
+"============================================================================
+"File: limbo.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Alex Efros
+"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:loaded_syntastic_limbo_limbo_checker")
+ finish
+endif
+let g:loaded_syntastic_limbo_limbo_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_limbo_limbo_GetLocList() dict
+ let include = $INFERNO_HOME != '' ? '-I$INFERNO_HOME ' : ''
+ " don't generate .dis in current dir while checking syntax,
+ " .dis should be generated by `mk`
+ let output = filereadable('mkfile') ? (' ' . syntastic#c#NullOutput()) : ''
+
+ let makeprg = self.makeprgBuild({ 'args_before': include . '-w' . output })
+
+ let errorformat = '%E%f:%l:%m'
+ if expand('%') =~# '\m\.m$'
+ let errorformat = '%-G%f:%l: near ` EOF ` : no implementation module,' . errorformat
+ endif
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'limbo',
+ \ 'name': 'limbo' })
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/lisp/clisp.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/lisp/clisp.vim
new file mode 100644
index 0000000..7271999
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/lisp/clisp.vim
@@ -0,0 +1,57 @@
+"============================================================================
+"File: lisp.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Karl Yngve Lervåg
+"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:loaded_syntastic_lisp_clisp_checker")
+ finish
+endif
+let g:loaded_syntastic_lisp_clisp_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_lisp_clisp_GetLocList() dict
+ let tmpdir = syntastic#util#tmpdir()
+ let out = tmpdir != '.' ? ('-o ' . syntastic#util#shescape(tmpdir . syntastic#util#Slash() . 'syntastic_' . getpid())) : ''
+
+ let makeprg = self.makeprgBuild({
+ \ 'args_after': '-q',
+ \ 'fname_before': '-c',
+ \ 'post_args_after': out })
+
+ let errorformat =
+ \ '%-G;%.%#,' .
+ \ '%W%>WARNING:%.%# line %l : %m,' .
+ \ '%Z %#%m,' .
+ \ '%W%>WARNING:%.%# lines %l%\%.%\%.%\d%\+ : %m,' .
+ \ '%Z %#%m,' .
+ \ '%E%>The following functions were %m,' .
+ \ '%Z %m,' .
+ \ '%-G%.%#'
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'defaults': {'bufnr': bufnr('')} })
+
+ call syntastic#util#rmrf(tmpdir)
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'lisp',
+ \ 'name': 'clisp'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/llvm/llvm.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/llvm/llvm.vim
new file mode 100644
index 0000000..c65a167
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/llvm/llvm.vim
@@ -0,0 +1,39 @@
+"============================================================================
+"File: llvm.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Andrew Kelley
+"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:loaded_syntastic_llvm_llvm_checker")
+ finish
+endif
+let g:loaded_syntastic_llvm_llvm_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_llvm_llvm_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'args_after': syntastic#c#NullOutput() })
+
+ let errorformat = 'llc: %f:%l:%c: %trror: %m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'llvm',
+ \ 'name': 'llvm',
+ \ 'exec': 'llc'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/lua/luac.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/lua/luac.vim
new file mode 100644
index 0000000..5805e78
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/lua/luac.vim
@@ -0,0 +1,65 @@
+"============================================================================
+"File: lua.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Gregor Uhlenheuer
+"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:loaded_syntastic_lua_luac_checker")
+ finish
+endif
+let g:loaded_syntastic_lua_luac_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_lua_luac_GetHighlightRegex(pos)
+ let result = ''
+ let near = matchstr(a:pos['text'], '\mnear ''\zs[^'']\+\ze''')
+ if near != ''
+ if near ==# ''
+ let p = getpos('$')
+ let a:pos['lnum'] = p[1]
+ let a:pos['col'] = p[2]
+ let result = '\%' . p[2] . 'c'
+ else
+ let result = '\V' . escape(near, '\')
+ endif
+
+ " XXX the following piece of code is evil, and is likely to break
+ " in future versions of syntastic; enable it at your own risk :)
+
+ "let open = matchstr(a:pos['text'], '\m(to close ''\zs[^'']\+\ze'' at line [0-9]\+)')
+ "if open != ''
+ " let line = str2nr(matchstr(a:pos['text'], '\m(to close ''[^'']\+'' at line \zs[0-9]\+\ze)'))
+ " let group = a:pos['type'] ==? 'E' ? 'SyntasticError' : 'SyntasticWarning'
+ " call matchadd(group, '\%' . line . 'l\V' . escape(open, '\'))
+ "endif
+ endif
+ return result
+endfunction
+
+function! SyntaxCheckers_lua_luac_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'args_after': '-p' })
+
+ let errorformat = 'luac: %#%f:%l: %m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'defaults': { 'bufnr': bufnr(''), 'type': 'E' } })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'lua',
+ \ 'name': 'luac'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/markdown/mdl.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/markdown/mdl.vim
new file mode 100644
index 0000000..781a5e3
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/markdown/mdl.vim
@@ -0,0 +1,45 @@
+"============================================================================
+"File: mdl.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Charles Beynon
+"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:loaded_syntastic_markdown_mdl_checker")
+ finish
+endif
+let g:loaded_syntastic_markdown_mdl_checker = 1
+
+if !exists('g:syntastic_markdown_mdl_sort')
+ let g:syntastic_markdown_mdl_sort = 1
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_markdown_mdl_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'args': '--warnings' })
+
+ let errorformat =
+ \ '%E%f:%l: %m,'.
+ \ '%W%f: Kramdown Warning: %m found on line %l'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'subtype': 'Style' })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'markdown',
+ \ 'name': 'mdl'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/matlab/mlint.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/matlab/mlint.vim
new file mode 100644
index 0000000..1b15eea
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/matlab/mlint.vim
@@ -0,0 +1,41 @@
+"============================================================================
+"File: matlab.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Jason Graham
+"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:loaded_syntastic_matlab_mlint_checker")
+ finish
+endif
+let g:loaded_syntastic_matlab_mlint_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_matlab_mlint_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'args_after': '-id $*' })
+
+ 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
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'matlab',
+ \ 'name': 'mlint'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/nasm/nasm.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/nasm/nasm.vim
new file mode 100644
index 0000000..65bf9aa
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/nasm/nasm.vim
@@ -0,0 +1,41 @@
+"============================================================================
+"File: nasm.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: HÃ¥vard Pettersson
+"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:loaded_syntastic_nasm_nasm_checker")
+ finish
+endif
+let g:loaded_syntastic_nasm_nasm_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_nasm_nasm_GetLocList() dict
+ let makeprg = self.makeprgBuild({
+ \ 'args_after': '-X gnu -f elf' .
+ \ ' -I ' . syntastic#util#shescape(expand("%:p:h") . "/") .
+ \ ' ' . syntastic#c#NullOutput() })
+
+ let errorformat = '%f:%l: %t%*[^:]: %m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'nasm',
+ \ 'name': 'nasm'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/nroff/igor.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/nroff/igor.vim
new file mode 100644
index 0000000..4c36b49
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/nroff/igor.vim
@@ -0,0 +1,25 @@
+"============================================================================
+"File: igor.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: LCD 47
+"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:loaded_syntastic_nroff_igor_checker')
+ finish
+endif
+let g:loaded_syntastic_nroff_igor_checker = 1
+
+runtime! syntax_checkers/docbk/*.vim
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'nroff',
+ \ 'name': 'igor',
+ \ 'redirect': 'docbk/igor'})
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/nroff/mandoc.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/nroff/mandoc.vim
new file mode 100644
index 0000000..28085d5
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/nroff/mandoc.vim
@@ -0,0 +1,41 @@
+"============================================================================
+"File: mandoc.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: LCD 47
+"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:loaded_syntastic_nroff_mandoc_checker")
+ finish
+endif
+let g:loaded_syntastic_nroff_mandoc_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_nroff_mandoc_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'args_after': '-Tlint' })
+
+ let errorformat =
+ \ '%E%f:%l:%c: %tRROR: %m,' .
+ \ '%W%f:%l:%c: %tARNING: %m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'returns': [0, 2, 3, 4] })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'nroff',
+ \ 'name': 'mandoc'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/objc/gcc.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/objc/gcc.vim
new file mode 100644
index 0000000..d44eac1
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/objc/gcc.vim
@@ -0,0 +1,59 @@
+"============================================================================
+"File: objc.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Gregor Uhlenheuer
+"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:loaded_syntastic_objc_gcc_checker')
+ finish
+endif
+let g:loaded_syntastic_objc_gcc_checker = 1
+
+if !exists('g:syntastic_objc_compiler_options')
+ let g:syntastic_objc_compiler_options = '-std=gnu99'
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_objc_gcc_IsAvailable() dict
+ if !exists('g:syntastic_objc_compiler')
+ let g:syntastic_objc_compiler = executable(self.getExec()) ? self.getExec() : 'clang'
+ endif
+ call self.log('g:syntastic_objc_compiler =', g:syntastic_objc_compiler)
+ return executable(expand(g:syntastic_objc_compiler))
+endfunction
+
+function! SyntaxCheckers_objc_gcc_GetLocList() dict
+ return syntastic#c#GetLocList('objc', 'gcc', {
+ \ '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: %trror: %m,' .
+ \ '%f:%l:%c: %tarning: %m,' .
+ \ '%f:%l:%c: %m,' .
+ \ '%f:%l: %trror: %m,' .
+ \ '%f:%l: %tarning: %m,' .
+ \ '%f:%l: %m',
+ \ 'main_flags': '-x objective-c -fsyntax-only',
+ \ 'header_flags': '-x objective-c-header -lobjc',
+ \ 'header_names': '\m\.h$' })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'objc',
+ \ 'name': 'gcc' })
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/objc/oclint.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/objc/oclint.vim
new file mode 100644
index 0000000..1ec8fbf
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/objc/oclint.vim
@@ -0,0 +1,24 @@
+"============================================================================
+"File: oclint.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: "UnCO" Lin
+"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:loaded_syntastic_objc_oclint_checker")
+ finish
+endif
+let g:loaded_syntastic_objc_oclint_checker = 1
+
+runtime! syntax_checkers/c/*.vim
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'objc',
+ \ 'name': 'oclint',
+ \ 'redirect': 'c/oclint'})
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/objcpp/gcc.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/objcpp/gcc.vim
new file mode 100644
index 0000000..13ff8c1
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/objcpp/gcc.vim
@@ -0,0 +1,59 @@
+"============================================================================
+"File: objcpp.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Gregor Uhlenheuer
+"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:loaded_syntastic_objcpp_gcc_checker')
+ finish
+endif
+let g:loaded_syntastic_objcpp_gcc_checker = 1
+
+if !exists('g:syntastic_objcpp_compiler_options')
+ let g:syntastic_objcpp_compiler_options = '-std=gnu99'
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_objcpp_gcc_IsAvailable() dict
+ if !exists('g:syntastic_c_compiler')
+ let g:syntastic_objcpp_compiler = executable(self.getExec()) ? self.getExec() : 'clang'
+ endif
+ call self.log('g:syntastic_objcpp_compiler =', g:syntastic_objcpp_compiler)
+ return executable(expand(g:syntastic_objcpp_compiler))
+endfunction
+
+function! SyntaxCheckers_objcpp_gcc_GetLocList() dict
+ return syntastic#c#GetLocList('objcpp', 'gcc', {
+ \ '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: %trror: %m,' .
+ \ '%f:%l:%c: %tarning: %m,' .
+ \ '%f:%l:%c: %m,' .
+ \ '%f:%l: %trror: %m,' .
+ \ '%f:%l: %tarning: %m,' .
+ \ '%f:%l: %m',
+ \ 'main_flags': '-x objective-c++ -fsyntax-only',
+ \ 'header_flags': '-x objective-c++-header -lobjc',
+ \ 'header_names': '\m\.h$' })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'objcpp',
+ \ 'name': 'gcc' })
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/objcpp/oclint.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/objcpp/oclint.vim
new file mode 100644
index 0000000..7842c16
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/objcpp/oclint.vim
@@ -0,0 +1,24 @@
+"============================================================================
+"File: oclint.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: "UnCO" Lin
+"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:loaded_syntastic_objcpp_oclint_checker")
+ finish
+endif
+let g:loaded_syntastic_objcpp_oclint_checker = 1
+
+runtime! syntax_checkers/c/*.vim
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'objcpp',
+ \ 'name': 'oclint',
+ \ 'redirect': 'c/oclint'})
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/ocaml/camlp4o.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/ocaml/camlp4o.vim
new file mode 100644
index 0000000..b602907
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/ocaml/camlp4o.vim
@@ -0,0 +1,118 @@
+"============================================================================
+"File: ocaml.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Török Edwin
+"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:loaded_syntastic_ocaml_camlp4o_checker")
+ finish
+endif
+let g:loaded_syntastic_ocaml_camlp4o_checker = 1
+
+if exists('g:syntastic_ocaml_camlp4r') && g:syntastic_ocaml_camlp4r != 0
+ let s:ocamlpp="camlp4r"
+else
+ let s:ocamlpp="camlp4o"
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_ocaml_camlp4o_IsAvailable() dict
+ return executable(s:ocamlpp)
+endfunction
+
+if !exists('g:syntastic_ocaml_use_ocamlc') || !executable('ocamlc')
+ let g:syntastic_ocaml_use_ocamlc = 0
+endif
+
+if !exists('g:syntastic_ocaml_use_janestreet_core')
+ let g:syntastic_ocaml_use_janestreet_core = 0
+endif
+
+if !exists('g:syntastic_ocaml_use_ocamlbuild') || !executable("ocamlbuild")
+ let g:syntastic_ocaml_use_ocamlbuild = 0
+endif
+
+function! SyntaxCheckers_ocaml_camlp4o_GetLocList() dict
+ let makeprg = s:GetMakeprg()
+ if makeprg == ""
+ return []
+ 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
+
+function! s:GetMakeprg()
+ if g:syntastic_ocaml_use_ocamlc
+ return s:GetOcamlcMakeprg()
+ endif
+
+ if g:syntastic_ocaml_use_ocamlbuild && isdirectory('_build')
+ return s:GetOcamlBuildMakeprg()
+ endif
+
+ return s:GetOtherMakeprg()
+endfunction
+
+function! s:GetOcamlcMakeprg()
+ if g:syntastic_ocaml_use_janestreet_core
+ let build_cmd = "ocamlc -I "
+ let build_cmd .= expand(g:syntastic_ocaml_janestreet_core_dir)
+ let build_cmd .= " -c " . syntastic#util#shexpand('%')
+ return build_cmd
+ else
+ return "ocamlc -c " . syntastic#util#shexpand('%')
+ endif
+endfunction
+
+function! s:GetOcamlBuildMakeprg()
+ return "ocamlbuild -quiet -no-log -tag annot," . s:ocamlpp . " -no-links -no-hygiene -no-sanitize " .
+ \ syntastic#util#shexpand('%:r') . ".cmi"
+endfunction
+
+function! s:GetOtherMakeprg()
+ "TODO: give this function a better name?
+ "
+ "TODO: should use throw/catch instead of returning an empty makeprg
+
+ let extension = expand('%:e')
+ let makeprg = ""
+
+ if stridx(extension, 'mly') >= 0 && executable("menhir")
+ " ocamlyacc output can't be redirected, so use menhir
+ let makeprg = "menhir --only-preprocess " . syntastic#util#shexpand('%') . " >" . syntastic#util#DevNull()
+ elseif stridx(extension,'mll') >= 0 && executable("ocamllex")
+ let makeprg = "ocamllex -q " . syntastic#c#NullOutput() . " " . syntastic#util#shexpand('%')
+ else
+ let makeprg = "camlp4o " . syntastic#c#NullOutput() . " " . syntastic#util#shexpand('%')
+ endif
+
+ return makeprg
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'ocaml',
+ \ 'name': 'camlp4o'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/perl/perl.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/perl/perl.vim
new file mode 100644
index 0000000..dc53a3e
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/perl/perl.vim
@@ -0,0 +1,99 @@
+"============================================================================
+"File: perl.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Anthony Carapetis ,
+" Eric Harmon
+"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.
+"
+"============================================================================
+"
+" Security:
+"
+" This checker runs 'perl -c' against your file, which in turn executes
+" any BEGIN, UNITCHECK, and CHECK blocks, and any use statements in
+" your file. This is probably fine if you wrote the file yourself,
+" but it can be a problem if you're trying to check third party files.
+" If you are 100% willing to let Vim run the code in your file, set
+" g:syntastic_enable_perl_checker to 1 in your vimrc to enable this
+" checker:
+"
+" let g:syntastic_enable_perl_checker = 1
+"
+" References:
+"
+" - http://perldoc.perl.org/perlrun.html#*-c*
+
+if exists('g:loaded_syntastic_perl_perl_checker')
+ finish
+endif
+let g:loaded_syntastic_perl_perl_checker = 1
+
+if !exists('g:syntastic_perl_lib_path')
+ let g:syntastic_perl_lib_path = []
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_perl_perl_IsAvailable() dict
+ if !exists('g:syntastic_perl_perl_exec') && exists('g:syntastic_perl_interpreter')
+ let g:syntastic_perl_perl_exec = g:syntastic_perl_interpreter
+ endif
+
+ " don't call executable() here, to allow things like
+ " let g:syntastic_perl_interpreter='/usr/bin/env perl'
+ silent! call system(self.getExecEscaped() . ' -e ' . syntastic#util#shescape('exit(0)'))
+ return v:shell_error == 0
+endfunction
+
+function! SyntaxCheckers_perl_perl_GetLocList() dict
+ if !exists('g:syntastic_enable_perl_checker') || !g:syntastic_enable_perl_checker
+ call syntastic#log#error('checker perl/perl: checks disabled for security reasons; ' .
+ \ 'set g:syntastic_enable_perl_checker to 1 to override')
+ return []
+ endif
+
+ if type(g:syntastic_perl_lib_path) == type('')
+ call syntastic#log#oneTimeWarn('variable g:syntastic_perl_lib_path should be a list')
+ let includes = split(g:syntastic_perl_lib_path, ',')
+ else
+ let includes = copy(syntastic#util#var('perl_lib_path'))
+ endif
+ let shebang = syntastic#util#parseShebang()
+ let extra = join(map(includes, '"-I" . v:val')) .
+ \ (index(shebang['args'], '-T') >= 0 ? ' -T' : '') .
+ \ (index(shebang['args'], '-t') >= 0 ? ' -t' : '')
+ let errorformat = '%f:%l:%m'
+
+ let makeprg = self.makeprgBuild({ 'args_before': '-c -X ' . extra })
+
+ let errors = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'preprocess': 'perl',
+ \ 'defaults': {'type': 'E'} })
+ if !empty(errors)
+ return errors
+ endif
+
+ let makeprg = self.makeprgBuild({ 'args_before': '-c -Mwarnings ' . extra })
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'preprocess': 'perl',
+ \ 'defaults': {'type': 'W'} })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'perl',
+ \ 'name': 'perl'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/perl/perlcritic.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/perl/perlcritic.vim
new file mode 100644
index 0000000..1212ec0
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/perl/perlcritic.vim
@@ -0,0 +1,52 @@
+"============================================================================
+"File: perlcritic.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: LCD 47
+"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:loaded_syntastic_perl_perlcritic_checker")
+ finish
+endif
+let g:loaded_syntastic_perl_perlcritic_checker = 1
+
+if !exists('g:syntastic_perl_perlcritic_thres')
+ let g:syntastic_perl_perlcritic_thres = 5
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_perl_perlcritic_GetLocList() dict
+ let makeprg = self.makeprgBuild({
+ \ 'args_after': '--quiet --nocolor --verbose "\%s:\%f:\%l:\%c:(\%s) \%m (\%e)\n"' })
+
+ let errorformat = '%t:%f:%l:%c:%m'
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'returns': [0, 2],
+ \ 'subtype': 'Style' })
+
+ " change error types according to the prescribed threshold
+ for e in loclist
+ let e['type'] = e['type'] < g:syntastic_perl_perlcritic_thres ? 'W' : 'E'
+ endfor
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'perl',
+ \ 'name': 'perlcritic'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/perl/podchecker.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/perl/podchecker.vim
new file mode 100644
index 0000000..5ffc736
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/perl/podchecker.vim
@@ -0,0 +1,25 @@
+"============================================================================
+"File: podchecker.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: LCD 47
+"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:loaded_syntastic_perl_podchecker_checker")
+ finish
+endif
+let g:loaded_syntastic_perl_podchecker_checker = 1
+
+runtime! syntax_checkers/pod/*.vim
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'perl',
+ \ 'name': 'podchecker',
+ \ 'redirect': 'pod/podchecker'})
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/php/php.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/php/php.vim
new file mode 100644
index 0000000..558dc0a
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/php/php.vim
@@ -0,0 +1,52 @@
+"============================================================================
+"File: php.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Martin Grenfell
+"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:loaded_syntastic_php_php_checker")
+ finish
+endif
+let g:loaded_syntastic_php_php_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_php_php_GetHighlightRegex(item)
+ let term = matchstr(a:item['text'], "\\munexpected '\\zs[^']\\+\\ze'")
+ return term != '' ? '\V' . escape(term, '\') : ''
+endfunction
+
+function! SyntaxCheckers_php_php_GetLocList() dict
+ let makeprg = self.makeprgBuild({
+ \ 'args': '-d error_reporting=E_ALL',
+ \ 'args_after': '-l -d display_errors=1 -d log_errors=0 -d xdebug.cli_color=0' })
+
+ let errorformat =
+ \ '%-GNo syntax errors detected in%.%#,'.
+ \ 'Parse error: %#syntax %trror\, %m in %f on line %l,'.
+ \ 'Parse %trror: %m in %f on line %l,'.
+ \ 'Fatal %trror: %m in %f on line %l,'.
+ \ '%-G\s%#,'.
+ \ '%-GErrors parsing %.%#'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'postprocess': ['guards'] })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'php',
+ \ 'name': 'php'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/php/phpcs.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/php/phpcs.vim
new file mode 100644
index 0000000..c705456
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/php/phpcs.vim
@@ -0,0 +1,43 @@
+"============================================================================
+"File: phpcs.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Martin Grenfell
+"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:loaded_syntastic_php_phpcs_checker")
+ finish
+endif
+let g:loaded_syntastic_php_phpcs_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_php_phpcs_GetLocList() dict
+ let makeprg = self.makeprgBuild({
+ \ 'args': '--tab-width=' . &tabstop,
+ \ 'args_after': '--report=csv' })
+
+ let errorformat =
+ \ '%-GFile\,Line\,Column\,Type\,Message\,Source\,Severity%.%#,'.
+ \ '"%f"\,%l\,%v\,%t%*[a-zA-Z]\,"%m"\,%*[a-zA-Z0-9_.-]\,%*[0-9]%.%#'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'subtype': 'Style' })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'php',
+ \ 'name': 'phpcs' })
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/php/phplint.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/php/phplint.vim
new file mode 100644
index 0000000..d857d9e
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/php/phplint.vim
@@ -0,0 +1,91 @@
+"============================================================================
+"File: phplint.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: LCD 47
+"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:loaded_syntastic_php_phplint_checker")
+ finish
+endif
+let g:loaded_syntastic_php_phplint_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_php_phplint_GetHighlightRegex(item)
+ let term = matchstr(a:item['text'], '\munresolved function \zs\S\+\ze')
+ if term != ''
+ return '\V' . escape(term, '\')
+ endif
+ let term = matchstr(a:item['text'], '\m\(class\|function\|method\) \zs\S\+\ze was declared as')
+ if term != ''
+ return '\V' . escape(term, '\')
+ endif
+ let term = matchstr(a:item['text'], '\maccess forbidden to \(private\|protected\) \(class\|constant\|method\|variable\|\(private\|protected\) property\) \zs\S\+\ze')
+ if term != ''
+ return '\V' . escape(term, '\')
+ endif
+ let term = matchstr(a:item['text'], '\musing deprecated \(class\|constant\|method\|property\|variable\) \zs\S\+\ze')
+ if term != ''
+ return '\V' . escape(term, '\')
+ endif
+ let term = matchstr(a:item['text'], '\munresolved function \zs\S\+\ze')
+ if term != ''
+ return '\V' . escape(term, '\')
+ endif
+ let term = matchstr(a:item['text'], '\munresolved function \zs\S\+\ze')
+ if term != ''
+ return '\V' . escape(term, '\')
+ endif
+ let term = matchstr(a:item['text'], '\munresolved function \zs\S\+\ze')
+ return term != '' ? '\V' . escape(term, '\') : ''
+endfunction
+
+function! SyntaxCheckers_php_phplint_GetLocList() dict
+ let makeprg = self.makeprgBuild({
+ \ 'args_after':
+ \ '--print-file-name ' .
+ \ '--print-line-numbers ' .
+ \ '--print-column-number ' .
+ \ '--print-errors ' .
+ \ '--print-warnings ' .
+ \ '--no-print-notices ' .
+ \ '--no-print-context ' .
+ \ '--no-print-source ' .
+ \ '--tab-size ' . &tabstop })
+
+ let errorformat =
+ \ '%E%f:%l:%v: %tRROR: %m,' .
+ \ '%W%f:%l:%v: %tarning: %m,' .
+ \ '%+C%\t%.%#,' .
+ \ '%-G%.%#'
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'postprocess': ['compressWhitespace'],
+ \ 'subtype': 'Style',
+ \ 'returns': [0, 1] })
+
+ for e in loclist
+ let e['text'] = substitute(e['text'], '\m \(Hint\|Examples\):.*', '', '')
+ endfor
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'php',
+ \ 'name': 'phplint',
+ \ 'exec': 'phpl' })
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/php/phpmd.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/php/phpmd.vim
new file mode 100644
index 0000000..707ce2a
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/php/phpmd.vim
@@ -0,0 +1,77 @@
+"============================================================================
+"File: phpmd.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Martin Grenfell
+"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:loaded_syntastic_php_phpmd_checker")
+ finish
+endif
+let g:loaded_syntastic_php_phpmd_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_php_phpmd_GetHighlightRegex(item)
+ let term = matchstr(a:item['text'], '\m\C^The \S\+ \w\+\(()\)\= \(has\|is not\|utilizes\)')
+ if term != ''
+ return '\V'.substitute(term, '\m\C^The \S\+ \(\w\+\)\(()\)\= .*', '\1', '')
+ endif
+ let term = matchstr(a:item['text'], '\m\C^Avoid \(variables with short\|excessively long variable\) names like \S\+\.')
+ if term != ''
+ return '\V'.substitute(term, '\m\C^Avoid \(variables with short\|excessively long variable\) names like \(\S\+\)\..*', '\2', '')
+ endif
+ let term = matchstr(a:item['text'], '\m\C^Avoid using short method names like \S\+::\S\+()\.')
+ if term != ''
+ return '\V'.substitute(term, '\m\C^Avoid using short method names like \S\+::\(\S\+\)()\..*', '\1', '')
+ endif
+ let term = matchstr(a:item['text'], '\m\C^\S\+ accesses the super-global variable ')
+ if term != ''
+ return '\V'.substitute(term, '\m\C accesses the super-global variable .*$', '', '')
+ endif
+ let term = matchstr(a:item['text'], '\m\C^Constant \S\+ should be defined in uppercase')
+ if term != ''
+ return '\V'.substitute(term, '\m\C^Constant \(\S\+\) should be defined in uppercase', '\1', '')
+ endif
+ let term = matchstr(a:item['text'], "\\m\\C^The '\\S\\+()' method which returns ")
+ if term != ''
+ return '\V'.substitute(term, "\\m\\C^The '\\(\\S\\+\\()' method which returns.*", '\1', '')
+ endif
+ let term = matchstr(a:item['text'], '\m\C variable \S\+ should begin with ')
+ if term != ''
+ return '\V'.substitute(term, '\m\C.* variable \(\S\+\) should begin with .*', '\1', '')
+ endif
+ let term = matchstr(a:item['text'], "\\m\\C^Avoid unused \\(private fields\\|local variables\\|private methods\\|parameters\\) such as '\\S\\+'")
+ if term != ''
+ return '\V'.substitute(term, "\\m\\C^Avoid unused \\(private fields\\|local variables\\|private methods\\|parameters\\) such as '\\(\\S\\+\\)'.*", '\2', '')
+ endif
+ return ''
+endfunction
+
+function! SyntaxCheckers_php_phpmd_GetLocList() dict
+ let makeprg = self.makeprgBuild({
+ \ 'post_args_before': 'text',
+ \ 'post_args': 'codesize,design,unusedcode,naming' })
+
+ let errorformat = '%E%f:%l%\s%#%m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'subtype' : 'Style' })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'php',
+ \ 'name': 'phpmd'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/po/msgfmt.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/po/msgfmt.vim
new file mode 100644
index 0000000..254aa91
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/po/msgfmt.vim
@@ -0,0 +1,50 @@
+"============================================================================
+"File: msgfmt.vim
+"Description: Syntax checking plugin for po files of gettext
+"Maintainer: Ryo Okubo
+"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:loaded_syntastic_po_msgfmt_checker")
+ finish
+endif
+let g:loaded_syntastic_po_msgfmt_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_po_msgfmt_GetHighlightRegex(item)
+ let term = matchstr(a:item['text'], '\mkeyword "\zs[^"]\+\ze" unknown')
+ return term != '' ? '\V' . escape(term, '\') : ''
+endfunction
+
+function! SyntaxCheckers_po_msgfmt_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'args_after': '-c ' . syntastic#c#NullOutput() })
+
+ let errorformat =
+ \ '%W%f:%l: warning: %m,' .
+ \ '%E%f:%l:%v: %m,' .
+ \ '%E%f:%l: %m,' .
+ \ '%+C %.%#,' .
+ \ '%Z%p^,' .
+ \ '%-G%.%#'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'postprocess': ['compressWhitespace'] })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'po',
+ \ 'name': 'msgfmt'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/pod/podchecker.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/pod/podchecker.vim
new file mode 100644
index 0000000..34a37e5
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/pod/podchecker.vim
@@ -0,0 +1,51 @@
+"============================================================================
+"File: podchecker.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: LCD 47
+"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:loaded_syntastic_pod_podchecker_checker")
+ finish
+endif
+let g:loaded_syntastic_pod_podchecker_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_pod_podchecker_GetLocList() dict
+ let makeprg = self.makeprgBuild({})
+
+ let errorformat =
+ \ '%W%[%#]%[%#]%[%#] WARNING: %m at line %l in file %f,' .
+ \ '%W%[%#]%[%#]%[%#] WARNING: %m at line EOF in file %f,' .
+ \ '%E%[%#]%[%#]%[%#] ERROR: %m at line %l in file %f,' .
+ \ '%E%[%#]%[%#]%[%#] ERROR: %m at line EOF in file %f'
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'returns': [0, 1, 2] })
+
+ for e in loclist
+ if e['valid'] && e['lnum'] == 0
+ let e['lnum'] = str2nr(matchstr(e['text'], '\m\
+"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:loaded_syntastic_puppet_puppet_checker")
+ finish
+endif
+let g:loaded_syntastic_puppet_puppet_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_puppet_puppet_GetLocList() dict
+ if !exists('s:puppet_version')
+ let s:puppet_version = syntastic#util#getVersion(self.getExecEscaped() . ' --version 2>' . syntastic#util#DevNull())
+ call self.log(self.getExec() . ' version =', s:puppet_version)
+ endif
+
+ if syntastic#util#versionIsAtLeast(s:puppet_version, [2,7,0])
+ let args = 'parser validate --color=false'
+ else
+ let args = '--color=false --parseonly'
+ endif
+
+ let makeprg = self.makeprgBuild({ 'args_before': args })
+
+ let errorformat =
+ \ '%-Gerr: Try ''puppet help parser validate'' for usage,' .
+ \ '%-GError: Try ''puppet help parser validate'' for usage,' .
+ \ '%A%t%*[a-zA-Z]: %m at %f:%l:%c,' .
+ \ '%A%t%*[a-zA-Z]: %m at %f:%l'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'puppet',
+ \ 'name': 'puppet'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/puppet/puppetlint.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/puppet/puppetlint.vim
new file mode 100644
index 0000000..d9948ca
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/puppet/puppetlint.vim
@@ -0,0 +1,55 @@
+"============================================================================
+"File: puppetlint.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Eivind Uggedal
+"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:loaded_syntastic_puppet_puppetlint_checker")
+ finish
+endif
+let g:loaded_syntastic_puppet_puppetlint_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_puppet_puppetlint_IsAvailable() dict
+ call self.log("executable('puppet') = " . executable('puppet') . ', ' .
+ \ "executable(" . string(self.getExec()) . ") = " . executable(self.getExec()))
+ if !executable('puppet') || !executable(self.getExec())
+ return 0
+ endif
+
+ let ver = syntastic#util#getVersion(self.getExecEscaped() . ' --version 2>' . syntastic#util#DevNull())
+ call self.log(self.getExec() . ' version =', ver)
+
+ return syntastic#util#versionIsAtLeast(ver, [0, 1, 10])
+endfunction
+
+function! SyntaxCheckers_puppet_puppetlint_GetLocList() dict
+ call syntastic#log#deprecationWarn('puppet_lint_arguments', 'puppet_puppetlint_args')
+
+ let makeprg = self.makeprgBuild({
+ \ 'args_after': '--log-format "%{KIND} [%{check}] %{message} at %{fullpath}:%{linenumber}"' })
+
+ let errorformat = '%t%*[a-zA-Z] %m at %f:%l'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'puppet',
+ \ 'name': 'puppetlint',
+ \ 'exec': 'puppet-lint'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/python/compile.py b/vim/vim.symlink/bundle/syntastic/syntax_checkers/python/compile.py
new file mode 100755
index 0000000..32f1413
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/python/compile.py
@@ -0,0 +1,13 @@
+#!/usr/bin/env python
+
+from __future__ import print_function
+from sys import argv, exit
+
+
+if len(argv) != 2:
+ exit(1)
+
+try:
+ compile(open(argv[1]).read(), argv[1], 'exec', 0, 1)
+except SyntaxError as err:
+ print('%s:%s:%s: %s' % (err.filename, err.lineno, err.offset, err.msg))
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/python/flake8.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/python/flake8.vim
new file mode 100644
index 0000000..1e4f1c9
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/python/flake8.vim
@@ -0,0 +1,72 @@
+"============================================================================
+"File: flake8.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Authors: Sylvain Soliman
+" kstep
+"
+"============================================================================
+
+if exists("g:loaded_syntastic_python_flake8_checker")
+ finish
+endif
+let g:loaded_syntastic_python_flake8_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_python_flake8_GetHighlightRegex(item)
+ return SyntaxCheckers_python_pyflakes_GetHighlightRegex(a:item)
+endfunction
+
+function! SyntaxCheckers_python_flake8_GetLocList() dict
+ let makeprg = self.makeprgBuild({})
+
+ let errorformat =
+ \ '%E%f:%l: could not compile,%-Z%p^,' .
+ \ '%A%f:%l:%c: %t%n %m,' .
+ \ '%A%f:%l: %t%n %m,' .
+ \ '%-G%.%#'
+
+ let env = syntastic#util#isRunningWindows() ? {} : { 'TERM': 'dumb' }
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'env': env })
+
+ for e in loclist
+ " E*** and W*** are pep8 errors
+ " F*** are PyFlakes codes
+ " C*** are McCabe complexity messages
+ " N*** are naming conventions from pep8-naming
+
+ if has_key(e, 'nr')
+ let e['text'] .= printf(' [%s%03d]', e['type'], e['nr'])
+ " E901 are syntax errors
+ " E902 are I/O errors
+ if e['type'] ==? 'E' && e['nr'] !~ '\m^9'
+ let e['subtype'] = 'Style'
+ endif
+ call remove(e, 'nr')
+ endif
+
+ if e['type'] =~? '\m^[CNW]'
+ let e['subtype'] = 'Style'
+ endif
+
+ let e['type'] = e['type'] =~? '\m^[EFC]' ? 'E' : 'W'
+ endfor
+
+ return loclist
+endfunction
+
+runtime! syntax_checkers/python/pyflakes.vim
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'python',
+ \ 'name': 'flake8'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/python/frosted.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/python/frosted.vim
new file mode 100644
index 0000000..05a0708
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/python/frosted.vim
@@ -0,0 +1,63 @@
+"============================================================================
+"File: frosted.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: LCD 47
+"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:loaded_syntastic_python_frosted_checker')
+ finish
+endif
+let g:loaded_syntastic_python_frosted_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_python_frosted_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'args_after': '-vb' })
+
+ let errorformat =
+ \ '%f:%l:%c:%m,' .
+ \ '%E%f:%l: %m,' .
+ \ '%-Z%p^,' .
+ \ '%-G%.%#'
+
+ let env = syntastic#util#isRunningWindows() ? {} : { 'TERM': 'dumb' }
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'env': env,
+ \ 'returns': [0, 1] })
+
+ for e in loclist
+ let e["col"] += 1
+
+ let parts = matchlist(e.text, '\v^([EW]\d+):([^:]*):(.+)')
+ if len(parts) >= 4
+ let e["type"] = parts[1][0]
+ let e["text"] = parts[3] . ' [' . parts[1] . ']'
+ let e["hl"] = '\V\<' . escape(parts[2], '\') . '\>'
+ elseif e["text"] =~? '\v^I\d+:'
+ let e["valid"] = 0
+ else
+ let e["vcol"] = 0
+ endif
+ endfor
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'python',
+ \ 'name': 'frosted' })
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/python/mypy.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/python/mypy.vim
new file mode 100644
index 0000000..5a56043
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/python/mypy.vim
@@ -0,0 +1,35 @@
+"============================================================================
+"File: mypy.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Author: Russ Hewgill
+"
+"============================================================================
+
+if exists("g:loaded_syntastic_python_mypy_checker")
+ finish
+endif
+let g:loaded_syntastic_python_mypy_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_python_mypy_GetLocList() dict
+ let makeprg = self.makeprgBuild({})
+
+ let errorformat = '%f\, line %l: %m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'defaults': { 'type': 'E' },
+ \ 'returns': [0, 1] })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'python',
+ \ 'name': 'mypy'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/python/pep257.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/python/pep257.vim
new file mode 100644
index 0000000..c609062
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/python/pep257.vim
@@ -0,0 +1,61 @@
+"============================================================================
+"File: pep257.vim
+"Description: Docstring style checking plugin for syntastic.vim
+"============================================================================
+
+if exists('g:loaded_syntastic_python_pep257_checker')
+ finish
+endif
+let g:loaded_syntastic_python_pep257_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_python_pep257_GetLocList() dict
+ if !exists('s:pep257_new')
+ let ver = syntastic#util#getVersion(self.getExecEscaped() . ' --version')
+ call self.log(self.getExec() . ' version =', ver)
+ let s:pep257_new = syntastic#util#versionIsAtLeast(ver, [0, 3])
+ endif
+
+ let makeprg = self.makeprgBuild({})
+
+ if s:pep257_new
+ let errorformat =
+ \ '%E%f:%l %.%#:,' .
+ \ '%+C %m'
+ else
+ let errorformat =
+ \ '%E%f:%l:%c%\%.%\%.%\d%\+:%\d%\+: %m,' .
+ \ '%E%f:%l:%c: %m,' .
+ \ '%+C %m'
+ endif
+
+ let env = syntastic#util#isRunningWindows() ? {} : { 'TERM': 'dumb' }
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'env': env,
+ \ 'subtype': 'Style',
+ \ 'preprocess': 'killEmpty',
+ \ 'postprocess': ['compressWhitespace'] })
+
+ if s:pep257_new == 0
+ " byte offsets rather than column numbers
+ for e in loclist
+ let e['col'] = get(e, 'col', 0) + 1
+ endfor
+ endif
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'python',
+ \ 'name': 'pep257'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/python/pep8.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/python/pep8.vim
new file mode 100644
index 0000000..1a8b3db
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/python/pep8.vim
@@ -0,0 +1,48 @@
+"============================================================================
+"File: pep8.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: LCD 47
+"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:loaded_syntastic_python_pep8_checker")
+ finish
+endif
+let g:loaded_syntastic_python_pep8_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_python_pep8_GetLocList() dict
+ let makeprg = self.makeprgBuild({})
+
+ let errorformat = '%f:%l:%c: %m'
+
+ let env = syntastic#util#isRunningWindows() ? {} : { 'TERM': 'dumb' }
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'env': env,
+ \ 'subtype': 'Style' })
+
+ for e in loclist
+ let e['type'] = e['text'] =~? '^W' ? 'W' : 'E'
+ endfor
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'python',
+ \ 'name': 'pep8'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/python/prospector.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/python/prospector.vim
new file mode 100644
index 0000000..ea987f9
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/python/prospector.vim
@@ -0,0 +1,78 @@
+"============================================================================
+"File: prospector.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: LCD 47
+"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:loaded_syntastic_python_prospector_checker")
+ finish
+endif
+let g:loaded_syntastic_python_prospector_checker = 1
+
+if !exists('g:syntastic_python_prospector_sort')
+ let g:syntastic_python_prospector_sort = 1
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_python_prospector_IsAvailable() dict
+ if !executable(self.getExec())
+ return 0
+ endif
+
+ let ver = syntastic#util#getVersion(self.getExecEscaped() . ' --version')
+ call self.log(self.getExec() . ' version =', ver)
+
+ return syntastic#util#versionIsAtLeast(ver, [0, 7])
+endfunction
+
+function! SyntaxCheckers_python_prospector_GetLocList() dict
+ let makeprg = self.makeprgBuild({
+ \ 'args': '--external-config merge',
+ \ 'args_after': '--messages-only --absolute-paths --die-on-tool-error --zero-exit --output-format json' })
+
+ let errorformat = '%f:%l:%c: %m'
+
+ let env = syntastic#util#isRunningWindows() ? {} : { 'TERM': 'dumb' }
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'env': env,
+ \ 'preprocess': 'prospector',
+ \ 'returns': [0] })
+
+ for e in loclist
+ if e['text'] =~# '\v\[%(dodgy|mccabe|pep8|pep257|pyroma)\]$'
+ let e['subtype'] = 'Style'
+ endif
+
+ if e['text'] =~# '\v\[pylint\]$'
+ let e['type'] = e['text'] =~? '\m^[CRW]' ? 'W' : 'E'
+ elseif e['text'] =~# '\v\[%(frosted|pep8)\]$'
+ let e['type'] = e['text'] =~? '\m^W' ? 'W' : 'E'
+ elseif e['text'] =~# '\v\[%(dodgy|pyroma|vulture)\]$'
+ let e['type'] = 'W'
+ else
+ let e['type'] = 'E'
+ endif
+ endfor
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'python',
+ \ 'name': 'prospector'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/python/py3kwarn.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/python/py3kwarn.vim
new file mode 100644
index 0000000..69a3060
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/python/py3kwarn.vim
@@ -0,0 +1,36 @@
+"============================================================================
+"File: py3kwarn.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Authors: Liam Curry
+"
+"============================================================================
+
+if exists("g:loaded_syntastic_python_py3kwarn_checker")
+ finish
+endif
+let g:loaded_syntastic_python_py3kwarn_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_python_py3kwarn_GetLocList() dict
+ let makeprg = self.makeprgBuild({})
+
+ let errorformat = '%W%f:%l:%c: %m'
+
+ let env = syntastic#util#isRunningWindows() ? {} : { 'TERM': 'dumb' }
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'env': env })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'python',
+ \ 'name': 'py3kwarn'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/python/pyflakes.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/python/pyflakes.vim
new file mode 100644
index 0000000..530a275
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/python/pyflakes.vim
@@ -0,0 +1,74 @@
+"============================================================================
+"File: pyflakes.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Authors: Martin Grenfell
+" kstep
+" Parantapa Bhattacharya
+"
+"============================================================================
+
+if exists("g:loaded_syntastic_python_pyflakes_checker")
+ finish
+endif
+let g:loaded_syntastic_python_pyflakes_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_python_pyflakes_GetHighlightRegex(i)
+ if stridx(a:i['text'], 'is assigned to but never used') >= 0
+ \ || stridx(a:i['text'], 'imported but unused') >= 0
+ \ || stridx(a:i['text'], 'undefined name') >= 0
+ \ || stridx(a:i['text'], 'redefinition of') >= 0
+ \ || stridx(a:i['text'], 'referenced before assignment') >= 0
+ \ || stridx(a:i['text'], 'duplicate argument') >= 0
+ \ || stridx(a:i['text'], 'after other statements') >= 0
+ \ || stridx(a:i['text'], 'shadowed by loop variable') >= 0
+
+ " fun with Python's %r: try "..." first, then '...'
+ let term = matchstr(a:i['text'], '\m^.\{-}"\zs.\{-1,}\ze"')
+ if term != ''
+ return '\V\<' . escape(term, '\') . '\>'
+ endif
+
+ let term = matchstr(a:i['text'], '\m^.\{-}''\zs.\{-1,}\ze''')
+ if term != ''
+ return '\V\<' . escape(term, '\') . '\>'
+ endif
+ endif
+ return ''
+endfunction
+
+function! SyntaxCheckers_python_pyflakes_GetLocList() dict
+ let makeprg = self.makeprgBuild({})
+
+ let errorformat =
+ \ '%E%f:%l: could not compile,'.
+ \ '%-Z%p^,'.
+ \ '%E%f:%l:%c: %m,'.
+ \ '%E%f:%l: %m,'.
+ \ '%-G%.%#'
+
+ let env = syntastic#util#isRunningWindows() ? {} : { 'TERM': 'dumb' }
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'env': env,
+ \ 'defaults': {'text': "Syntax error"} })
+
+ for e in loclist
+ let e['vcol'] = 0
+ endfor
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'python',
+ \ 'name': 'pyflakes'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/python/pylama.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/python/pylama.vim
new file mode 100644
index 0000000..b0352b2
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/python/pylama.vim
@@ -0,0 +1,74 @@
+"============================================================================
+"File: pylama.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: LCD 47
+"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:loaded_syntastic_python_pylama_checker')
+ finish
+endif
+let g:loaded_syntastic_python_pylama_checker = 1
+
+if !exists('g:syntastic_python_pylama_sort')
+ let g:syntastic_python_pylama_sort = 1
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_python_pylama_GetHighlightRegex(item)
+ return SyntaxCheckers_python_pyflakes_GetHighlightRegex(a:item)
+endfunction
+
+function! SyntaxCheckers_python_pylama_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'args_after': '-f pep8' })
+
+ " TODO: "WARNING:pylama:..." messages are probably a logging bug
+ let errorformat =
+ \ '%-GWARNING:pylama:%.%#,' .
+ \ '%A%f:%l:%c: %m'
+
+ let env = syntastic#util#isRunningWindows() ? {} : { 'TERM': 'dumb' }
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'env': env })
+
+ " adjust for weirdness in each checker
+ for e in loclist
+ let e['type'] = e['text'] =~? '\m^[RCW]' ? 'W' : 'E'
+ if e['text'] =~# '\v\[%(mccabe|pep257|pylint)\]$'
+ if has_key(e, 'col')
+ let e['col'] += 1
+ endif
+ endif
+ if e['text'] =~# '\v\[pylint\]$'
+ if has_key(e, 'vcol')
+ let e['vcol'] = 0
+ endif
+ endif
+ if e['text'] =~# '\v\[%(mccabe|pep257|pep8)\]$'
+ let e['subtype'] = 'Style'
+ endif
+ endfor
+
+ return loclist
+endfunction
+
+runtime! syntax_checkers/python/pyflakes.vim
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'python',
+ \ 'name': 'pylama' })
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/python/pylint.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/python/pylint.vim
new file mode 100644
index 0000000..25a60e9
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/python/pylint.vim
@@ -0,0 +1,98 @@
+"============================================================================
+"File: pylint.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Author: Parantapa Bhattacharya
+"
+"============================================================================
+
+if exists("g:loaded_syntastic_python_pylint_checker")
+ finish
+endif
+let g:loaded_syntastic_python_pylint_checker = 1
+
+if !exists('g:syntastic_python_pylint_sort')
+ let g:syntastic_python_pylint_sort = 1
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+let s:pylint_new = -1
+
+function! SyntaxCheckers_python_pylint_IsAvailable() dict
+ if !executable(self.getExec())
+ return 0
+ endif
+
+ try
+ " On Windows the version is shown as "pylint-script.py 1.0.0".
+ " On Gentoo Linux it's "pylint-python2.7 0.28.0".
+ " On NixOS, that would be ".pylint-wrapped 0.26.0".
+ " On Arch Linux it's "pylint2 1.1.0".
+ " On new-ish Fedora it's "python3-pylint 1.2.0".
+ " Have you guys considered switching to creative writing yet? ;)
+
+ let pylint_version = filter( split(system(self.getExecEscaped() . ' --version'), '\m, \=\|\n'),
+ \ 'v:val =~# ''\m^\(python[-0-9]*-\|\.\)\=pylint[-0-9]*\>''' )[0]
+ let ver = syntastic#util#parseVersion(substitute(pylint_version, '\v^\S+\s+', '', ''))
+
+ call self.log(self.getExec() . ' version =', ver)
+
+ let s:pylint_new = syntastic#util#versionIsAtLeast(ver, [1])
+ catch /\m^Vim\%((\a\+)\)\=:E684/
+ call syntastic#log#error("checker python/pylint: can't parse version string (abnormal termination?)")
+ let s:pylint_new = -1
+ endtry
+
+ return s:pylint_new >= 0
+endfunction
+
+function! SyntaxCheckers_python_pylint_GetLocList() dict
+ let makeprg = self.makeprgBuild({
+ \ 'args_after': (s:pylint_new ?
+ \ '-f text --msg-template="{path}:{line}:{column}:{C}: [{symbol}] {msg}" -r n' :
+ \ '-f parseable -r n -i y') })
+
+ let errorformat =
+ \ '%A%f:%l:%c:%t: %m,' .
+ \ '%A%f:%l: %m,' .
+ \ '%A%f:(%l): %m,' .
+ \ '%-Z%p^%.%#,' .
+ \ '%-G%.%#'
+
+ let env = syntastic#util#isRunningWindows() ? {} : { 'TERM': 'dumb' }
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'env': env,
+ \ 'returns': range(32) })
+
+ for e in loclist
+ if !s:pylint_new
+ let e['type'] = e['text'][1]
+ endif
+
+ if e['type'] =~? '\m^[EF]'
+ let e['type'] = 'E'
+ elseif e['type'] =~? '\m^[CRW]'
+ let e['type'] = 'W'
+ else
+ let e['valid'] = 0
+ endif
+
+ let e['col'] += 1
+ let e['vcol'] = 0
+ endfor
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'python',
+ \ 'name': 'pylint' })
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/python/python.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/python/python.vim
new file mode 100644
index 0000000..3d1c0ae
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/python/python.vim
@@ -0,0 +1,55 @@
+"============================================================================
+"File: python.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: LCD 47
+"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:loaded_syntastic_python_python_checker")
+ finish
+endif
+let g:loaded_syntastic_python_python_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+let s:compiler = expand(':p:h') . syntastic#util#Slash() . 'compile.py'
+
+function! SyntaxCheckers_python_python_IsAvailable() dict
+ if !executable(self.getExec())
+ return 0
+ endif
+
+ let ver = syntastic#util#getVersion(self.getExecEscaped() . ' --version')
+ call self.log(self.getExec() . ' version =', ver)
+
+ return syntastic#util#versionIsAtLeast(ver, [2, 6])
+endfunction
+
+function! SyntaxCheckers_python_python_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'exe': [self.getExec(), s:compiler] })
+
+ let errorformat = '%E%f:%l:%c: %m'
+
+ let env = syntastic#util#isRunningWindows() ? {} : { 'TERM': 'dumb' }
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'env': env,
+ \ 'returns': [0] })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'python',
+ \ 'name': 'python'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/r/lint.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/r/lint.vim
new file mode 100644
index 0000000..792305f
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/r/lint.vim
@@ -0,0 +1,83 @@
+"============================================================================
+"File: lint.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: LCD 47
+"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:loaded_syntastic_r_lint_checker")
+ finish
+endif
+let g:loaded_syntastic_r_lint_checker = 1
+
+if !exists('g:syntastic_r_lint_styles')
+ let g:syntastic_r_lint_styles = 'lint.style'
+endif
+
+if !exists('g:syntastic_r_lint_sort')
+ let g:syntastic_r_lint_sort = 1
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_r_lint_GetHighlightRegex(item)
+ let term = matchstr(a:item['text'], '\m`\zs[^`]\+\ze`')
+ if term == ''
+ let term = matchstr(a:item['text'], "\\m'\\zs[^']\\+\\ze'")
+ endif
+ return term != '' ? '\V' . escape(term, '\') : ''
+endfunction
+
+function! SyntaxCheckers_r_lint_IsAvailable() dict
+ if !executable(self.getExec())
+ return 0
+ endif
+ call system(self.getExecEscaped() . ' --slave --restore --no-save -e ' . syntastic#util#shescape('library(lint)'))
+ return v:shell_error == 0
+endfunction
+
+function! SyntaxCheckers_r_lint_GetLocList() dict
+ let setwd = syntastic#util#isRunningWindows() ? 'setwd("' . escape(getcwd(), '"\') . '"); ' : ''
+ let setwd = 'setwd("' . escape(getcwd(), '"\') . '"); '
+ let makeprg = self.getExecEscaped() . ' --slave --restore --no-save' .
+ \ ' -e ' . syntastic#util#shescape(setwd . 'library(lint); ' .
+ \ 'try(lint(commandArgs(TRUE), ' . g:syntastic_r_lint_styles . '))') .
+ \ ' --args ' . syntastic#util#shexpand('%')
+
+ let errorformat =
+ \ '%t:%f:%l:%v: %m,' .
+ \ '%t:%f:%l: %m'
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'subtype': 'Style',
+ \ 'preprocess': 'rparse',
+ \ 'returns': [0] })
+
+ for e in loclist
+ if e['type'] == 'F'
+ " parse error
+ let e['type'] = 'E'
+ call remove(e, 'subtype')
+ endif
+ endfor
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'r',
+ \ 'name': 'lint',
+ \ 'exec': 'R' })
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/r/svtools.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/r/svtools.vim
new file mode 100644
index 0000000..ec924c3
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/r/svtools.vim
@@ -0,0 +1,78 @@
+"============================================================================
+"File: svtools.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: LCD 47
+"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.
+"
+"============================================================================
+"
+" Security:
+"
+" This checker runs the code in your file. This is probably fine if you
+" wrote the file yourself, but it can be a problem if you're trying to
+" check third party files. If you are 100% willing to let Vim run the
+" code in your file, set g:syntastic_enable_r_svtools_checker to 1 in
+" your vimrc to enable this checker:
+"
+" let g:syntastic_enable_r_svtools_checker = 1
+
+if exists("g:loaded_syntastic_r_svtools_checker")
+ finish
+endif
+let g:loaded_syntastic_r_svtools_checker = 1
+
+if !exists('g:syntastic_r_svtools_styles')
+ let g:syntastic_r_svtools_styles = 'lint.style'
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_r_svtools_GetHighlightRegex(item)
+ let term = matchstr(a:item['text'], "\\m'\\zs[^']\\+\\ze'")
+ return term != '' ? '\V' . escape(term, '\') : ''
+endfunction
+
+function! SyntaxCheckers_r_svtools_IsAvailable() dict
+ if !executable(self.getExec())
+ return 0
+ endif
+ call system(self.getExecEscaped() . ' --slave --restore --no-save -e ' . syntastic#util#shescape('library(svTools)'))
+ return v:shell_error == 0
+endfunction
+
+function! SyntaxCheckers_r_svtools_GetLocList() dict
+ if !exists('g:syntastic_enable_r_svtools_checker') || !g:syntastic_enable_r_svtools_checker
+ call syntastic#log#error('checker r/svtools: checks disabled for security reasons; set g:syntastic_enable_r_svtools_checker to 1 to override')
+ return []
+ endif
+
+ let setwd = syntastic#util#isRunningWindows() ? 'setwd("' . escape(getcwd(), '"\') . '"); ' : ''
+ let makeprg = self.getExecEscaped() . ' --slave --restore --no-save' .
+ \ ' -e ' . syntastic#util#shescape(setwd . 'library(svTools); ' .
+ \ 'try(lint(commandArgs(TRUE), filename = commandArgs(TRUE), type = "flat", sep = ":"))') .
+ \ ' --args ' . syntastic#util#shexpand('%')
+
+ let errorformat =
+ \ '%trror:%f:%\s%#%l:%\s%#%v:%m,' .
+ \ '%tarning:%f:%\s%#%l:%\s%#%v:%m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'returns': [0] })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'r',
+ \ 'name': 'svtools',
+ \ 'exec': 'R' })
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/racket/code-ayatollah.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/racket/code-ayatollah.vim
new file mode 100644
index 0000000..f76c321
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/racket/code-ayatollah.vim
@@ -0,0 +1,62 @@
+"============================================================================
+"File: code-ayatollah.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: LCD 47
+"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:loaded_syntastic_racket_code_ayatollah_checker")
+ finish
+endif
+let g:loaded_syntastic_racket_code_ayatollah_checker = 1
+
+if !exists('g:syntastic_racket_code_ayatollah_script')
+ let g:syntastic_racket_code_ayatollah_script = 'code-ayatollah.rkt'
+endif
+
+if !exists('g:syntastic_racket_code_ayatollah_sort')
+ let g:syntastic_racket_code_ayatollah_sort = 1
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_racket_code_ayatollah_IsAvailable() dict
+ let s:script = expand(g:syntastic_racket_code_ayatollah_script)
+ return executable(self.getExec()) && filereadable(s:script)
+endfunction
+
+function! SyntaxCheckers_racket_code_ayatollah_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'exe': [self.getExec(), s:script] })
+
+ let errorformat =
+ \ ' %l:%v: %m,' .
+ \ '%PErrors in %f:,' .
+ \ '%-G%.%#'
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'subtype': 'Style' })
+
+ for e in loclist
+ let e['col'] += 1
+ endfor
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'racket',
+ \ 'name': 'code_ayatollah',
+ \ 'exec': 'racket' })
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/racket/racket.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/racket/racket.vim
new file mode 100644
index 0000000..7161520
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/racket/racket.vim
@@ -0,0 +1,50 @@
+"============================================================================
+"File: racket.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Author: Steve Bragg
+"
+"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:loaded_syntastic_racket_racket_checker")
+ finish
+endif
+let g:loaded_syntastic_racket_racket_checker=1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_racket_racket_GetLocList() dict
+ let makeprg = self.makeprgBuild({})
+
+ " example of error message
+ "eval-apply.rkt:460:30: the-empty-environment: unbound identifier in module
+ " in: the-empty-environment
+ let errorformat = '%f:%l:%v: %m'
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+
+ for e in loclist
+ if has_key(e, 'col')
+ let e['col'] += 1
+ endif
+ endfor
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'racket',
+ \ 'name': 'racket'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/rnc/rnv.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/rnc/rnv.vim
new file mode 100644
index 0000000..db8bd58
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/rnc/rnv.vim
@@ -0,0 +1,38 @@
+"============================================================================
+"File: rnv.vim
+"Description: RelaxNG RNV syntax checking plugin for syntastic.vim
+"Maintainer: Remko Tronçon
+"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:loaded_syntastic_rnc_rnv_checker")
+ finish
+endif
+let g:loaded_syntastic_rnc_rnv_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_rnc_rnv_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'args': '-c' })
+
+ let errorformat =
+ \ '%f:%l:%c: %trror: %m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'rnc',
+ \ 'name': 'rnv'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/rst/rst2pseudoxml.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/rst/rst2pseudoxml.vim
new file mode 100644
index 0000000..a368e9e
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/rst/rst2pseudoxml.vim
@@ -0,0 +1,62 @@
+"============================================================================
+"File: rst.vim
+"Description: Syntax checking plugin for docutils' reStructuredText files
+"Maintainer: James Rowe
+"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("g:loaded_syntastic_rst_rst2pseudoxml_checker")
+ finish
+endif
+let g:loaded_syntastic_rst_rst2pseudoxml_checker = 1
+
+let s:rst2pseudoxml = executable('rst2pseudoxml.py') ? 'rst2pseudoxml.py' : 'rst2pseudoxml'
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_rst_rst2pseudoxml_GetLocList() dict
+ let makeprg = self.makeprgBuild({
+ \ 'args_after': '--report=2 --exit-status=1',
+ \ 'tail': syntastic#util#DevNull() })
+
+ let errorformat =
+ \ '%f:%l: (%tNFO/1) %m,'.
+ \ '%f:%l: (%tARNING/2) %m,'.
+ \ '%f:%l: (%tRROR/3) %m,'.
+ \ '%f:%l: (%tEVERE/4) %m,'.
+ \ '%-G%.%#'
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+
+ for e in loclist
+ if e['type'] ==? 'S'
+ let e['type'] = 'E'
+ elseif e['type'] ==? 'I'
+ let e['type'] = 'W'
+ let e['subtype'] = 'Style'
+ endif
+ endfor
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'rst',
+ \ 'name': 'rst2pseudoxml',
+ \ 'exec': s:rst2pseudoxml })
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/rst/rstcheck.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/rst/rstcheck.vim
new file mode 100644
index 0000000..5c83149
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/rst/rstcheck.vim
@@ -0,0 +1,50 @@
+"============================================================================
+"File: rstcheck.vim
+"Description: Syntax checking for reStructuredText and embedded code blocks
+"Authors: Steven Myint
+"
+"============================================================================
+
+if exists("g:loaded_syntastic_rst_rstcheck_checker")
+ finish
+endif
+let g:loaded_syntastic_rst_rstcheck_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_rst_rstcheck_GetLocList() dict
+ let makeprg = self.makeprgBuild({})
+
+ let errorformat =
+ \ '%f:%l: (%tNFO/1) %m,'.
+ \ '%f:%l: (%tARNING/2) %m,'.
+ \ '%f:%l: (%tRROR/3) %m,'.
+ \ '%f:%l: (%tEVERE/4) %m,'.
+ \ '%-G%.%#'
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'returns': [0, 1] })
+
+ for e in loclist
+ if e['type'] ==? 'S'
+ let e['type'] = 'E'
+ elseif e['type'] ==? 'I'
+ let e['type'] = 'W'
+ let e['subtype'] = 'Style'
+ endif
+ endfor
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'rst',
+ \ 'name': 'rstcheck'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/ruby/jruby.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/ruby/jruby.vim
new file mode 100644
index 0000000..bf57b09
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/ruby/jruby.vim
@@ -0,0 +1,50 @@
+"============================================================================
+"File: jruby.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Leonid Shevtsov
+"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:loaded_syntastic_ruby_jruby_checker")
+ finish
+endif
+let g:loaded_syntastic_ruby_jruby_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_ruby_jruby_GetLocList() dict
+ let makeprg = self.makeprgBuild({
+ \ 'args': (syntastic#util#isRunningWindows() ? '-T1' : ''),
+ \ 'args_after': '-W1 -c' })
+
+ let errorformat =
+ \ '%-GSyntax OK for %f,'.
+ \ '%ESyntaxError in %f:%l: syntax error\, %m,'.
+ \ '%Z%p^,'.
+ \ '%W%f:%l: warning: %m,'.
+ \ '%Z%p^,'.
+ \ '%W%f:%l: %m,'.
+ \ '%-C%.%#'
+
+ let env = syntastic#util#isRunningWindows() ? {} : { 'RUBYOPT': '' }
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'env': env })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'ruby',
+ \ 'name': 'jruby'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/ruby/macruby.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/ruby/macruby.vim
new file mode 100644
index 0000000..54c8365
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/ruby/macruby.vim
@@ -0,0 +1,47 @@
+"============================================================================
+"File: macruby.vim
+"Description: Syntax checking plugin for syntastic.vim
+"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:loaded_syntastic_ruby_macruby_checker")
+ finish
+endif
+let g:loaded_syntastic_ruby_macruby_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_ruby_macruby_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'args_after': '-W1 -c' })
+
+ let errorformat =
+ \ '%-GSyntax OK,'.
+ \ '%E%f:%l: syntax error\, %m,'.
+ \ '%Z%p^,'.
+ \ '%W%f:%l: warning: %m,'.
+ \ '%Z%p^,'.
+ \ '%W%f:%l: %m,'.
+ \ '%-C%.%#'
+
+ let env = { 'RUBYOPT': '' }
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'env': env })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'ruby',
+ \ 'name': 'macruby'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/ruby/mri.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/ruby/mri.vim
new file mode 100644
index 0000000..b4b8d3a
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/ruby/mri.vim
@@ -0,0 +1,80 @@
+"============================================================================
+"File: mri.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Martin Grenfell
+"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:loaded_syntastic_ruby_mri_checker")
+ finish
+endif
+let g:loaded_syntastic_ruby_mri_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_ruby_mri_IsAvailable() dict
+ if !exists('g:syntastic_ruby_mri_exec') && exists('g:syntastic_ruby_exec')
+ let g:syntastic_ruby_mri_exec = g:syntastic_ruby_exec
+ call self.log('g:syntastic_ruby_exec =', g:syntastic_ruby_exec)
+ endif
+ return executable(self.getExec())
+endfunction
+
+function! SyntaxCheckers_ruby_mri_GetHighlightRegex(i)
+ if stridx(a:i['text'], 'assigned but unused variable') >= 0
+ let term = split(a:i['text'], ' - ')[1]
+ return '\V\<' . escape(term, '\') . '\>'
+ endif
+
+ return ''
+endfunction
+
+function! SyntaxCheckers_ruby_mri_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'args_after': '-w -T1 -c' })
+
+ "this is a hack to filter out a repeated useless warning in rspec files
+ "containing lines like
+ "
+ " foo.should == 'bar'
+ "
+ "Which always generate the warning below. Note that ruby >= 1.9.3 includes
+ "the word "possibly" in the warning
+ let errorformat = '%-G%\m%.%#warning: %\%%(possibly %\)%\?useless use of == in void context,'
+
+ " filter out lines starting with ...
+ " long lines are truncated and wrapped in ... %p then returns the wrong
+ " column offset
+ let errorformat .= '%-G%\%.%\%.%\%.%.%#,'
+
+ let errorformat .=
+ \ '%-GSyntax OK,'.
+ \ '%E%f:%l: syntax error\, %m,'.
+ \ '%Z%p^,'.
+ \ '%W%f:%l: warning: %m,'.
+ \ '%Z%p^,'.
+ \ '%W%f:%l: %m,'.
+ \ '%-C%.%#'
+
+ let env = syntastic#util#isRunningWindows() ? {} : { 'RUBYOPT': '' }
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'env': env })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'ruby',
+ \ 'name': 'mri',
+ \ 'exec': 'ruby'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/ruby/reek.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/ruby/reek.vim
new file mode 100644
index 0000000..0493107
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/ruby/reek.vim
@@ -0,0 +1,59 @@
+"============================================================================
+"File: reek.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Mindaugas Mozūras
+"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:loaded_syntastic_ruby_reek_checker")
+ finish
+endif
+let g:loaded_syntastic_ruby_reek_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_ruby_reek_IsAvailable() dict
+ if !executable(self.getExec())
+ return 0
+ endif
+
+ let ver = syntastic#util#getVersion(self.getExecEscaped() . ' --version')
+ call self.log(self.getExec() . ' version =', ver)
+
+ return syntastic#util#versionIsAtLeast(ver, [1, 3, 0])
+endfunction
+
+function! SyntaxCheckers_ruby_reek_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'args_before': '--no-color --quiet --line-number --single-line' })
+
+ let errorformat =
+ \ '%E%.%#: Racc::ParseError: %f:%l :: %m,' .
+ \ '%W%f:%l: %m'
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+
+ for e in loclist
+ if e['type'] ==? 'W'
+ let e['subtype'] = 'Style'
+ endif
+ endfor
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'ruby',
+ \ 'name': 'reek'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/ruby/rubocop.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/ruby/rubocop.vim
new file mode 100644
index 0000000..ba77cc8
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/ruby/rubocop.vim
@@ -0,0 +1,61 @@
+"============================================================================
+"File: rubocop.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Recai OktaÅŸ
+"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:loaded_syntastic_ruby_rubocop_checker")
+ finish
+endif
+let g:loaded_syntastic_ruby_rubocop_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_ruby_rubocop_IsAvailable() dict
+ if !executable(self.getExec())
+ return 0
+ endif
+
+ let ver = syntastic#util#getVersion(self.getExecEscaped() . ' --version')
+ call self.log(self.getExec() . ' version =', ver)
+
+ return syntastic#util#versionIsAtLeast(ver, [0, 9, 0])
+endfunction
+
+function! SyntaxCheckers_ruby_rubocop_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'args_after': '--format emacs --silent' })
+
+ let errorformat = '%f:%l:%c: %t: %m'
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'subtype': 'Style'})
+
+ " convert rubocop severities to error types recognized by syntastic
+ for e in loclist
+ if e['type'] ==# 'F'
+ let e['type'] = 'E'
+ elseif e['type'] !=# 'W' && e['type'] !=# 'E'
+ let e['type'] = 'W'
+ endif
+ endfor
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'ruby',
+ \ 'name': 'rubocop'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/ruby/rubylint.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/ruby/rubylint.vim
new file mode 100644
index 0000000..b4839f5
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/ruby/rubylint.vim
@@ -0,0 +1,45 @@
+"============================================================================
+"File: rubylint.vim
+"Description: Checks Ruby source code using ruby-lint
+"Maintainer: Yorick Peterse
+"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:loaded_syntastic_ruby_rubylint_checker")
+ finish
+endif
+
+let g:loaded_syntastic_ruby_rubylint_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_ruby_rubylint_GetLocList() dict
+ if !exists('s:rubylint_new')
+ let ver = syntastic#util#getVersion(self.getExecEscaped() . ' --version')
+ call self.log(self.getExec() . ' version =', ver)
+ let s:rubylint_new = syntastic#util#versionIsAtLeast(ver, [2])
+ endif
+ let makeprg = self.makeprgBuild({ 'args': (s:rubylint_new ? '' : 'analyze ') . '--presenter=syntastic' })
+
+ let errorformat = '%f:%t:%l:%c: %m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'ruby',
+ \ 'name': 'rubylint',
+ \ 'exec': 'ruby-lint'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/sass/sass.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/sass/sass.vim
new file mode 100644
index 0000000..ce8e693
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/sass/sass.vim
@@ -0,0 +1,84 @@
+"============================================================================
+"File: sass.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Martin Grenfell
+"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:loaded_syntastic_sass_sass_checker")
+ finish
+endif
+let g:loaded_syntastic_sass_sass_checker = 1
+
+"sass caching for large files drastically speeds up the checking, but store it
+"in a temp location otherwise sass puts .sass_cache dirs in the users project
+let s:sass_cache_location = syntastic#util#tmpdir()
+lockvar s:sass_cache_location
+
+augroup syntastic
+ autocmd VimLeave * call syntastic#util#rmrf(s:sass_cache_location)
+augroup END
+
+"By default do not check partials as unknown variables are a syntax error
+if !exists("g:syntastic_sass_check_partials")
+ let g:syntastic_sass_check_partials = 0
+endif
+
+"use compass imports if available
+let s:imports = ""
+if executable("compass")
+ let s:imports = "--compass"
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_sass_sass_GetLocList() dict
+ if !g:syntastic_sass_check_partials && expand('%:t')[0] == '_'
+ return []
+ endif
+
+ let makeprg = self.makeprgBuild({
+ \ 'args_before': '--cache-location ' . s:sass_cache_location . ' ' . s:imports . ' --check' })
+
+ let errorformat =
+ \ '%E%\m%\%%(Syntax %\)%\?%trror: %m,' .
+ \ '%+C %.%#,' .
+ \ '%C on line %l of %f\, %.%#,' .
+ \ '%C on line %l of %f,' .
+ \ '%-G %\+from line %.%#,' .
+ \ '%-G %\+Use --trace for backtrace.,' .
+ \ '%W%>DEPRECATION WARNING on line %l of %f:,' .
+ \ '%+C%> %.%#,' .
+ \ '%W%>WARNING: on line %l of %f:,' .
+ \ '%+C%> %.%#,' .
+ \ '%W%>WARNING on line %l of %f: %m,' .
+ \ '%+C%> %.%#,' .
+ \ '%W%>WARNING on line %l of %f:,' .
+ \ '%Z%m,' .
+ \ '%W%>WARNING: %m,' .
+ \ '%C on line %l of %f\, %.%#,' .
+ \ '%C on line %l of %f,' .
+ \ '%-G %\+from line %.%#,' .
+ \ 'Syntax %trror on line %l: %m,' .
+ \ '%-G%.%#'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'postprocess': ['compressWhitespace'] })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'sass',
+ \ 'name': 'sass'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/sass/sassc.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/sass/sassc.vim
new file mode 100644
index 0000000..731d178
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/sass/sassc.vim
@@ -0,0 +1,38 @@
+"============================================================================
+"File: sassc.vim
+"Description: Syntax checking plugin for syntastic
+"Maintainer: LCD 47
+"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:loaded_syntastic_sass_sassc_checker")
+ finish
+endif
+let g:loaded_syntastic_sass_sassc_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_sass_sassc_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'fname_after': syntastic#util#DevNull() })
+
+ let errorformat = '%f:%l: %trror: %m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'sass',
+ \ 'name': 'sassc'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/scala/fsc.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/scala/fsc.vim
new file mode 100644
index 0000000..6f1fcf6
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/scala/fsc.vim
@@ -0,0 +1,48 @@
+"============================================================================
+"File: fsc.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Gregor Uhlenheuer
+"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:loaded_syntastic_scala_fsc_checker')
+ finish
+endif
+let g:loaded_syntastic_scala_fsc_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_scala_fsc_GetLocList() dict
+ call syntastic#log#deprecationWarn('scala_options', 'scala_fsc_args')
+
+ " fsc has some serious problems with the
+ " working directory changing after being started
+ " that's why we better pass an absolute path
+ let makeprg = self.makeprgBuild({
+ \ 'args_after': '-Ystop-after:parser',
+ \ 'fname': syntastic#util#shexpand('%:p') })
+
+ let errorformat =
+ \ '%E%f:%l: %trror: %m,' .
+ \ '%Z%p^,' .
+ \ '%-G%.%#'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'scala',
+ \ 'name': 'fsc'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/scala/scalac.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/scala/scalac.vim
new file mode 100644
index 0000000..0d0c15a
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/scala/scalac.vim
@@ -0,0 +1,43 @@
+"============================================================================
+"File: scala.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Rickey Visinski
+"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:loaded_syntastic_scala_scalac_checker")
+ finish
+endif
+let g:loaded_syntastic_scala_scalac_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_scala_scalac_GetLocList() dict
+ call syntastic#log#deprecationWarn('scala_options', 'scala_scalac_args')
+
+ let makeprg = self.makeprgBuild({ 'args_after': '-Ystop-after:parser' })
+
+ let errorformat =
+ \ '%E%f:%l: %trror: %m,' .
+ \ '%Z%p^,' .
+ \ '%-G%.%#'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'scala',
+ \ 'name': 'scalac'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/scala/scalastyle.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/scala/scalastyle.vim
new file mode 100644
index 0000000..5d28269
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/scala/scalastyle.vim
@@ -0,0 +1,77 @@
+"============================================================================
+"File: scalastyle.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: LCD 47
+"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:loaded_syntastic_scala_scalastyle_checker')
+ finish
+endif
+let g:loaded_syntastic_scala_scalastyle_checker = 1
+
+if !exists('g:syntastic_scala_scalastyle_jar')
+ let g:syntastic_scala_scalastyle_jar = 'scalastyle-batch_2.10.jar'
+endif
+
+if !exists('g:syntastic_scala_scalastyle_config_file')
+ let g:syntastic_scala_scalastyle_config_file = 'scalastyle_config.xml'
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_scala_scalastyle_IsAvailable() dict
+ if !executable(self.getExec())
+ return 0
+ endif
+
+ let jar = expand(g:syntastic_scala_scalastyle_jar)
+ let conf_file = expand(g:syntastic_scala_scalastyle_config_file)
+ call self.log('filereadable(' . string(jar) . ') = ' . filereadable(jar) . ', ' .
+ \ 'filereadable(' . string(conf_file) . ') = ' . filereadable(conf_file))
+
+ return filereadable(jar) && filereadable(conf_file)
+endfunction
+
+function! SyntaxCheckers_scala_scalastyle_GetLocList() dict
+
+ let makeprg = self.makeprgBuild({
+ \ 'exe_after': ['-jar', expand(g:syntastic_scala_scalastyle_jar)],
+ \ 'args_before': ['-q', 'true', '-c', expand(g:syntastic_scala_scalastyle_config_file)] })
+
+ let errorformat =
+ \ '%trror file=%f message=%m line=%l column=%c,' .
+ \ '%trror file=%f message=%m line=%l,' .
+ \ '%tarning file=%f message=%m line=%l column=%c,' .
+ \ '%tarning file=%f message=%m line=%l'
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'subtype': 'Style',
+ \ 'returns': [0, 1] })
+
+ for e in loclist
+ if has_key(e, 'col')
+ let e['col'] += 1
+ endif
+ endfor
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'scala',
+ \ 'name': 'scalastyle',
+ \ 'exec': 'java'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/scss/sass.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/scss/sass.vim
new file mode 100644
index 0000000..0f837ca
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/scss/sass.vim
@@ -0,0 +1,25 @@
+"============================================================================
+"File: scss.vim
+"Description: scss syntax checking plugin for syntastic
+"Maintainer: Martin Grenfell
+"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:loaded_syntastic_scss_sass_checker")
+ finish
+endif
+let g:loaded_syntastic_scss_sass_checker = 1
+
+runtime! syntax_checkers/sass/*.vim
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'scss',
+ \ 'name': 'sass',
+ \ 'redirect': 'sass/sass'})
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/scss/sassc.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/scss/sassc.vim
new file mode 100644
index 0000000..75fdc2a
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/scss/sassc.vim
@@ -0,0 +1,25 @@
+"============================================================================
+"File: sassc.vim
+"Description: Syntax checking plugin for syntastic
+"Maintainer: LCD 47
+"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:loaded_syntastic_scss_sassc_checker")
+ finish
+endif
+let g:loaded_syntastic_scss_sassc_checker = 1
+
+runtime! syntax_checkers/sass/*.vim
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'scss',
+ \ 'name': 'sassc',
+ \ 'redirect': 'sass/sassc'})
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/scss/scss_lint.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/scss/scss_lint.vim
new file mode 100644
index 0000000..c01d299
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/scss/scss_lint.vim
@@ -0,0 +1,61 @@
+"============================================================================
+"File: scss_lint.vim
+"Description: SCSS style and syntax checker plugin for Syntastic
+"Maintainer: Shane da Silva
+"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:loaded_syntastic_scss_scss_lint_checker")
+ finish
+endif
+let g:loaded_syntastic_scss_scss_lint_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_scss_scss_lint_IsAvailable() dict
+ if !executable(self.getExec())
+ return 0
+ endif
+
+ let ver = syntastic#util#getVersion(self.getExecEscaped() . ' --version')
+ call self.log(self.getExec() . ' version =', ver)
+
+ return syntastic#util#versionIsAtLeast(ver, [0, 12])
+endfunction
+
+function! SyntaxCheckers_scss_scss_lint_GetLocList() dict
+ let makeprg = self.makeprgBuild({})
+
+ let errorformat = '%f:%l [%t] %m'
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'returns': [0, 1, 2, 65, 66] })
+
+ let cutoff = strlen('Syntax Error: ')
+ for e in loclist
+ if e['text'][: cutoff-1] ==# 'Syntax Error: '
+ let e['text'] = e['text'][cutoff :]
+ else
+ let e['subtype'] = 'Style'
+ endif
+ endfor
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'scss',
+ \ 'name': 'scss_lint',
+ \ 'exec': 'scss-lint' })
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/sh/bashate.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/sh/bashate.vim
new file mode 100644
index 0000000..73b0dcb
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/sh/bashate.vim
@@ -0,0 +1,48 @@
+"============================================================================
+"File: bashate.vim
+"Description: Bash script style checking plugin for syntastic.vim
+"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:loaded_syntastic_sh_bashate_checker")
+ finish
+endif
+let g:loaded_syntastic_sh_bashate_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_sh_bashate_GetLocList() dict
+ let makeprg = self.makeprgBuild({})
+
+ let errorformat =
+ \ '%EE%n: %m,' .
+ \ '%Z - %f: L%l,' .
+ \ '%-G%.%#'
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'subtype': 'Style',
+ \ 'returns': [0, 1] })
+
+ for e in loclist
+ let e['text'] = substitute(e['text'], "\\m: '.*", '', '')
+ endfor
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'sh',
+ \ 'name': 'bashate' })
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/sh/checkbashisms.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/sh/checkbashisms.vim
new file mode 100644
index 0000000..42751cf
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/sh/checkbashisms.vim
@@ -0,0 +1,42 @@
+"============================================================================
+"File: checkbashisms.vim
+"Description: Shell script syntax/style checking plugin for syntastic.vim
+"Notes: checkbashisms.pl can be downloaded from
+" http://debian.inode.at/debian/pool/main/d/devscripts/
+" as part of the devscripts package.
+"============================================================================
+
+if exists("g:loaded_syntastic_sh_checkbashisms_checker")
+ finish
+endif
+let g:loaded_syntastic_sh_checkbashisms_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_sh_checkbashisms_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'args': '-fx' })
+
+ let errorformat =
+ \ '%-Gscript %f is already a bash script; skipping,' .
+ \ '%Eerror: %f: %m\, opened in line %l,' .
+ \ '%Eerror: %f: %m,' .
+ \ '%Ecannot open script %f for reading: %m,' .
+ \ '%Wscript %f %m,%C%.# lines,' .
+ \ '%Wpossible bashism in %f line %l (%m):,%C%.%#,%Z.%#,' .
+ \ '%-G%.%#'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'subtype': 'Style' })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'sh',
+ \ 'name': 'checkbashisms' })
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/sh/sh.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/sh/sh.vim
new file mode 100644
index 0000000..95e6b48
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/sh/sh.vim
@@ -0,0 +1,89 @@
+"============================================================================
+"File: sh.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Gregor Uhlenheuer
+"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:loaded_syntastic_sh_sh_checker")
+ finish
+endif
+let g:loaded_syntastic_sh_sh_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_sh_sh_IsAvailable() dict
+ call self.log('shell =', s:GetShell())
+ return s:IsShellValid()
+endfunction
+
+function! SyntaxCheckers_sh_sh_GetLocList() dict
+ if s:GetShell() ==# 'zsh'
+ return s:ForwardToZshChecker()
+ endif
+
+ if !s:IsShellValid()
+ return []
+ endif
+
+ let makeprg = self.makeprgBuild({
+ \ 'exe': s:GetShell(),
+ \ 'args_after': '-n' })
+
+ let errorformat = '%f: line %l: %m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+endfunction
+
+function! s:GetShell()
+ if !exists('b:shell') || b:shell == ''
+ let b:shell = ''
+ let shebang = syntastic#util#parseShebang()['exe']
+ if shebang != ''
+ if shebang[-strlen('bash'):-1] ==# 'bash'
+ let b:shell = 'bash'
+ elseif shebang[-strlen('zsh'):-1] ==# 'zsh'
+ let b:shell = 'zsh'
+ elseif shebang[-strlen('sh'):-1] ==# 'sh'
+ let b:shell = 'sh'
+ endif
+ endif
+ " try to use env variable in case no shebang could be found
+ if b:shell == ''
+ let b:shell = fnamemodify($SHELL, ':t')
+ endif
+ endif
+ return b:shell
+endfunction
+
+function! s:IsShellValid()
+ let shell = s:GetShell()
+ return shell != '' && executable(shell)
+endfunction
+
+function! s:ForwardToZshChecker()
+ let registry = g:SyntasticRegistry.Instance()
+ let zsh_checkers = registry.getCheckersAvailable('zsh', ['zsh'])
+ if !empty(zsh_checkers)
+ return zsh_checkers[0].getLocListRaw()
+ else
+ return []
+ endif
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'sh',
+ \ 'name': 'sh' })
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/sh/shellcheck.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/sh/shellcheck.vim
new file mode 100644
index 0000000..de69683
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/sh/shellcheck.vim
@@ -0,0 +1,44 @@
+"============================================================================
+"File: shellcheck.vim
+"Description: Shell script syntax/style checking plugin for syntastic.vim
+"============================================================================
+
+if exists("g:loaded_syntastic_sh_shellcheck_checker")
+ finish
+endif
+let g:loaded_syntastic_sh_shellcheck_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_sh_shellcheck_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'args_after': '-f gcc' })
+
+ let errorformat =
+ \ '%f:%l:%c: %trror: %m,' .
+ \ '%f:%l:%c: %tarning: %m,' .
+ \ '%f:%l:%c: %tote: %m'
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'returns': [0, 1] })
+
+ for e in loclist
+ if e['type'] ==? 'n'
+ let e['type'] = 'w'
+ let e['subtype'] = 'Style'
+ endif
+ endfor
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'sh',
+ \ 'name': 'shellcheck' })
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/slim/slimrb.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/slim/slimrb.vim
new file mode 100644
index 0000000..51e641a
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/slim/slimrb.vim
@@ -0,0 +1,56 @@
+"============================================================================
+"File: slim.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Martin Grenfell
+"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:loaded_syntastic_slim_slimrb_checker")
+ finish
+endif
+let g:loaded_syntastic_slim_slimrb_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_slim_slimrb_GetLocList() dict
+ if !exists('s:slimrb_new')
+ let ver = syntastic#util#getVersion(self.getExecEscaped() . ' --version 2>'. syntastic#util#DevNull())
+ call self.log(self.getExec() . ' version =', ver)
+ let s:slimrb_new = syntastic#util#versionIsAtLeast(ver, [1, 3, 1])
+ endif
+
+ let makeprg = self.makeprgBuild({ 'args_after': '-c' })
+
+ if s:slimrb_new
+ let errorformat =
+ \ '%C\ %#%f\, Line %l\, Column %c,'.
+ \ '%-G\ %.%#,'.
+ \ '%ESlim::Parser::SyntaxError: %m,'.
+ \ '%+C%.%#'
+ else
+ let errorformat =
+ \ '%C\ %#%f\, Line %l,'.
+ \ '%-G\ %.%#,'.
+ \ '%ESlim::Parser::SyntaxError: %m,'.
+ \ '%+C%.%#'
+ endif
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'slim',
+ \ 'name': 'slimrb'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/spec/rpmlint.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/spec/rpmlint.vim
new file mode 100644
index 0000000..dfd965d
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/spec/rpmlint.vim
@@ -0,0 +1,43 @@
+"============================================================================
+"File: rpmlint.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: LCD 47
+"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:loaded_syntastic_spec_rpmlint_checker')
+ finish
+endif
+let g:loaded_syntastic_spec_rpmlint_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_spec_rpmlint_GetLocList() dict
+ let makeprg = self.makeprgBuild({})
+
+ let errorformat =
+ \ '%E%f:%l: E: %m,' .
+ \ '%E%f: E: %m,' .
+ \ '%W%f:%l: W: %m,' .
+ \ '%W%f: W: %m,' .
+ \ '%-G%.%#'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'spec',
+ \ 'name': 'rpmlint'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/tcl/nagelfar.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/tcl/nagelfar.vim
new file mode 100644
index 0000000..db723c3
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/tcl/nagelfar.vim
@@ -0,0 +1,44 @@
+"============================================================================
+"File: nagelfar.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: James Pickard
+"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.
+"
+"============================================================================
+"
+"Notes: Requires nagelfar v1.1.12 or later with support for -H option.
+" See nagelfar homepage http://nagelfar.berlios.de/.
+
+if exists("g:loaded_syntastic_tcl_nagelfar_checker")
+ finish
+endif
+let g:loaded_syntastic_tcl_nagelfar_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_tcl_nagelfar_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'args_after': '-H' })
+
+ let errorformat =
+ \ '%I%f: %l: N %m,'.
+ \ '%f: %l: %t %m,'.
+ \ '%-GChecking file %f'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'tcl',
+ \ 'name': 'nagelfar'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/tex/chktex.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/tex/chktex.vim
new file mode 100644
index 0000000..7d4c90a
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/tex/chktex.vim
@@ -0,0 +1,52 @@
+"============================================================================
+"File: chktex.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: LCD 47
+"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:loaded_syntastic_tex_chktex_checker')
+ finish
+endif
+let g:loaded_syntastic_tex_chktex_checker = 1
+
+if !exists('g:syntastic_tex_chktex_showmsgs')
+ let g:syntastic_tex_chktex_showmsgs = 1
+endif
+
+if !exists('g:syntastic_tex_chktex_sort')
+ let g:syntastic_tex_chktex_sort = 1
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_tex_chktex_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'args_after': '-q -v1' })
+
+ let errorformat =
+ \ '%EError %n in %f line %l: %m,' .
+ \ '%WWarning %n in %f line %l: %m,' .
+ \ (g:syntastic_tex_chktex_showmsgs ? '%WMessage %n in %f line %l: %m,' : '') .
+ \ '%Z%p^,' .
+ \ '%-G%.%#'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'subtype': 'Style' })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'tex',
+ \ 'name': 'chktex'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/tex/lacheck.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/tex/lacheck.vim
new file mode 100644
index 0000000..0896919
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/tex/lacheck.vim
@@ -0,0 +1,40 @@
+"============================================================================
+"File: tex.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Martin Grenfell
+"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:loaded_syntastic_tex_lacheck_checker')
+ finish
+endif
+let g:loaded_syntastic_tex_lacheck_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_tex_lacheck_GetLocList() dict
+ let makeprg = self.makeprgBuild({})
+
+ let errorformat =
+ \ '%-G** %f:,' .
+ \ '%E"%f"\, line %l: %m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'tex',
+ \ 'name': 'lacheck'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/texinfo/makeinfo.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/texinfo/makeinfo.vim
new file mode 100644
index 0000000..63cae93
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/texinfo/makeinfo.vim
@@ -0,0 +1,47 @@
+"============================================================================
+"File: makeinfo.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: LCD 47
+"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:loaded_syntastic_texinfo_makeinfo_checker")
+ finish
+endif
+let g:loaded_syntastic_texinfo_makeinfo_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_texinfo_makeinfo_GetHighlightRegex(item)
+ let term = matchstr(a:item['text'], "\\m`\\zs[^']\\+\\ze'")
+ return term != '' ? '\V' . escape(term, '\') : ''
+endfunction
+
+function! SyntaxCheckers_texinfo_makeinfo_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'args_after': syntastic#c#NullOutput() })
+
+ let errorformat =
+ \ '%f:%l: %tarning: %m,' .
+ \ '%f:%l: %m,' .
+ \ '%-G%.%#'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'type': 'e' })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'texinfo',
+ \ 'name': 'makeinfo'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/text/atdtool.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/text/atdtool.vim
new file mode 100644
index 0000000..f092b4b
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/text/atdtool.vim
@@ -0,0 +1,61 @@
+"============================================================================
+"File: atdtool.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: LCD 47
+"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:loaded_syntastic_text_atdtool_checker")
+ finish
+endif
+let g:loaded_syntastic_text_atdtool_checker = 1
+
+if !exists('g:syntastic_text_atdtool_sort')
+ let g:syntastic_text_atdtool_sort = 1
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_text_atdtool_GetHighlightRegex(item)
+ let term = matchstr(a:item['text'], '\m "\zs[^"]\+\ze"\($\| | suggestions:\)')
+ if term != ''
+ let col = get(a:item, 'col', 0)
+ let term = (col != 0 ? '\%' . col . 'c' : '') . '\V' . escape(term, '\')
+ endif
+ return term
+endfunction
+
+function! SyntaxCheckers_text_atdtool_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'tail': '2> ' . syntastic#util#DevNull() })
+
+ let errorformat =
+ \ '%W%f:%l:%c: %m,'.
+ \ '%+C suggestions:%.%#'
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'returns': [0],
+ \ 'subtype': 'Style' })
+
+ for e in loclist
+ let e['text'] = substitute(e['text'], '\m\n\s\+', ' | ', 'g')
+ endfor
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'text',
+ \ 'name': 'atdtool'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/text/igor.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/text/igor.vim
new file mode 100644
index 0000000..4b358e5
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/text/igor.vim
@@ -0,0 +1,25 @@
+"============================================================================
+"File: igor.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: LCD 47
+"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:loaded_syntastic_text_igor_checker')
+ finish
+endif
+let g:loaded_syntastic_text_igor_checker = 1
+
+runtime! syntax_checkers/docbk/*.vim
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'text',
+ \ 'name': 'igor',
+ \ 'redirect': 'docbk/igor'})
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/text/language_check.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/text/language_check.vim
new file mode 100644
index 0000000..2011146
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/text/language_check.vim
@@ -0,0 +1,37 @@
+"============================================================================
+"File: language_check.vim
+"Description: Grammar checker (https://github.com/myint/language-check)
+"Authors: Steven Myint
+"
+"============================================================================
+
+if exists("g:loaded_syntastic_text_language_check_checker")
+ finish
+endif
+let g:loaded_syntastic_text_language_check_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_text_language_check_GetLocList() dict
+ let makeprg = self.makeprgBuild({})
+
+ let errorformat =
+ \ '%f:%l:%c: %m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'subtype': 'Style',
+ \ 'returns': [0, 2] })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'text',
+ \ 'name': 'language_check',
+ \ 'exec': 'language-check'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/twig/twiglint.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/twig/twiglint.vim
new file mode 100644
index 0000000..36e264b
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/twig/twiglint.vim
@@ -0,0 +1,41 @@
+"============================================================================
+"File: twig.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Alexander
+"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:loaded_syntastic_twig_twiglint_checker")
+ finish
+endif
+let g:loaded_syntastic_twig_twiglint_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_twig_twiglint_GetLocList() dict
+ let makeprg = self.makeprgBuild({
+ \ 'args_before': 'lint',
+ \ 'args_after': '--format=csv' })
+
+ let errorformat = '"%f"\,%l\,%m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat})
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'twig',
+ \ 'name': 'twiglint',
+ \ 'exec': 'twig-lint'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/typescript/tsc.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/typescript/tsc.vim
new file mode 100644
index 0000000..521a531
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/typescript/tsc.vim
@@ -0,0 +1,43 @@
+"============================================================================
+"File: typescript.vim
+"Description: TypeScript syntax checker
+"Maintainer: Bill Casarin
+"============================================================================
+
+if exists("g:loaded_syntastic_typescript_tsc_checker")
+ finish
+endif
+let g:loaded_syntastic_typescript_tsc_checker = 1
+
+if !exists('g:syntastic_typescript_tsc_sort')
+ let g:syntastic_typescript_tsc_sort = 1
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_typescript_tsc_GetLocList() dict
+ let makeprg = self.makeprgBuild({
+ \ 'args': '--module commonjs',
+ \ 'args_after': '--out ' . syntastic#util#DevNull() })
+
+ let errorformat =
+ \ '%E%f %#(%l\,%c): error %m,' .
+ \ '%E%f %#(%l\,%c): %m,' .
+ \ '%Eerror %m,' .
+ \ '%C%\s%\+%m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'defaults': {'bufnr': bufnr("")} })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'typescript',
+ \ 'name': 'tsc'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/typescript/tslint.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/typescript/tslint.vim
new file mode 100644
index 0000000..eeeb8b4
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/typescript/tslint.vim
@@ -0,0 +1,46 @@
+"============================================================================
+"File: typescript/tslint.vim
+"Description: TypeScript linter
+"Maintainer: Seon-Wook Park
+"============================================================================
+
+if exists("g:loaded_syntastic_typescript_tslint_checker")
+ finish
+endif
+let g:loaded_syntastic_typescript_tslint_checker = 1
+
+if !exists('g:syntastic_typescript_tslint_sort')
+ let g:syntastic_typescript_tslint_sort = 1
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_typescript_tslint_GetHighlightRegex(item)
+ let term = matchstr(a:item['text'], "\\m\\s'\\zs.\\{-}\\ze'\\s")
+ return term != '' ? '\V' . escape(term, '\') : ''
+endfunction
+
+function! SyntaxCheckers_typescript_tslint_GetLocList() dict
+ let makeprg = self.makeprgBuild({
+ \ 'args_after': '--format verbose',
+ \ 'fname_before': '-f' })
+
+ " (comment-format) ts/app.ts[12, 36]: comment must start with lowercase letter
+ let errorformat = '%f[%l\, %c]: %m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'preprocess': 'tslint',
+ \ 'returns': [0, 2] })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'typescript',
+ \ 'name': 'tslint'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/vala/valac.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/vala/valac.vim
new file mode 100644
index 0000000..3f73645
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/vala/valac.vim
@@ -0,0 +1,80 @@
+"============================================================================
+"File: vala.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Konstantin Stepanov (me@kstep.me)
+"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:loaded_syntastic_vala_valac_checker")
+ finish
+endif
+let g:loaded_syntastic_vala_valac_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_vala_valac_GetHighlightRegex(pos)
+ let length = strlen(matchstr(a:pos['text'], '\m\^\+$'))
+ return '\%>' . (a:pos['col'] - 1) . 'c\%<' . (a:pos['col'] + length) . 'c'
+endfunction
+
+function! s:GetValaModules()
+ if exists('g:syntastic_vala_modules')
+ if type(g:syntastic_vala_modules) == type('')
+ return split(g:syntastic_vala_modules, '\s\+')
+ elseif type(g:syntastic_vala_modules) == type([])
+ return copy(g:syntastic_vala_modules)
+ else
+ echoerr 'g:syntastic_vala_modules must be either list or string: fallback to in file modules string'
+ endif
+ endif
+
+ let modules_line = search('^// modules: ', 'n')
+ let modules_str = getline(modules_line)
+ return split(strpart(modules_str, 12), '\s\+')
+endfunction
+
+function! s:GetValaVapiDirs()
+ if exists('g:syntastic_vala_vapi_dirs')
+ if type(g:syntastic_vala_vapi_dirs) == type('')
+ return split(g:syntastic_vala_vapi_dirs, '\s\+')
+ elseif type(g:syntastic_vala_vapi_dirs) == type([])
+ return copy(g:syntastic_vala_vapi_dirs)
+ else
+ echoerr 'g:syntastic_vala_vapi_dirs must be either a list, or a string: fallback to in-file modules string'
+ endif
+ endif
+
+ let vapi_line = search('^//\s*vapidirs:\s*','n')
+ let vapi_str = getline(vapi_line)
+ return split( substitute( vapi_str, '^//\s*vapidirs:\s*', '', 'g' ), '\s\+' )
+endfunction
+
+function! SyntaxCheckers_vala_valac_GetLocList() dict
+ let vala_pkg_args = join(map(s:GetValaModules(), '"--pkg ".v:val'), ' ')
+ let vala_vapi_args = join(map(s:GetValaVapiDirs(), '"--vapidir ".v:val'), ' ')
+ let makeprg = self.makeprgBuild({ 'args': '-C ' . vala_pkg_args . " " . vala_vapi_args })
+
+ let errorformat =
+ \ '%A%f:%l.%c-%\d%\+.%\d%\+: %t%[a-z]%\+: %m,'.
+ \ '%C%m,'.
+ \ '%Z%m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'vala',
+ \ 'name': 'valac'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/verilog/verilator.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/verilog/verilator.vim
new file mode 100644
index 0000000..afe58fc
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/verilog/verilator.vim
@@ -0,0 +1,42 @@
+"============================================================================
+"File: verilator.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Kocha
+"============================================================================
+
+if exists("g:loaded_syntastic_verilog_verilator_checker")
+ finish
+endif
+let g:loaded_syntastic_verilog_verilator_checker = 1
+
+if !exists('g:syntastic_verilog_compiler_options')
+ let g:syntastic_verilog_compiler_options = '-Wall'
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_verilog_verilator_IsAvailable() dict
+ if !exists('g:syntastic_verilog_compiler')
+ let g:syntastic_verilog_compiler = self.getExec()
+ endif
+ call self.log('g:syntastic_verilog_compiler =', g:syntastic_verilog_compiler)
+ return executable(expand(g:syntastic_verilog_compiler))
+endfunction
+
+function! SyntaxCheckers_verilog_verilator_GetLocList() dict
+ return syntastic#c#GetLocList('verilog', 'verilator', {
+ \ 'errorformat':
+ \ '%%%trror-%\=%\w%#: %f:%l: %m,' .
+ \ '%%%tarning-%\=%\w%#: %f:%l: %m',
+ \ 'main_flags': '--lint-only' })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'verilog',
+ \ 'name': 'verilator' })
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/vhdl/ghdl.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/vhdl/ghdl.vim
new file mode 100644
index 0000000..ff02224
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/vhdl/ghdl.vim
@@ -0,0 +1,38 @@
+"============================================================================
+"File: ghdl.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Jan Wagner
+"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:loaded_syntastic_vhdl_ghdl_checker")
+ finish
+endif
+let g:loaded_syntastic_vhdl_ghdl_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_vhdl_ghdl_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'args_before': '-s' })
+
+ let errorformat = '%f:%l:%c: %m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'vhdl',
+ \ 'name': 'ghdl'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/vim/vimlint.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/vim/vimlint.vim
new file mode 100644
index 0000000..ddcf927
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/vim/vimlint.vim
@@ -0,0 +1,101 @@
+"============================================================================
+"File: vimlint.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: LCD 47
+"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:loaded_syntastic_vim_vimlint_checker")
+ finish
+endif
+let g:loaded_syntastic_vim_vimlint_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_vim_vimlint_GetHighlightRegex(item)
+ let term = matchstr(a:item['text'], '\m `\zs[^`]\+\ze`')
+ if term != ''
+ let col = get(a:item, 'col', 0)
+
+ if col && term[0:1] ==# 'l:'
+ if getline(a:item.lnum)[col-1:col] !=# 'l:'
+ let term = term[2:]
+ endif
+ endif
+
+ return col ? '\%>' . (col - 1) . 'c\%<' . (col + strlen(term)) . 'c' : '\V' . escape(term, '\')
+ endif
+
+ return ''
+endfunction
+
+function! SyntaxCheckers_vim_vimlint_IsAvailable() dict
+ let vimlparser = globpath(&runtimepath, 'autoload/vimlparser.vim')
+ let vimlint = globpath(&runtimepath, 'autoload/vimlint.vim')
+ call self.log("globpath(&runtimepath, 'autoload/vimlparser.vim') = " . string(vimlparser) . ', ' .
+ \ "globpath(&runtimepath, 'autoload/vimlint.vim') = " . string(vimlint))
+ return vimlparser != '' && vimlint != ''
+endfunction
+
+function! SyntaxCheckers_vim_vimlint_GetLocList() dict
+ " EVL102: unused variable v
+ " EVL103: unused argument v
+ " EVL104: variable may not be initialized on some execution path: v
+ " EVL105: global variable v is defined without g:
+ " EVL106: local variable v is used without l:
+ " EVL201: unreachable code
+ " EVL204: constant in conditional context
+ " EVL205: missing scriptencoding
+ " value 3: the message is a warning
+ "
+ " References: :help vimlint-errorcode and :help vimlint-variables
+ let param = {
+ \ 'output': function('s:vimlintOutput'),
+ \ 'quiet': 1,
+ \ 'EVL102': 3,
+ \ 'EVL103': 3,
+ \ 'EVL104': 3,
+ \ 'EVL105': 3,
+ \ 'EVL106': 3,
+ \ 'EVL201': 3,
+ \ 'EVL204': 3,
+ \ 'EVL205': 3 }
+
+ if exists('g:syntastic_vimlint_options')
+ if type(g:syntastic_vimlint_options) == type({})
+ let options = filter(copy(g:syntastic_vimlint_options), 'v:key =~# "\\m^EVL"')
+ call extend(param, options, 'force')
+ endif
+ endif
+
+ return vimlint#vimlint(expand('%'), param)
+endfunction
+
+" @vimlint(EVL103, 1, a:filename)
+function! s:vimlintOutput(filename, pos, ev, eid, mes, obj)
+ call add(a:obj.error, {
+ \ 'bufnr': bufnr(''),
+ \ 'lnum': a:pos.lnum,
+ \ 'col': a:pos.col,
+ \ 'vcol': 0,
+ \ 'type': a:ev[0],
+ \ 'text': '[' . a:eid . '] ' . a:mes,
+ \ 'valid': a:pos.lnum > 0 })
+endfunction
+" @vimlint(EVL103, 0, a:filename)
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'vim',
+ \ 'name': 'vimlint',
+ \ 'exec': 'vim' })
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/xhtml/jshint.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/xhtml/jshint.vim
new file mode 100644
index 0000000..3312cce
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/xhtml/jshint.vim
@@ -0,0 +1,25 @@
+"============================================================================
+"File: jshint.vim
+"Description: Javascript syntax checker for xHTML - using jshint
+"Maintainer: LCD 47
+"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:loaded_syntastic_xhtml_jshint_checker")
+ finish
+endif
+let g:loaded_syntastic_xhtml_jshint_checker = 1
+
+runtime! syntax_checkers/html/*.vim
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'xhtml',
+ \ 'name': 'jshint',
+ \ 'redirect': 'html/jshint'})
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/xhtml/tidy.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/xhtml/tidy.vim
new file mode 100644
index 0000000..1eed920
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/xhtml/tidy.vim
@@ -0,0 +1,89 @@
+"============================================================================
+"File: xhtml.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Martin Grenfell
+"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.
+"
+"============================================================================
+"
+" Checker option:
+"
+" - g:syntastic_xhtml_tidy_ignore_errors (list; default: [])
+" list of errors to ignore
+
+if exists("g:loaded_syntastic_xhtml_tidy_checker")
+ finish
+endif
+let g:loaded_syntastic_xhtml_tidy_checker = 1
+
+if !exists('g:syntastic_xhtml_tidy_ignore_errors')
+ let g:syntastic_xhtml_tidy_ignore_errors = []
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+" 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',
+ \ 'cp932': '-shiftjis',
+ \ 'sjis': '-shiftjis',
+ \ 'cp850': '-ibm858',
+ \ }
+ return get(TIDY_OPTS, &fileencoding, '-utf8')
+endfunction
+
+function! s:IgnoreError(text)
+ for item in g:syntastic_xhtml_tidy_ignore_errors
+ if stridx(a:text, item) != -1
+ return 1
+ endif
+ endfor
+ return 0
+endfunction
+
+function! SyntaxCheckers_xhtml_tidy_GetLocList() dict
+ let encopt = s:TidyEncOptByFenc()
+ let makeprg = self.makeprgBuild({ 'args_after': encopt . ' -xml -e' })
+
+ let errorformat=
+ \ '%Wline %l column %v - Warning: %m,' .
+ \ '%Eline %l column %v - Error: %m,' .
+ \ '%-G%.%#'
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'defaults': {'bufnr': bufnr("")},
+ \ 'returns': [0, 1, 2] })
+
+ for e in loclist
+ if e['valid'] && s:IgnoreError(e['text']) == 1
+ let e['valid'] = 0
+ endif
+ endfor
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'xhtml',
+ \ 'name': 'tidy'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/xml/plutil.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/xml/plutil.vim
new file mode 100644
index 0000000..a9ad145
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/xml/plutil.vim
@@ -0,0 +1,42 @@
+"============================================================================
+"File: plutil.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: LCD 47
+"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:loaded_syntastic_xml_plutil_checker")
+ finish
+endif
+let g:loaded_syntastic_xml_plutil_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_xml_plutil_GetLocList() dict
+ let makeprg = self.makeprgBuild({
+ \ 'args_before': '-lint -s',
+ \ 'fname_before': '--' })
+
+ let errorformat =
+ \ '%E%f: %m at line %l'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'returns': [0, 1] })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'xml',
+ \ 'name': 'plutil'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/xml/xmllint.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/xml/xmllint.vim
new file mode 100644
index 0000000..3076cab
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/xml/xmllint.vim
@@ -0,0 +1,52 @@
+"============================================================================
+"File: xml.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Sebastian Kusnier
+"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:loaded_syntastic_xml_xmllint_checker")
+ finish
+endif
+let g:loaded_syntastic_xml_xmllint_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+" 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.
+
+function! SyntaxCheckers_xml_xmllint_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'args_after': '--xinclude --noout --postvalid' })
+
+ 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%.%#'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'returns': [0, 1, 2, 3, 4, 5] })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'xml',
+ \ 'name': 'xmllint'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/xslt/xmllint.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/xslt/xmllint.vim
new file mode 100644
index 0000000..e224c25
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/xslt/xmllint.vim
@@ -0,0 +1,25 @@
+"============================================================================
+"File: xslt.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Sebastian Kusnier
+"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:loaded_syntastic_xslt_xmllint_checker")
+ finish
+endif
+let g:loaded_syntastic_xslt_xmllint_checker = 1
+
+runtime! syntax_checkers/xml/*.vim
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'xslt',
+ \ 'name': 'xmllint',
+ \ 'redirect': 'xml/xmllint'})
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/yacc/bison.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/yacc/bison.vim
new file mode 100644
index 0000000..8444879
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/yacc/bison.vim
@@ -0,0 +1,55 @@
+"============================================================================
+"File: yacc.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: LCD 47
+"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:loaded_syntastic_yacc_bison_checker")
+ finish
+endif
+let g:loaded_syntastic_yacc_bison_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_yacc_bison_GetLocList() dict
+ let makeprg = self.makeprgBuild({
+ \ 'args_after': syntastic#c#NullOutput() })
+
+ let errorformat =
+ \ '%E%f:%l%.%v-%.%\{-}: %trror: %m,' .
+ \ '%E%f:%l%.%v: %trror: %m,' .
+ \ '%W%f:%l%.%v-%.%\{-}: %tarning: %m,' .
+ \ '%W%f:%l%.%v: %tarning: %m,' .
+ \ '%I%f:%l%.%v-%.%\{-}: %\s%\+%m,' .
+ \ '%I%f:%l%.%v: %\s%\+%m'
+
+ let loclist = SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+
+ let last_type = 'E'
+ for e in loclist
+ if e['type'] ==? 'I'
+ let e['type'] = last_type
+ endif
+ let last_type = e['type']
+ endfor
+
+ return loclist
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'yacc',
+ \ 'name': 'bison'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/yaml/jsyaml.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/yaml/jsyaml.vim
new file mode 100644
index 0000000..d76a0c7
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/yaml/jsyaml.vim
@@ -0,0 +1,49 @@
+"============================================================================
+"File: yaml.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Martin Grenfell
+"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:loaded_syntastic_yaml_jsyaml_checker")
+ finish
+endif
+let g:loaded_syntastic_yaml_jsyaml_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_yaml_jsyaml_GetLocList() dict
+ if !exists('s:js_yaml_new')
+ let ver = syntastic#util#getVersion(self.getExecEscaped() . ' --version')
+ call self.log(self.getExec() . ' version =', ver)
+ let s:js_yaml_new = syntastic#util#versionIsAtLeast(ver, [2])
+ endif
+
+ let makeprg = self.makeprgBuild({ 'args_after': (s:js_yaml_new ? '' : '--compact') })
+
+ let errorformat =
+ \ 'Error on line %l\, col %c:%m,' .
+ \ 'JS-YAML: %m at line %l\, column %c:,' .
+ \ '%-G%.%#'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'defaults': {'bufnr': bufnr("")} })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'yaml',
+ \ 'name': 'jsyaml',
+ \ 'exec': 'js-yaml'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/yaml/yamlxs.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/yaml/yamlxs.vim
new file mode 100644
index 0000000..1f92d48
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/yaml/yamlxs.vim
@@ -0,0 +1,72 @@
+"============================================================================
+"File: yamlxs.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: LCD 47
+"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:loaded_syntastic_yaml_yamlxs_checker")
+ finish
+endif
+let g:loaded_syntastic_yaml_yamlxs_checker = 1
+
+if !exists('g:syntastic_perl_lib_path')
+ let g:syntastic_perl_lib_path = []
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_yaml_yamlxs_IsAvailable() dict
+ if !exists('g:syntastic_yaml_yamlxs_exec') && exists('g:syntastic_perl_interpreter')
+ let g:syntastic_yaml_yamlxs_exec = g:syntastic_perl_interpreter
+ endif
+
+ " don't call executable() here, to allow things like
+ " let g:syntastic_perl_interpreter='/usr/bin/env perl'
+ silent! call system(self.getExecEscaped() . ' ' . s:Modules() . ' -e ' . syntastic#util#shescape('exit(0)'))
+ return v:shell_error == 0
+endfunction
+
+function! SyntaxCheckers_yaml_yamlxs_GetLocList() dict
+ let makeprg = self.makeprgBuild({
+ \ 'args_before': s:Modules() . ' -e ' . syntastic#util#shescape('YAML::XS::LoadFile($ARGV[0])') })
+
+ let errorformat =
+ \ '%EYAML::XS::Load Error: The problem:,' .
+ \ '%-C,' .
+ \ '%C %m,' .
+ \ '%Cwas found at document: %\d%\+\, line: %l\, column: %c,' .
+ \ '%-G%.%#'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat,
+ \ 'postprocess': ['compressWhitespace'],
+ \ 'defaults': {'bufnr': bufnr("")} })
+endfunction
+
+function s:Modules()
+ if type(g:syntastic_perl_lib_path) == type('')
+ call syntastic#log#oneTimeWarn('variable g:syntastic_perl_lib_path should be a list')
+ let includes = split(g:syntastic_perl_lib_path, ',')
+ else
+ let includes = copy(syntastic#util#var('perl_lib_path'))
+ endif
+ return join(map(includes, '"-I" . v:val') + ['-MYAML::XS'])
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'yaml',
+ \ 'name': 'yamlxs',
+ \ 'exec': 'perl' })
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/z80/z80syntaxchecker.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/z80/z80syntaxchecker.vim
new file mode 100644
index 0000000..b0a5ab4
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/z80/z80syntaxchecker.vim
@@ -0,0 +1,39 @@
+"============================================================================
+"File: z80syntaxchecker.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Romain Giot
+"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:loaded_syntastic_z80_z80syntaxchecker_checker")
+ finish
+endif
+let g:loaded_syntastic_z80_z80syntaxchecker_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_z80_z80syntaxchecker_GetLocList() dict
+ let makeprg = self.makeprgBuild({})
+
+ let errorformat = '%f:%l %m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'z80',
+ \ 'name': 'z80syntaxchecker',
+ \ 'exec': 'z80_syntax_checker.py'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/zpt/zptlint.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/zpt/zptlint.vim
new file mode 100644
index 0000000..b27b22c
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/zpt/zptlint.vim
@@ -0,0 +1,42 @@
+"============================================================================
+"File: zpt.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: claytron
+"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:loaded_syntastic_zpt_zptlint_checker")
+ finish
+endif
+let g:loaded_syntastic_zpt_zptlint_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_zpt_zptlint_GetLocList() dict
+ let makeprg = self.makeprgBuild({})
+
+ let errorformat=
+ \ '%-P*** Error in: %f,'.
+ \ '%Z%*\s\, at line %l\, column %c,'.
+ \ '%E%*\s%m,'.
+ \ '%-Q'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat })
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'zpt',
+ \ 'name': 'zptlint'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/zsh/shellcheck.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/zsh/shellcheck.vim
new file mode 100644
index 0000000..42f6fcf
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/zsh/shellcheck.vim
@@ -0,0 +1,25 @@
+"============================================================================
+"File: shellcheck.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: LCD 47
+"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:loaded_syntastic_zsh_shellcheck_checker")
+ finish
+endif
+let g:loaded_syntastic_zsh_shellcheck_checker = 1
+
+runtime! syntax_checkers/sh/*.vim
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'zsh',
+ \ 'name': 'shellcheck',
+ \ 'redirect': 'sh/shellcheck'})
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/bundle/syntastic/syntax_checkers/zsh/zsh.vim b/vim/vim.symlink/bundle/syntastic/syntax_checkers/zsh/zsh.vim
new file mode 100644
index 0000000..4805763
--- /dev/null
+++ b/vim/vim.symlink/bundle/syntastic/syntax_checkers/zsh/zsh.vim
@@ -0,0 +1,38 @@
+"============================================================================
+"File: zsh.vim
+"Description: Syntax checking plugin for syntastic.vim
+"Maintainer: Martin Grenfell
+"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:loaded_syntastic_zsh_zsh_checker")
+ finish
+endif
+let g:loaded_syntastic_zsh_zsh_checker = 1
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+function! SyntaxCheckers_zsh_zsh_GetLocList() dict
+ let makeprg = self.makeprgBuild({ 'args_after': '-n' })
+
+ let errorformat = '%f:%l: %m'
+
+ return SyntasticMake({
+ \ 'makeprg': makeprg,
+ \ 'errorformat': errorformat})
+endfunction
+
+call g:SyntasticRegistry.CreateAndRegisterChecker({
+ \ 'filetype': 'zsh',
+ \ 'name': 'zsh'})
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: set et sts=4 sw=4:
diff --git a/vim/vim.symlink/colors/maxbucknell.vim b/vim/vim.symlink/colors/maxbucknell.vim
index 580c469..45b89b4 100644
--- a/vim/vim.symlink/colors/maxbucknell.vim
+++ b/vim/vim.symlink/colors/maxbucknell.vim
@@ -5,22 +5,30 @@ if exists("syntax_on")
syntax reset
endif
+"""""""""""""""""""""""""""""
+"
" Terminal colours cheatsheet
"
" 0: black
-" 1: red
-" 2: green
-" 3: yellow
+" 1: red (errors)
+" 2: green (comments)
+" 3: yellow (search)
" 4: blue
-" 5: magenta
+" 5: magenta (current)
" 6: cyan
-" 7: white
+" 7: white (default)
"
" +8 for bright colours.
+"
+"""""""""""""""""""""""""""""
let g:colors_name = "maxbucknell"
-" Basic settings
+
+""""""""""""""""""""""""""""""""""
+" Make everything white by default
+""""""""""""""""""""""""""""""""""
+
hi Normal cterm=NONE ctermfg=7 ctermbg=NONE
hi Type cterm=NONE ctermfg=7 ctermbg=NONE
hi Keyword cterm=NONE ctermfg=7 ctermbg=NONE
@@ -35,27 +43,38 @@ hi Constant cterm=NONE ctermfg=7 ctermbg=NONE
hi Define cterm=NONE ctermfg=7 ctermbg=NONE
hi Include cterm=NONE ctermfg=7 ctermbg=NONE
-" Status Line
-hi StatusLine cterm=bold ctermfg=1 ctermbg=NONE
-" Vim settings
+" Residual Vim colors
+
hi VimSet cterm=NONE ctermfg=7 ctermbg=NONE
hi VimOption cterm=NONE ctermfg=7 ctermbg=NONE
hi VimHiAttrib cterm=NONE ctermfg=7 ctermbg=NONE
-" Comments are important
+
+" Miscellaneous leftovers
+
+hi helpNote cterm=NONE ctermfg=7 ctermbg=NONE
+hi MatchParens cterm=NONE ctermfg=7 ctermbg=NONE
+
+" Comments are green
hi Comment cterm=NONE ctermfg=2 ctermbg=NONE
hi PreProc cterm=NONE ctermfg=2 ctermbg=NONE
-" Invisibles are less important
-hi SpecialKey cterm=NONE ctermfg=0 ctermbg=NONE
+" Make current line magenta
+hi CursorLine cterm=NONE ctermfg=5 ctermbg=NONE
-" Make current line bold
-hi CursorLine cterm=bold ctermfg=NONE ctermbg=NONE
+" Current search result yellow
+hi Search cterm=NONE ctermfg=3 ctermbg=0
+hi MBSearchNext cterm=NONE ctermfg=3 ctermbg=0
-" Current search result
-hi Search cterm=bold ctermfg=7 ctermbg=0
+" Errors are red
+hi SyntasticErrorLine cterm=NONE ctermfg=1 ctermbg=NONE
+hi SyntasticWarningLine cterm=NONE ctermfg=1 ctermbg=NONE
+hi SyntasticError cterm=NONE ctermfg=1 ctermbg=NONE
+hi SyntasticWarning cterm=NONE ctermfg=1 ctermbg=NONE
-" Next search result
-hi MBSearchNExt cterm=bold ctermfg=7 ctermbg=5
+"""""""""""""
+" Status Line
+"""""""""""""
+hi StatusLine cterm=bold ctermfg=1 ctermbg=NONE
diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink
index 16f82d5..1873fe5 100644
--- a/vim/vimrc.symlink
+++ b/vim/vimrc.symlink
@@ -60,6 +60,9 @@ function! HLNext (blinktime)
redraw
endfunction
+" Disable match-paren
+let loaded_matchparen = 1
+
" Make searches case sensitive only if an upper case character has been typed
set ignorecase smartcase
@@ -153,7 +156,7 @@ augroup END
"""""""""""""
" STATUS LINE
"""""""""""""
-:set statusline=%<[%n]:\ %f\ %5l,%3c\ (%{&ft})
+set statusline=%<[%n]:\ %f\ %5l,%3c\ (%{&ft})
""""""""""""""""""""""""
@@ -163,6 +166,12 @@ augroup END
nmap