[
  {
    "path": ".gitignore",
    "content": "*~\n*.swp\ntags\n.DS_Store\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "content": "# CONTRIBUTING\n- - -\n1\\. [Deprecation note](#deprecation)  \n2\\. [Bug reports / GitHub issues](#bugreps)  \n3\\. [Submitting a patch](#patches)  \n4\\. [General style notes](#generalstyle)  \n5\\. [Syntax checker notes](#checkerstyle)  \n- - -\n\n<a name=\"deprecation\"></a>\n\n## 1. Deprecation note\n\nThis project is no longer maintained.  If you need a syntax checking plugin\nfor [Vim][vim] you might be interested in Syntastic's spiritual succesor,\n[ALE][ale].  Although it shares no code with syntastic and it takes a very\ndifferent approach to design, [ALE][ale] can be considered a natural evolution\nof syntastic in terms of goals and functionality.  Check it out, you probably\nwon't be disappointed.\n\n<a name=\"bugreps\"></a>\n\n## 2. Bug reports / GitHub issues\n\nPlease note that the preferred channel for posting bug reports is the\n[issue tracker at GitHub][bug_tracker]. Reports posted elsewhere are less likely\nto be seen by the core team.\n\nWhen reporting a bug make sure you search the existing GitHub issues\nfor the same/similar issues. If you find one, feel free to add a `+1`\ncomment with any additional information that may help us solve the\nissue.\n\nWhen creating a new issue be sure to state the following:\n\n* steps to reproduce the bug;\n* the version of Vim you are using (run `:ver` to find out);\n* the version of syntastic you are using (see `:SyntasticInfo`).\n\nFor syntax checker bugs also state the version of the checker executable\nthat you are using. Adding debugging information is typically useful\ntoo:\n\n* open a file handled by your checker;\n* set `g:syntastic_debug` to 1 or 3;\n* run the checker;\n* copy the output of `:mes`.\n\n<a name=\"patches\"></a>\n\n## 3. Submitting a patch\n\nBefore you consider adding features to syntastic, _please_ spend a few minutes\n(re-)reading the latest version of the [manual][manual]. Syntastic is changing\nrapidly at times, and it's possible that some features you want to add exist\nalready.\n\nTo submit a patch:\n\n* fork the [repo][github] on GitHub;\n* make a [topic branch][branches] and start hacking;\n* submit a pull request based off your topic branch.\n\nSmall, focused patches are preferred.\n\nLarge changes to the code should be discussed with the core team first.\nCreate an issue and explain your plan and see what we say.\n\nAlso, make sure to update the manual whenever applicable. Nobody can use\nfeatures that aren't documented.\n\n<a name=\"generalstyle\"></a>\n\n## 4. General style notes\n\nFollow the coding conventions/styles used in the syntastic core:\n\n* use 4 space indents;\n* don't use abbreviated keywords - e.g. use `endfunction`, not `endfun`\n(there's always room for more fun!);\n* don't use `l:` prefixes for variables unless actually required (i.e.\nalmost never);\n* code for maintainability; we would rather a function be a couple of\nlines longer and have (for example) some [explaining variables][variables] to\naid readability.\n\n<a name=\"checkerstyle\"></a>\n\n## 5. Syntax checker notes\n\nMake sure to read the [guide][guide] if you plan to add new syntax checkers.\n\nUse the existing checkers as templates, rather than writing everything\nfrom scratch.\n\nThe preferred style for error format strings is one \"clause\" per line.\nE.g. (from the `coffee` checker):\n\n```vim\nlet errorformat =\n    \\ '%E%f:%l:%c: %trror: %m,' .\n    \\ 'Syntax%trror: In %f\\, %m on line %l,' .\n    \\ '%EError: In %f\\, Parse error on line %l: %m,' .\n    \\ '%EError: In %f\\, %m on line %l,' .\n    \\ '%W%f(%l): lint warning: %m,' .\n    \\ '%W%f(%l): warning: %m,' .\n    \\ '%E%f(%l): SyntaxError: %m,' .\n    \\ '%-Z%p^,' .\n    \\ '%-G%.%#'\n```\n\n[ale]:              https://github.com/dense-analysis/ale\n[bug_tracker]:      https://github.com/vim-syntastic/syntastic/issues\n[manual]:           https://github.com/vim-syntastic/syntastic/blob/master/doc/syntastic.txt\n[github]:           https://github.com/vim-syntastic/syntastic\n[branches]:         https://github.com/dchelimsky/rspec/wiki/Topic-Branches#using-topic-branches-when-contributing-patches\n[variables]:        http://www.refactoring.com/catalog/extractVariable.html\n[guide]:            https://github.com/vim-syntastic/syntastic/wiki/Syntax-Checker-Guide\n[vim]:              http://www.vim.org/\n"
  },
  {
    "path": "LICENCE",
    "content": "           DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE\n                   Version 2, December 2004\n\nCopyright (C) 2004 Sam Hocevar <sam@hocevar.net>\n\nEveryone is permitted to copy and distribute verbatim or modified\ncopies of this license document, and changing it is allowed as long\nas the name is changed.\n\n           DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE\n  TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\n\n 0. You just DO WHAT THE FUCK YOU WANT TO.\n"
  },
  {
    "path": "README.markdown",
    "content": "                   ,\n                  / \\,,_  .'|\n               ,{{| /}}}}/_.'            _____________________________________________\n              }}}}` '{{'  '.            /                                             \\\n            {{{{{    _   ;, \\          /            Ladies and Gentlemen,              \\\n         ,}}}}}}    /o`\\  ` ;)        |                                                |\n        {{{{{{   /           (        |                 this is ...                    |\n        }}}}}}   |            \\       |                                                |\n       {{{{{{{{   \\            \\      |                                                |\n       }}}}}}}}}   '.__      _  |     |    _____             __             __  _      |\n       {{{{{{{{       /`._  (_\\ /     |   / ___/__  ______  / /_____ ______/ /_(_)____ |\n        }}}}}}'      |    //___/   --=:   \\__ \\/ / / / __ \\/ __/ __ `/ ___/ __/ / ___/ |\n    jgs `{{{{`       |     '--'       |  ___/ / /_/ / / / / /_/ /_/ (__  ) /_/ / /__   |\n         }}}`                         | /____/\\__, /_/ /_/\\__/\\__,_/____/\\__/_/\\___/   |\n                                      |      /____/                                    |\n                                      |                                               /\n                                       \\_____________________________________________/\n\n\n- - -\n1. [Deprecation note](#deprecation)  \n2. [Introduction](#introduction)  \n3. [Installation](#installation)  \n3.1. [Requirements](#requirements)  \n3.2. [Installing syntastic with Pathogen](#installpathogen)  \n4. [Recommended settings](#settings)  \n5. [FAQ](#faq)  \n5.1. [I installed syntastic but it isn't reporting any errors...](#faqinfo)  \n5.2. [Syntastic supports several checkers for my filetype, how do I tell it which one(s) to use?](#faqcheckers)  \n5.3. [How can I run checkers for \"foreign\" filetypes against the current file?](#faqforeign)  \n5.4. [I have enabled multiple checkers for the current filetype. How can I display all errors from all checkers together?](#faqaggregate)  \n5.5. [How can I pass additional arguments to a checker?](#faqargs)  \n5.6. [I run a checker and the location list is not updated...](#faqloclist)  \n5.6. [I run`:lopen` or `:lwindow` and the error window is empty...](#faqloclist)  \n5.7. [How can I jump between the different errors without using the location list at the bottom of the window?](#faqlnext)  \n5.8. [The error window is closed automatically when I `:quit` the current buffer but not when I `:bdelete` it?](#faqbdelete)  \n5.9. [My favourite checker needs to load a configuration file from the project's root rather than the current directory...](#faqconfig)  \n5.10. [What is the difference between syntax checkers and style checkers?](#faqstyle)  \n5.11. [How can I check scripts written for different versions of Python?](#faqpython)  \n5.12. [How can I check scripts written for different versions of Ruby?](#faqruby)  \n5.13. [The `perl` checker has stopped working...](#faqperl)  \n5.14. [What happened to the `rustc` checker?](#faqrust)  \n5.15. [What happened to the `tsc` checker?](#faqtsc)  \n5.16. [What happened to the `xcrun` checker?](#faqxcrun)  \n5.17. [What happened to the `valac` checker?](#faqvalac)  \n5.18. [What happened to the Julia `lint` checker?](#faqjulialint)  \n6. [Resources](#otherresources)  \n\n- - -\n\n<a name=\"deprecation\"></a>\n\n## 1\\. Deprecation note\n\nThis project is no longer maintained.  If you need a syntax checking plugin\nfor [Vim][vim] you might be interested in Syntastic's spiritual succesor,\n[ALE][ale].  Although it shares no code with syntastic and it takes a very\ndifferent approach to design, [ALE][ale] can be considered a natural evolution\nof syntastic in terms of goals and functionality.  Check it out, you probably\nwon't be disappointed.\n\n<a name=\"introduction\"></a>\n\n## 2\\. Introduction\n\nSyntastic is a syntax checking plugin for [Vim][vim] created by\n[Martin Grenfell][scrooloose]. It runs files through external syntax checkers\nand displays any resulting errors to the user. This can be done on demand, or\nautomatically as files are saved. If syntax errors are detected, the user is\nnotified and is happy because they didn't have to compile their code or execute\ntheir script to find them.\n\nAt the time of this writing, syntastic has checking plugins for ACPI\nSource Language, ActionScript, Ada, Ansible configurations, API Blueprint,\nAppleScript, AsciiDoc, Assembly languages, BEMHTML, Bro, Bourne shell, C, C++,\nC#, Cabal, Chef, CMake, CoffeeScript, Coco, Coq, CSS, Cucumber, CUDA, D, Dart,\nDocBook, Dockerfile, Dust, Elixir, Erlang, eRuby, Fortran, Gentoo metadata,\nGLSL, Go, Haml, Haskell, Haxe, Handlebars, HSS, HTML, Java, JavaScript, JSON,\nJSX, LESS, Lex, Limbo, LISP, LLVM intermediate language, Lua, Markdown,\nMATLAB, Mercury, NASM, Nix, Objective-C, Objective-C++, OCaml, Perl, Perl\nPOD, PHP, gettext Portable Object, Raku, OS X and iOS property lists, Pug\n(formerly Jade), Puppet, Python, QML, R, Racket, RDF TriG, RDF Turtle, Relax\nNG, reStructuredText, RPM spec, Ruby, SASS/SCSS, Scala, Slim, SML, Solidity,\nSphinx, SQL, Stylus, Tcl, TeX, Texinfo, Twig, TypeScript, Verilog, VHDL, Vim\nhelp, VimL, Vue.js, xHtml, XML, XSLT, XQuery, YACC, YAML, YANG data models,\nYARA rules, z80, Zope page templates, and Zsh. See the [manual][checkers] for\ndetails about the corresponding supported checkers (`:help syntastic-checkers`\nin Vim).\n\nA number of third-party Vim plugins also provide checkers for syntastic, for\nexample: [merlin][merlin], [omnisharp-vim][omnisharp], [rust.vim][rust],\n[syntastic-extras][myint], [syntastic-more][roktas], [tsuquyomi][tsuquyomi],\n[vim-crystal][crystal], [vim-eastwood][eastwood], and [vim-swift][swift].\n\nBelow is a screenshot showing the methods that Syntastic uses to display syntax\nerrors. Note that, in practise, you will only have a subset of these methods\nenabled.\n\n![Screenshot 1][screenshot]\n\n1. Errors are loaded into the location list for the corresponding window.\n2. When the cursor is on a line containing an error, the error message is echoed in the command window.\n3. Signs are placed beside lines with errors - note that warnings are displayed in a different color.\n4. There is a configurable statusline flag you can include in your statusline config.\n5. Hover the mouse over a line containing an error and the error message is displayed as a balloon.\n6. (not shown) Highlighting errors with syntax highlighting. Erroneous parts of lines can be highlighted.\n\n<a name=\"installation\"></a>\n\n## 3\\. Installation\n\n<a name=\"requirements\"></a>\n\n### 3.1\\. Requirements\n\nSyntastic itself has rather relaxed requirements: it doesn't have any external\ndependencies, and it needs a version of [Vim][vim] compiled with a few common\nfeatures: `autocmd`, `eval`, `file_in_path`, `modify_fname`, `quickfix`,\n`reltime`, `statusline`, and `user_commands`. Not all possible combinations of\nfeatures that include the ones above make equal sense on all operating systems,\nbut Vim version 7 or later with the \"normal\", \"big\", or \"huge\" feature sets\nshould be fine.\n\nSyntastic should work with any modern plugin managers for Vim, such as\n[NeoBundle][neobundle], [Pathogen][pathogen], [Vim-Addon-Manager][vam],\n[Vim-Plug][plug], or [Vundle][vundle]. Instructions for installing syntastic\nwith [Pathogen][pathogen] are included below for completeness.\n\nStarting with Vim version 7.4.1486 you can also load syntastic using the\nstandard mechanism of packages, without the help of third-party plugin managers\n(see `:help packages` in Vim for details). Beware however that, while support\nfor packages has been added in Vim 7.4.1384, the functionality needed by\nsyntastic is present only in versions 7.4.1486 and later.\n\nLast but not least: syntastic doesn't know how to do any syntax checks by\nitself. In order to get meaningful results you need to install external\ncheckers corresponding to the types of files you use. Please consult the\n[manual][checkers] (`:help syntastic-checkers` in Vim) for a list of supported\ncheckers.\n\n<a name=\"installpathogen\"></a>\n\n### 3.2\\. Installing syntastic with Pathogen\n\nIf you already have [Pathogen][pathogen] working then skip [Step 1](#step1) and go to\n[Step 2](#step2).\n\n<a name=\"step1\"></a>\n\n#### 3.2.1\\. Step 1: Install pathogen.vim\n\nFirst I'll show you how to install Tim Pope's [Pathogen][pathogen] so that it's easy to\ninstall syntastic. Do this in your terminal so that you get the `pathogen.vim`\nfile and the directories it needs:\n```sh\nmkdir -p ~/.vim/autoload ~/.vim/bundle && \\\ncurl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim\n```\nNext you *need* to add this to your `~/.vimrc`:\n```vim\nexecute pathogen#infect()\n```\n\n<a name=\"step2\"></a>\n\n#### 3.2.2\\. Step 2: Install syntastic as a Pathogen bundle\n\nYou now have pathogen installed and can put syntastic into `~/.vim/bundle` like\nthis:\n```sh\ncd ~/.vim/bundle && \\\ngit clone --depth=1 https://github.com/vim-syntastic/syntastic.git\n```\nQuit vim and start it back up to reload it, then type:\n```vim\n:Helptags\n```\nIf you get an error when you do this, then you probably didn't install\n[Pathogen][pathogen] right. Go back to [Step 1](#step1) and make sure you did the\nfollowing:\n\n1. Created both the `~/.vim/autoload` and `~/.vim/bundle` directories.\n2. Added the `execute pathogen#infect()` line to your `~/.vimrc` file\n3. Did the `git clone` of syntastic inside `~/.vim/bundle`\n4. Have permissions to access all of these directories.\n\n<a name=\"settings\"></a>\n\n## 4\\. Recommended settings\n\nSyntastic has numerous options that can be configured, and the defaults\nare not particularly well suitable for new users. It is recommended\nthat you start by adding the following lines to your `vimrc` file, and\nreturn to them after reading the manual (see `:help syntastic` in Vim):\n```vim\nset statusline+=%#warningmsg#\nset statusline+=%{SyntasticStatuslineFlag()}\nset statusline+=%*\n\nlet g:syntastic_always_populate_loc_list = 1\nlet g:syntastic_auto_loc_list = 1\nlet g:syntastic_check_on_open = 1\nlet g:syntastic_check_on_wq = 0\n```\n\n<a name=\"faq\"></a>\n\n## 5\\. FAQ\n\n<a name=\"faqinfo\"></a>\n\n__5.1. Q. I installed syntastic but it isn't reporting any errors...__\n\nA. The most likely reason is that none of the syntax checkers that it requires\nare installed. For example: by default, python requires either `flake8` or\n`pylint` to be installed and in your `$PATH`. Read the [manual][checkers]\n(`:help syntastic-checkers` in Vim) to find out what executables are\nsupported. Note that aliases do not work; the actual executables must be\navailable in your `$PATH`. Symbolic links are okay though.  You can see\nsyntastic's idea of available checkers by running `:SyntasticInfo`.\n\nA second probable reason is that none of the available checkers are\nenabled. Syntastic comes preconfigured with a default list of enabled checkers\nper filetype, but this list is kept short in order to prevent slowing down Vim\nor trying to run conflicting checks. The command `:SyntasticInfo` will show you\nwhich checkers are enabled. You can tell syntastic which checkers (among the\navailable ones) you want to run by setting `g:syntastic_<filetype>_checkers` in\nyour `vimrc` (see [below](#faqcheckers)).\n\nA third possible reason is that the `$PATH` seen by syntastic might not be same\nas the `$PATH` in your login shell. Syntastic runs checkers using the shell\npointed to by Vim's `shell` (or by `g:syntastic_shell`, if set), and that's the\nshell you need to configure to set the proper `$PATH` and environment variables\nfor your checkers. You can see syntastic's idea of `$PATH` by running\n```vim\n:echo syntastic#util#system('echo \"$PATH\"')\n```\non UNIX and Mac OS-X systems, or\n```vim\n:echo syntastic#util#system('echo %PATH%')\n```\non Windows.\n\nFinally, another reason it could fail is that either the command line options\nor the error output for a syntax checker may have changed. In this case, make\nsure you have the latest version of the syntax checker installed. If it still\nfails then post an [issue][bug_tracker] - or better yet, create a pull request.\n\n<a name=\"faqcheckers\"></a>\n\n__5.2. Q. Syntastic supports several checkers for my filetype, how do I tell it\nwhich one(s) to use?__\n\nA. Add a line like this to your `vimrc`:\n```vim\nlet g:syntastic_<filetype>_checkers = ['<checker-name>']\n```\n\nTo see the list of supported checkers for your filetype read the\n[manual][checkers] (`:help syntastic-checkers` in Vim).\n\nFor example, Python has the following checkers, among others: `flake8`,\n`pyflakes`, `pylint` and a native `python` checker.  To tell syntastic to use\n`pylint`, you would use this setting:\n```vim\nlet g:syntastic_python_checkers = ['pylint']\n```\n\nCheckers can be chained together like this:\n```vim\nlet g:syntastic_php_checkers = ['php', 'phpcs', 'phpmd']\n```\n\nThis is telling syntastic to run the `php` checker first, and if no errors are\nfound, run `phpcs`, and then `phpmd`.\n\nYou can also run checkers explicitly by calling `:SyntasticCheck <checker>`.\nFor example to run `phpcs` and `phpmd`:\n```vim\n:SyntasticCheck phpcs phpmd\n```\n\nThis works for any checkers available for the current filetype, even if they\naren't listed in `g:syntastic_<filetype>_checkers`.\n\n<a name=\"faqforeign\"></a>\n\n__5.3. Q. How can I run checkers for \"foreign\" filetypes against the current\nfile?__\n\nA. You need to qualify the name of the \"foreign\" checker with the name\nof its filetype. For example to check `tex` files with the checker\n`language_check` (which normally acts only on files of type `text`), you can\nadd `text/language_check` to the list fo checkers for `tex`:\n```vim\nlet g:syntastic_tex_checkers = ['lacheck', 'text/language_check']\n```\n\nThis also works with `:SyntasticCheck`, e.g. the following command runs\n`text/language_check` against the current file regardless of the current\nfiletype:\n```vim\n:SyntasticCheck text/language_check\n```\n\nOf course, the checkers specified this way need to be known to syntastic, and\nthey need to be shown as available when you run `:SyntasticInfo`. You can't\njust make up a combination of a filetype and a program name and expect it to\nwork as a checker.\n\n<a name=\"faqaggregate\"></a>\n\n__5.4. Q. I have enabled multiple checkers for the current filetype. How can I\ndisplay all errors from all checkers together?__\n\nA. Set `g:syntastic_aggregate_errors` to 1 in your `vimrc`:\n```vim\nlet g:syntastic_aggregate_errors = 1\n```\n\nSee `:help syntastic-aggregating-errors` for more details.\n\n<a name=\"faqargs\"></a>\n\n__5.5. Q. How can I pass additional arguments to a checker?__\n\nA. In most cases a command line is constructed using an internal function\nnamed `makeprgBuild()`, which provides a number of options that allow you to\ncustomise every part of the command that gets run. You can set these options\nusing global variables.\n\nThe general form of the global `args` variable is\n`syntastic_<filetype>_<checker>_args`. Thus if you wanted to pass\n`--my --args --here` to the Ruby `mri` checker you would add this line to your\n`vimrc`:\n```vim\nlet g:syntastic_ruby_mri_args = \"--my --args --here\"\n```\n\nSee `:help syntastic-checker-options` for more information.\n\nA number of checkers don't use the `makeprgBuild()` function mentioned above,\nor have additional options that can be configured. For these checkers the exact\nlist of options should be included in the [manual][checkers]\n(`:help syntastic-checkers` in Vim).\n\n<a name=\"faqloclist\"></a>\n\n__5.6. Q. I run a checker and the location list is not updated...__  \n__5.6. Q. I run`:lopen` or `:lwindow` and the error window is empty...__\n\nA. By default the location list is changed only when you run the `:Errors`\ncommand, in order to minimise conflicts with other plugins. If you want the\nlocation list to always be updated when you run the checkers, add this line to\nyour `vimrc`:\n```vim\nlet g:syntastic_always_populate_loc_list = 1\n```\n\n<a name=\"faqlnext\"></a>\n\n__5.7. Q. How can I jump between the different errors without using the location\nlist at the bottom of the window?__\n\nA. Vim provides several built-in commands for this. See `:help :lnext` and\n`:help :lprevious`.\n\nIf you use these commands a lot then you may want to add shortcut mappings to\nyour `vimrc`, or install something like [unimpaired][unimpaired], which provides such\nmappings (among other things).\n\n<a name=\"faqbdelete\"></a>\n\n__5.8. Q. The error window is closed automatically when I `:quit` the current buffer\nbut not when I `:bdelete` it?__\n\nA. There is no safe way to handle that situation automatically, but you can\nwork around it:\n```vim\nnnoremap <silent> <C-d> :lclose<CR>:bdelete<CR>\ncabbrev <silent> bd <C-r>=(getcmdtype()==#':' && getcmdpos()==1 ? 'lclose\\|bdelete' : 'bd')<CR>\n```\n\n<a name=\"faqconfig\"></a>\n\n__5.9. My favourite checker needs to load a configuration file from the\nproject's root rather than the current directory...__\n\nA. You can set up an `autocmd` to search for the configuration file in the\ncurrent directory and upwards, and add it to the checker's options when found.\nFor example for `jscs`:\n\n```vim\nfunction! FindConfig(prefix, what, where)\n    let cfg = findfile(a:what, escape(a:where, ' ') . ';')\n    return cfg !=# '' ? ' ' . a:prefix . ' ' . shellescape(cfg) : ''\nendfunction\n\nautocmd FileType javascript let b:syntastic_javascript_jscs_args =\n    \\ get(g:, 'syntastic_javascript_jscs_args', '') .\n    \\ FindConfig('-c', '.jscsrc', expand('<afile>:p:h', 1))\n```\n\n<a name=\"faqstyle\"></a>\n\n__5.10. Q. What is the difference between syntax checkers and style checkers?__\n\nA. The errors and warnings they produce are highlighted differently and can\nbe filtered by different rules, but otherwise the distinction is pretty much\narbitrary. There is an ongoing effort to keep things consistent, so you can\n_generally_ expect messages produced by syntax checkers to be _mostly_ related\nto syntax, and messages produced by style checkers to be _mostly_ about style.\nBut there can be no formal guarantee that, say, a style checker that runs into\na syntax error wouldn't die with a fatal message, nor that a syntax checker\nwouldn't give you warnings against using some constructs as being bad practice.\nThere is also no guarantee that messages marked as `style` are less severe than\nthe ones marked as `syntax` (whatever that might mean). And there are even a\nfew Frankenstein checkers (for example `flake8` and `pylama`) that, by their\nnature, produce both kinds of messages. Syntastic is not smart enough to be\nable to sort out these things by itself.\n\nGenerally it's more useful to look at this from the perspective of filtering\nunwanted messages, rather than as an indicator of severity levels. The\ndistinction between syntax and style is orthogonal to the distinction between\nerrors and warnings, and thus you can turn off messages based on level, on\ntype, or both.\n\ne.g. To disable all style messages:\n```vim\nlet g:syntastic_quiet_messages = { \"type\": \"style\" }\n```\nSee `:help syntastic_quiet_messages` for more information.\n\n<a name=\"faqpython\"></a>\n\n__5.11. Q. How can I check scripts written for different versions of Python?__\n\nA. Install a Python version manager such as [virtualenv][virtualenv]\nor [pyenv][pyenv], activate the environment for the relevant version\nof Python, and install in it the checkers you want to use.  Set\n`g:syntastic_python_checkers` accordingly in your `vimrc`, and run [Vim][vim]\nfrom the virtual environment.\n\nIf you're starting Vim from a desktop manager rather than from a terminal you\nmight need to write wrapper scripts around your checkers, to activate the\nvirtual environment before running the actual checks.  Then you'll need to\npoint the relevant `g:syntastic_python_<checker>_exec` variables to the wrapper\nscripts.\n\n<a name=\"faqruby\"></a>\n\n__5.12. Q. How can I check scripts written for different versions of Ruby?__\n\nA. Install a Ruby version manager such as [rvm][rvm] or [rbenv][rbenv],\nactivate the relevant version of Ruby, and install in it the checkers you want\nto use.  Set `g:syntastic_ruby_checkers` accordingly in your `vimrc`, and run\n[Vim][vim] under the relevant Ruby version.\n\nIf you're starting Vim from a desktop manager rather than from a terminal\nand depending on the version manager you use you might need to write wrapper\nscripts around your checkers, to activate the relevant version of Ruby\nbefore running the actual checks.  Then you'll need to point the relevant\n`g:syntastic_ruby_<checker>_exec` variables to the wrapper scripts.\n\n<a name=\"faqperl\"></a>\n\n__5.13. Q. The `perl` checker has stopped working...__\n\nA. The `perl` checker runs `perl -c` against your file, which in turn\n__executes__ any `BEGIN`, `UNITCHECK`, and `CHECK` blocks, and any `use`\nstatements in your file (cf. [perlrun][perlrun]). This is probably fine if you\nwrote the file yourself, but it's a security problem if you're checking\nthird-party files. Since there is currently no way to disable this behaviour\nwhile still producing useful results, the checker is now disabled by default.\nTo (re-)enable it, make sure the `g:syntastic_perl_checkers` list includes\n`perl`, and set `g:syntastic_enable_perl_checker` to 1 in your `vimrc`:\n```vim\nlet g:syntastic_enable_perl_checker = 1\n```\n\n<a name=\"faqrust\"></a>\n\n__5.14. Q. What happened to the `rustc` checker?__\n\nA. It is now part of the [rust.vim][rust] plugin. If you install this plugin the\nchecker should be picked up automatically by syntastic.\n\n<a name=\"faqtsc\"></a>\n\n__5.15. Q. What happened to the `tsc` checker?__\n\nA. It didn't meet people's expectations and it has been removed. The plugin\n[tsuquyomi][tsuquyomi] comes packaged with a checker for TypeScript. If you\ninstall this plugin the checker should be picked up automatically by syntastic.\n\n<a name=\"faqxcrun\"></a>\n\n__5.16. Q. What happened to the `xcrun` checker?__\n\nA. The `xcrun` checker used to have a security problem and it has been removed.\nA better checker for __Swift__ is part of the [vim-swift][swift] plugin. If you\ninstall this plugin the checker should be picked up automatically by syntastic.\n\n<a name=\"faqvalac\"></a>\n\n__5.17. Q. What happened to the `valac` checker?__\n\nA. It is now part of the [vala.vim][vala] plugin. If you install this plugin the\nchecker should be picked up automatically by syntastic.\n\n<a name=\"julialint\"></a>\n\n__5.18. Q. What happened to the Julia `lint` checker?__\n\nA. It was removed, since the `Lint.jl` package [has been deprecated][julialint]\nand no longer works with recent Julia versions.\n\n<a name=\"otherresources\"></a>\n\n## 6\\. Resources\n\nThe preferred place for posting suggestions, reporting bugs, and general\ndiscussions related to syntastic is the [issue tracker at GitHub][bug_tracker].\nA guide for writing syntax checkers can be found in the [wiki][guide].\nThere are also a dedicated [google group][google_group], and a\n[syntastic tag at StackOverflow][stack_overflow].\n\nSyntastic aims to provide a common interface to syntax checkers for as many\nlanguages as possible. For particular languages, there are, of course, other\nplugins that provide more functionality than syntastic. You might want to take\na look at [ghcmod-vim][ghcmod], [jedi-vim][jedi], [python-mode][python_mode], [vim-go][vimgo], or\n[YouCompleteMe][ycm].\n\n[scrooloose]:       https://github.com/scrooloose\n[screenshot]:       https://github.com/vim-syntastic/syntastic/raw/master/_assets/screenshot_1.png\n\n[ale]:              https://github.com/dense-analysis/ale\n\n[bug_tracker]:      https://github.com/vim-syntastic/syntastic/issues\n[checkers]:         https://github.com/vim-syntastic/syntastic/blob/master/doc/syntastic-checkers.txt\n[crystal]:          https://github.com/rhysd/vim-crystal\n[eastwood]:         https://github.com/venantius/vim-eastwood\n[ghcmod]:           https://github.com/eagletmt/ghcmod-vim\n[google_group]:     https://groups.google.com/group/vim-syntastic\n[guide]:            https://github.com/vim-syntastic/syntastic/wiki/Syntax-Checker-Guide\n[jedi]:             https://github.com/davidhalter/jedi-vim\n[julialint]:        https://github.com/tonyhffong/Lint.jl/issues/269\n[merlin]:           https://github.com/the-lambda-church/merlin\n[myint]:            https://github.com/myint/syntastic-extras\n[neobundle]:        https://github.com/Shougo/neobundle.vim\n[omnisharp]:        https://github.com/OmniSharp/omnisharp-vim\n[pathogen]:         https://github.com/tpope/vim-pathogen\n[perlrun]:          http://perldoc.perl.org/perlrun.html#*-c*\n[plug]:             https://github.com/junegunn/vim-plug/\n[pyenv]:            https://github.com/yyuu/pyenv\n[python_mode]:      https://github.com/klen/python-mode\n[rbenv]:            https://github.com/rbenv/rbenv\n[roktas]:           https://github.com/roktas/syntastic-more\n[rust]:             https://github.com/rust-lang/rust.vim\n[rvm]:              https://rvm.io/\n[stack_overflow]:   http://stackoverflow.com/questions/tagged/syntastic\n[swift]:            https://github.com/kballard/vim-swift\n[tsuquyomi]:        https://github.com/Quramy/tsuquyomi/\n[unimpaired]:       https://github.com/tpope/vim-unimpaired\n[vala]:             https://github.com/arrufat/vala.vim\n[vam]:              https://github.com/MarcWeber/vim-addon-manager\n[vim]:              http://www.vim.org/\n[vimgo]:            https://github.com/fatih/vim-go\n[virtualenv]:       https://virtualenv.pypa.io/en/stable/\n[vundle]:           https://github.com/gmarik/Vundle.vim\n[ycm]:              https://github.com/ycm-core/YouCompleteMe\n\n<!--\nvim:tw=79:sw=4:\n-->\n"
  },
  {
    "path": "autoload/syntastic/c.vim",
    "content": "if exists('g:loaded_syntastic_c_autoload') || !exists('g:loaded_syntastic_plugin')\n    finish\nendif\nlet g:loaded_syntastic_c_autoload = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\n\" Public functions {{{1\n\n\" convenience function to determine the 'null device' parameter\n\" based on the current operating system\nfunction! syntastic#c#NullOutput() abort \" {{{2\n    let known_os = has('unix') || has('mac') || syntastic#util#isRunningWindows()\n    return known_os ? '-o ' . syntastic#util#DevNull() : ''\nendfunction \" }}}2\n\n\" read additional compiler flags from the given configuration file\n\" the file format and its parsing mechanism is inspired by clang_complete\nfunction! syntastic#c#ReadConfig(file) abort \" {{{2\n    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_CHECKERS, 'ReadConfig: looking for', a:file)\n\n    \" search upwards from the current file's directory\n    let config = syntastic#util#findFileInParent(a:file, expand('%:p:h', 1))\n    if config ==# ''\n        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_CHECKERS, 'ReadConfig: file not found')\n        return ''\n    endif\n    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_CHECKERS, 'ReadConfig: config file:', config)\n    if !filereadable(config)\n        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_CHECKERS, 'ReadConfig: file unreadable')\n        return ''\n    endif\n\n    \" convert filename into absolute path\n    let filepath = fnamemodify(config, ':p:h')\n\n    \" try to read config file\n    try\n        let lines = readfile(config)\n    catch /\\m^Vim\\%((\\a\\+)\\)\\=:E48[45]/\n        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_CHECKERS, 'ReadConfig: error reading file')\n        return ''\n    endtry\n\n    \" filter out empty lines and comments\n    call filter(lines, 'v:val !~# ''\\v^(\\s*#|$)''')\n\n    \" remove leading and trailing spaces\n    call map(lines, 'substitute(v:val, ''\\m^\\s\\+'', \"\", \"\")')\n    call map(lines, 'substitute(v:val, ''\\m\\s\\+$'', \"\", \"\")')\n\n    let parameters = []\n    for line in lines\n        let matches = matchstr(line, '\\m\\C^\\s*-I\\s*\\zs.\\+')\n        if matches !=# ''\n            \" this one looks like an absolute path\n            if match(matches, '\\m^\\%(/\\|\\a:\\)') != -1\n                call add(parameters, '-I' . matches)\n            else\n                call add(parameters, '-I' . filepath . syntastic#util#Slash() . matches)\n            endif\n        else\n            call add(parameters, line)\n        endif\n    endfor\n\n    return join(map(parameters, 'syntastic#util#shescape(v:val)'))\nendfunction \" }}}2\n\n\" GetLocList() for C-like compilers\nfunction! syntastic#c#GetLocList(filetype, subchecker, options) abort \" {{{2\n    try\n        let flags = s:_get_cflags(a:filetype, a:subchecker, a:options)\n    catch /\\m\\C^Syntastic: skip checks$/\n        return []\n    endtry\n\n    let makeprg = syntastic#util#shexpand(g:syntastic_{a:filetype}_compiler) .\n        \\ ' ' . flags . ' ' . syntastic#util#shexpand('%')\n\n    let errorformat = s:_get_checker_var('g', a:filetype, a:subchecker, 'errorformat', a:options['errorformat'])\n\n    let postprocess = s:_get_checker_var('g', a:filetype, a:subchecker, 'remove_include_errors', 0) ?\n        \\ ['filterForeignErrors'] : []\n\n    \" process makeprg\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'postprocess': postprocess })\nendfunction \" }}}2\n\n\" }}}1\n\n\" Private functions {{{1\n\n\" initialize c/cpp syntax checker handlers\nfunction! s:_init() abort \" {{{2\n    let s:handlers = []\n    let s:cflags = {}\n\n    call s:_registerHandler('\\m\\<cairo',       's:_checkPackage', ['cairo', 'cairo'])\n    call s:_registerHandler('\\m\\<freetype',    's:_checkPackage', ['freetype', 'freetype2', 'freetype'])\n    call s:_registerHandler('\\m\\<glade',       's:_checkPackage', ['glade', 'libglade-2.0', 'libglade'])\n    call s:_registerHandler('\\m\\<glib',        's:_checkPackage', ['glib', 'glib-2.0', 'glib'])\n    call s:_registerHandler('\\m\\<gtk',         's:_checkPackage', ['gtk', 'gtk+-2.0', 'gtk+', 'glib-2.0', 'glib'])\n    call s:_registerHandler('\\m\\<libsoup',     's:_checkPackage', ['libsoup', 'libsoup-2.4', 'libsoup-2.2'])\n    call s:_registerHandler('\\m\\<libxml',      's:_checkPackage', ['libxml', 'libxml-2.0', 'libxml'])\n    call s:_registerHandler('\\m\\<pango',       's:_checkPackage', ['pango', 'pango'])\n    call s:_registerHandler('\\m\\<SDL',         's:_checkPackage', ['sdl', 'sdl'])\n    call s:_registerHandler('\\m\\<opengl',      's:_checkPackage', ['opengl', 'gl'])\n    call s:_registerHandler('\\m\\<webkit',      's:_checkPackage', ['webkit', 'webkit-1.0'])\n\n    call s:_registerHandler('\\m\\<php\\.h\\>',    's:_checkPhp',    [])\n    call s:_registerHandler('\\m\\<Python\\.h\\>', 's:_checkPython', [])\n    call s:_registerHandler('\\m\\<ruby',        's:_checkRuby',   [])\nendfunction \" }}}2\n\n\" register a handler dictionary object\nfunction! s:_registerHandler(regex, function, args) abort \" {{{2\n    let handler = {}\n    let handler['regex'] = a:regex\n    let handler['func'] = function(a:function)\n    let handler['args'] = a:args\n    call add(s:handlers, handler)\nendfunction \" }}}2\n\n\" try to find library with 'pkg-config'\n\" search possible libraries from first to last given\n\" argument until one is found\nfunction! s:_checkPackage(name, ...) abort \" {{{2\n    if executable('pkg-config')\n        if !has_key(s:cflags, a:name)\n            for pkg in a:000\n                let pkg_flags = syntastic#util#system('pkg-config --cflags ' . pkg)\n                \" since we cannot necessarily trust the pkg-config exit code\n                \" we have to check for an error output as well\n                if v:shell_error == 0 && pkg_flags !~? 'not found'\n                    let pkg_flags = ' ' . substitute(pkg_flags, \"\\n\", '', '')\n                    let s:cflags[a:name] = pkg_flags\n                    return pkg_flags\n                endif\n            endfor\n        else\n            return s:cflags[a:name]\n        endif\n    endif\n    return ''\nendfunction \" }}}2\n\n\" try to find PHP includes with 'php-config'\nfunction! s:_checkPhp() abort \" {{{2\n    if executable('php-config')\n        if !has_key(s:cflags, 'php')\n            let s:cflags['php'] = syntastic#util#system('php-config --includes')\n            let s:cflags['php'] = ' ' . substitute(s:cflags['php'], \"\\n\", '', '')\n        endif\n        return s:cflags['php']\n    endif\n    return ''\nendfunction \" }}}2\n\n\" try to find the python headers with distutils\nfunction! s:_checkPython() abort \" {{{2\n    if executable('python')\n        if !has_key(s:cflags, 'python')\n            let s:cflags['python'] = syntastic#util#system('python -c ''from distutils import ' .\n                \\ 'sysconfig; import sys; sys.stdout.write(sysconfig.get_python_inc())''')\n            let s:cflags['python'] = substitute(s:cflags['python'], \"\\n\", '', '')\n            let s:cflags['python'] = ' -I' . s:cflags['python']\n        endif\n        return s:cflags['python']\n    endif\n    return ''\nendfunction \" }}}2\n\n\" try to find the ruby headers with 'rbconfig'\nfunction! s:_checkRuby() abort \" {{{2\n    if executable('ruby')\n        if !has_key(s:cflags, 'ruby')\n            let s:cflags['ruby'] = syntastic#util#system('ruby -r rbconfig -e ' .\n                \\ '''puts RbConfig::CONFIG[\"rubyhdrdir\"] || RbConfig::CONFIG[\"archdir\"]''')\n            let s:cflags['ruby'] = substitute(s:cflags['ruby'], \"\\n\", '', '')\n            let s:cflags['ruby'] = ' -I' . s:cflags['ruby']\n        endif\n        return s:cflags['ruby']\n    endif\n    return ''\nendfunction \" }}}2\n\n\" }}}1\n\n\" Utilities {{{1\n\n\" resolve checker-related user variables\nfunction! s:_get_checker_var(scope, filetype, subchecker, name, default) abort \" {{{2\n    let prefix = a:scope . ':' . 'syntastic_'\n    if exists(prefix . a:filetype . '_' . a:subchecker . '_' . a:name)\n        return {a:scope}:syntastic_{a:filetype}_{a:subchecker}_{a:name}\n    elseif exists(prefix . a:filetype . '_' . a:name)\n        return {a:scope}:syntastic_{a:filetype}_{a:name}\n    else\n        return a:default\n    endif\nendfunction \" }}}2\n\n\" resolve user CFLAGS\nfunction! s:_get_cflags(ft, ck, opts) abort \" {{{2\n    \" determine whether to parse header files as well\n    if has_key(a:opts, 'header_names') && expand('%', 1) =~? a:opts['header_names']\n        if s:_get_checker_var('g', a:ft, a:ck, 'check_header', 0)\n            let flags = get(a:opts, 'header_flags', '') . ' -c ' . syntastic#c#NullOutput()\n        else\n            \" checking headers when check_header is unset: bail out\n            throw 'Syntastic: skip checks'\n        endif\n    else\n        let flags = get(a:opts, 'main_flags', '')\n    endif\n\n    let flags .= ' ' . s:_get_checker_var('g', a:ft, a:ck, 'compiler_options', '') . ' ' . s:_get_include_dirs(a:ft)\n\n    \" check if the user manually set some cflags\n    let b_cflags = s:_get_checker_var('b', a:ft, a:ck, 'cflags', '')\n    if b_cflags !=# ''\n        let flags .= ' ' . b_cflags\n    endif\n\n    \" add optional config file parameters\n    let config_file = s:_get_checker_var('b', a:ft, a:ck, 'config_file', s:_get_checker_var('g', a:ft, a:ck, 'config_file', ''))\n    let flags .= ' ' . syntastic#c#ReadConfig(config_file)\n\n    if b_cflags ==# '' && (a:ft ==# 'c' || a:ft ==# 'cpp') && !s:_get_checker_var('g', a:ft, a:ck, 'no_include_search', 0)\n        \" refresh the include file search if desired\n        if s:_get_checker_var('g', a:ft, a:ck, 'auto_refresh_includes', 0)\n            let flags .= ' ' . s:_search_headers()\n        else\n            \" search for header includes if not cached already\n            if !exists('b:syntastic_' . a:ft . '_includes')\n                let b:syntastic_{a:ft}_includes = s:_search_headers()\n            endif\n            let flags .= ' ' . b:syntastic_{a:ft}_includes\n        endif\n    endif\n\n    return flags\nendfunction \" }}}2\n\n\" get the gcc include directory argument depending on the default\n\" includes and the optional user-defined 'g:syntastic_c_include_dirs'\nfunction! s:_get_include_dirs(filetype) abort \" {{{2\n    let include_dirs = []\n\n    if a:filetype =~# '\\v^%(c|cpp|objc|objcpp)$' &&\n                \\ (!exists('g:syntastic_'.a:filetype.'_no_default_include_dirs') ||\n                \\ !g:syntastic_{a:filetype}_no_default_include_dirs)\n        let include_dirs = copy(s:default_includes)\n    endif\n\n    if exists('g:syntastic_'.a:filetype.'_include_dirs')\n        call extend(include_dirs, g:syntastic_{a:filetype}_include_dirs)\n    endif\n\n    return join(map(syntastic#util#unique(include_dirs), 'syntastic#util#shescape(\"-I\" . v:val)'))\nendfunction \" }}}2\n\n\" search the first 100 lines for include statements that are\n\" given in the handlers dictionary\nfunction! s:_search_headers() abort \" {{{2\n    let includes = ''\n    let files = []\n    let found = []\n    let lines = filter(getline(1, 100), 'v:val =~# ''\\m^\\s*#\\s*include''')\n\n    \" search current buffer\n    for line in lines\n        let file = matchstr(line, '\\m\"\\zs\\S\\+\\ze\"')\n        if file !=# ''\n            call add(files, file)\n            continue\n        endif\n\n        for handler in s:handlers\n            if line =~# handler['regex']\n                let includes .= call(handler['func'], handler['args'])\n                call add(found, handler['regex'])\n                break\n            endif\n        endfor\n    endfor\n\n    \" search included headers\n    for hfile in files\n        if hfile !=# ''\n            let filename = expand('%:p:h', 1) . syntastic#util#Slash() . hfile\n\n            try\n                let lines = readfile(filename, '', 100)\n            catch /\\m^Vim\\%((\\a\\+)\\)\\=:E484/\n                continue\n            endtry\n\n            call filter(lines, 'v:val =~# ''\\m^\\s*#\\s*include''')\n\n            for handler in s:handlers\n                if index(found, handler['regex']) != -1\n                    continue\n                endif\n\n                for line in lines\n                    if line =~# handler['regex']\n                        let includes .= call(handler['func'], handler['args'])\n                        call add(found, handler['regex'])\n                        break\n                    endif\n                endfor\n            endfor\n        endif\n    endfor\n\n    return includes\nendfunction \" }}}2\n\n\" }}}1\n\n\" default include directories\nlet s:default_includes = [\n    \\ '.',\n    \\ '..',\n    \\ 'include',\n    \\ 'includes',\n    \\ '..' . syntastic#util#Slash() . 'include',\n    \\ '..' . syntastic#util#Slash() . 'includes' ]\n\ncall s:_init()\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "autoload/syntastic/log.vim",
    "content": "if exists('g:loaded_syntastic_log_autoload') || !exists('g:loaded_syntastic_plugin')\n    finish\nendif\nlet g:loaded_syntastic_log_autoload = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nlet s:one_time_notices_issued = []\n\n\" Public functions {{{1\n\nfunction! syntastic#log#info(msg) abort \" {{{2\n    echomsg 'syntastic: info: ' . a:msg\nendfunction \" }}}2\n\nfunction! syntastic#log#warn(msg) abort \" {{{2\n    echohl WarningMsg\n    echomsg 'syntastic: warning: ' . a:msg\n    echohl None\nendfunction \" }}}2\n\nfunction! syntastic#log#error(msg) abort \" {{{2\n    execute 'normal! \\<Esc>'\n    echohl ErrorMsg\n    echomsg 'syntastic: error: ' . a:msg\n    echohl None\nendfunction \" }}}2\n\nfunction! syntastic#log#oneTimeWarn(msg) abort \" {{{2\n    if index(s:one_time_notices_issued, a:msg) >= 0\n        return\n    endif\n\n    call add(s:one_time_notices_issued, a:msg)\n    call syntastic#log#warn(a:msg)\nendfunction \" }}}2\n\n\" @vimlint(EVL102, 1, l:OLD_VAR)\nfunction! syntastic#log#deprecationWarn(old, new, ...) abort \" {{{2\n    if exists('g:syntastic_' . a:old) && !exists('g:syntastic_' . a:new)\n        let msg = 'variable g:syntastic_' . a:old . ' is deprecated, please use '\n\n        if a:0\n            let OLD_VAR = g:syntastic_{a:old}\n            try\n                let NEW_VAR = eval(a:1)\n                let msg .= 'in its stead: let g:syntastic_' . a:new . ' = ' . string(NEW_VAR)\n                let g:syntastic_{a:new} = NEW_VAR\n            catch\n                let msg .= 'g:syntastic_' . a:new . ' instead'\n            endtry\n        else\n            let msg .= 'g:syntastic_' . a:new . ' instead'\n            let g:syntastic_{a:new} = g:syntastic_{a:old}\n        endif\n\n        call syntastic#log#oneTimeWarn(msg)\n    endif\nendfunction \" }}}2\n\" @vimlint(EVL102, 0, l:OLD_VAR)\n\nfunction! syntastic#log#debug(level, msg, ...) abort \" {{{2\n    if !s:_isDebugEnabled(a:level)\n        return\n    endif\n\n    let leader = s:_log_timestamp()\n    call s:_logRedirect(1)\n\n    if a:0\n        \" filter out dictionary functions\n        echomsg leader . a:msg . ' ' .\n            \\ strtrans(string(type(a:1) == type({}) || type(a:1) == type([]) ?\n            \\ filter(copy(a:1), 'type(v:val) != type(function(\"tr\"))') : a:1))\n    else\n        echomsg leader . a:msg\n    endif\n\n    call s:_logRedirect(0)\nendfunction \" }}}2\n\nfunction! syntastic#log#debugShowOptions(level, names) abort \" {{{2\n    if !s:_isDebugEnabled(a:level)\n        return\n    endif\n\n    let leader = s:_log_timestamp()\n    call s:_logRedirect(1)\n\n    let vlist = copy(type(a:names) == type('') ? [a:names] : a:names)\n    let add_shell = index(vlist, 'shell') >= 0 && &shell !=# syntastic#util#var('shell')\n    if !empty(vlist)\n        call map(vlist, \"'&' . v:val . ' = ' . strtrans(string(eval('&' . v:val))) . (s:_is_modified(v:val) ? ' (!)' : '')\")\n        if add_shell\n            call add(vlist, 'u:shell = ' . strtrans(string(syntastic#util#var('shell'))) . ' (!)')\n        endif\n        echomsg leader . join(vlist, ', ')\n    endif\n    call s:_logRedirect(0)\nendfunction \" }}}2\n\nfunction! syntastic#log#debugShowVariables(level, names) abort \" {{{2\n    if !s:_isDebugEnabled(a:level)\n        return\n    endif\n\n    let leader = s:_log_timestamp()\n    call s:_logRedirect(1)\n\n    let vlist = type(a:names) == type('') ? [a:names] : a:names\n    for name in vlist\n        let msg = s:_format_variable(name)\n        if msg !=# ''\n            echomsg leader . msg\n        endif\n    endfor\n\n    call s:_logRedirect(0)\nendfunction \" }}}2\n\nfunction! syntastic#log#debugDump(level) abort \" {{{2\n    if !s:_isDebugEnabled(a:level)\n        return\n    endif\n\n    call syntastic#log#debugShowVariables( a:level, sort(keys(g:_SYNTASTIC_DEFAULTS)) )\nendfunction \" }}}2\n\nfunction! syntastic#log#ndebug(level, title, messages) abort \" {{{2\n    if s:_isDebugEnabled(a:level)\n        return\n    endif\n\n    call syntastic#log#error(a:title)\n    if type(a:messages) == type([])\n        for msg in a:messages\n            echomsg msg\n        endfor\n    else\n        echomsg a:messages\n    endif\nendfunction \" }}}2\n\n\" }}}1\n\n\" Private functions {{{1\n\nfunction! s:_isDebugEnabled_smart(level) abort \" {{{2\n    return and(g:syntastic_debug, a:level)\nendfunction \" }}}2\n\nfunction! s:_isDebugEnabled_dumb(level) abort \" {{{2\n    \" poor man's bit test for bit N, assuming a:level == 2**N\n    return (g:syntastic_debug / a:level) % 2\nendfunction \" }}}2\n\nlet s:_isDebugEnabled = function(exists('*and') ? 's:_isDebugEnabled_smart' : 's:_isDebugEnabled_dumb')\nlockvar s:_isDebugEnabled\n\nfunction! s:_logRedirect(on) abort \" {{{2\n    if exists('g:syntastic_debug_file')\n        if a:on\n            try\n                execute 'redir >> ' . fnameescape(expand(g:syntastic_debug_file, 1))\n            catch /\\m^Vim\\%((\\a\\+)\\)\\=:/\n                silent! redir END\n                unlet g:syntastic_debug_file\n            endtry\n        else\n            silent! redir END\n        endif\n    endif\nendfunction \" }}}2\n\n\" }}}1\n\n\" Utilities {{{1\n\nfunction! s:_log_timestamp_smart() abort \" {{{2\n    return printf('syntastic: %f: ', reltimefloat(reltime(g:_SYNTASTIC_START)))\nendfunction \" }}}2\n\nfunction! s:_log_timestamp_dumb() abort \" {{{2\n    return 'syntastic: ' . split(reltimestr(reltime(g:_SYNTASTIC_START)))[0] . ': '\nendfunction \" }}}2\n\nlet s:_log_timestamp = function(has('float') && exists('*reltimefloat') ? 's:_log_timestamp_smart' : 's:_log_timestamp_dumb')\nlockvar s:_log_timestamp\n\nfunction! s:_format_variable(name) abort \" {{{2\n    let vals = []\n    if exists('g:syntastic_' . a:name)\n        call add(vals, 'g:syntastic_' . a:name . ' = ' . strtrans(string(g:syntastic_{a:name})))\n    endif\n    if exists('b:syntastic_' . a:name)\n        call add(vals, 'b:syntastic_' . a:name . ' = ' . strtrans(string(b:syntastic_{a:name})))\n    endif\n\n    return join(vals, ', ')\nendfunction \" }}}2\n\nfunction! s:_is_modified(name) abort \" {{{2\n    if !exists('s:option_defaults')\n        let s:option_defaults = {}\n    endif\n    if !has_key(s:option_defaults, a:name)\n        let opt_save = eval('&' . a:name)\n        execute 'set ' . a:name . '&'\n        let s:option_defaults[a:name] = eval('&' . a:name)\n        execute 'let &' . a:name . ' = ' . string(opt_save)\n    endif\n\n    return s:option_defaults[a:name] !=# eval('&' . a:name)\nendfunction \" }}}2\n\n\" }}}1\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "autoload/syntastic/postprocess.vim",
    "content": "if exists('g:loaded_syntastic_postprocess_autoload') || !exists('g:loaded_syntastic_plugin')\n    finish\nendif\nlet g:loaded_syntastic_postprocess_autoload = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\n\" Public functions {{{1\n\n\" merge consecutive blanks\nfunction! syntastic#postprocess#compressWhitespace(errors) abort \" {{{2\n    for e in a:errors\n        let e['text'] = substitute(e['text'], \"\\001\", '', 'g')\n        let e['text'] = substitute(e['text'], '\\n', ' ', 'g')\n        let e['text'] = substitute(e['text'], '\\m\\s\\{2,}', ' ', 'g')\n        let e['text'] = substitute(e['text'], '\\m^\\s\\+', '', '')\n        let e['text'] = substitute(e['text'], '\\m\\s\\+$', '', '')\n    endfor\n\n    return a:errors\nendfunction \" }}}2\n\n\" remove spurious CR under Cygwin\nfunction! syntastic#postprocess#cygwinRemoveCR(errors) abort \" {{{2\n    if has('win32unix')\n        for e in a:errors\n            let e['text'] = substitute(e['text'], '\\r', '', 'g')\n        endfor\n    endif\n\n    return a:errors\nendfunction \" }}}2\n\n\" decode XML entities\nfunction! syntastic#postprocess#decodeXMLEntities(errors) abort \" {{{2\n    for e in a:errors\n        let e['text'] = syntastic#util#decodeXMLEntities(e['text'])\n    endfor\n\n    return a:errors\nendfunction \" }}}2\n\n\" filter out errors referencing other files\nfunction! syntastic#postprocess#filterForeignErrors(errors) abort \" {{{2\n    return filter(copy(a:errors), 'get(v:val, \"bufnr\") == ' . bufnr(''))\nendfunction \" }}}2\n\n\" make sure line numbers are not past end of buffers\n\" XXX: this loads all referenced buffers in memory\nfunction! syntastic#postprocess#guards(errors) abort \" {{{2\n    let buffers = syntastic#util#unique(map(filter(copy(a:errors), 'v:val[\"valid\"]'), 'str2nr(v:val[\"bufnr\"])'))\n\n    let guards = {}\n    for b in buffers\n        let guards[b] = len(getbufline(b, 1, '$'))\n    endfor\n\n    for e in a:errors\n        if e['valid'] && e['lnum'] > guards[e['bufnr']]\n            let e['lnum'] = guards[e['bufnr']]\n        endif\n    endfor\n\n    return a:errors\nendfunction \" }}}2\n\n\" convert error messages from UTF-8 to the current encoding\nfunction! syntastic#postprocess#iconv(errors) abort \" {{{2\n    if has('iconv') && &encoding !=# '' && &encoding !=# 'utf-8'\n        for e in a:errors\n            let e['text'] = iconv(e['text'], \"utf-8\", &encoding)\n        endfor\n    endif\n\n    return a:errors\nendfunction \" }}}2\n\n\" }}}1\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "autoload/syntastic/preprocess.vim",
    "content": "if exists('g:loaded_syntastic_preprocess_autoload') || !exists('g:loaded_syntastic_plugin')\n    finish\nendif\nlet g:loaded_syntastic_preprocess_autoload = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\n\" Public functions {{{1\n\nfunction! syntastic#preprocess#bandit(errors) abort \" {{{2\n    let out = []\n    let json = s:_decode_JSON(join(a:errors, ''))\n\n    if type(json) == type({}) && has_key(json, 'results') && type(json['results']) == type([])\n        for issue in json['results']\n            if type(issue) == type({})\n                try\n                    call add(out,\n                        \\ issue['filename'] . ':' .\n                        \\ issue['line_number'] . ':' .\n                        \\ { 'LOW': 'I', 'MEDIUM': 'W', 'HIGH': 'E' }[issue['issue_severity']] . ':' .\n                        \\ issue['test_id'][1:] . ':' .\n                        \\ issue['issue_text'] .\n                        \\ ' [' . issue['test_name'] .  '] (confidence: ' . issue['issue_confidence'] . ')')\n                catch /\\m^Vim\\%((\\a\\+)\\)\\=:E716/\n                    call syntastic#log#warn('checker python/bandit: unrecognized error item ' . string(issue))\n                    let out = []\n                    break\n                endtry\n            else\n                call syntastic#log#warn('checker python/bandit: unrecognized error item ' . string(issue))\n            endif\n        endfor\n    else\n        call syntastic#log#warn('checker python/bandit: unrecognized error format (crashed checker?)')\n    endif\n\n    return out\nendfunction \" }}}2\n\nfunction! syntastic#preprocess#cabal(errors) abort \" {{{2\n    let out = []\n    let star = 0\n    for err in a:errors\n        if star\n            if err ==# ''\n                let star = 0\n            else\n                let out[-1] .= ' ' . err\n            endif\n        else\n            call add(out, err)\n            if err =~# '\\m^*\\s'\n                let star = 1\n            endif\n        endif\n    endfor\n    return out\nendfunction \" }}}2\n\nfunction! syntastic#preprocess#checkstyle(errors) abort \" {{{2\n    let out = []\n    let fname = expand('%', 1)\n    for err in a:errors\n        if match(err, '\\m<error\\>') > -1\n            let line = str2nr(matchstr(err, '\\m\\<line=\"\\zs\\d\\+\\ze\"'))\n            if line == 0\n                continue\n            endif\n\n            let col = str2nr(matchstr(err, '\\m\\<column=\"\\zs\\d\\+\\ze\"'))\n\n            let type = matchstr(err, '\\m\\<severity=\"\\zs.\\ze')\n            if type !~? '^[EW]'\n                let type = 'E'\n            endif\n\n            let message = syntastic#util#decodeXMLEntities(matchstr(err, '\\m\\<message=\"\\zs[^\"]\\+\\ze\"'))\n\n            call add(out, join([fname, type, line, col, message], ':'))\n        elseif match(err, '\\m<file name=\"') > -1\n            let fname = syntastic#util#decodeXMLEntities(matchstr(err, '\\v\\<file name\\=\"\\zs[^\"]+\\ze\"'))\n        endif\n    endfor\n    return out\nendfunction \" }}}2\n\nfunction! syntastic#preprocess#cppcheck(errors) abort \" {{{2\n    return map(copy(a:errors), 'substitute(v:val, ''\\v^\\[[^]]+\\]\\zs( -\\> \\[[^]]+\\])+\\ze:'', \"\", \"\")')\nendfunction \" }}}2\n\nfunction! syntastic#preprocess#dockerfile_lint(errors) abort \" {{{2\n    let out = []\n    let json = s:_decode_JSON(join(a:errors, ''))\n\n    if type(json) == type({})\n        try\n            let data = json['error']['data'] + json['warn']['data'] + json['info']['data']\n            for e in data\n                let type = toupper(e['level'][0])\n                if type ==# 'I'\n                    let type = 'W'\n                    let style = 1\n                else\n                    let style = 0\n                endif\n\n                let line = get(e, 'line', 1)\n                let message = e['message']\n                if has_key(e, 'description') && e['description'] !=# 'None'\n                    let message = message . '. ' . e['description']\n                endif\n\n                let msg =\n                    \\ type . ':' .\n                    \\ style . ':' .\n                    \\ line . ':' .\n                    \\ message\n                call add(out, msg)\n            endfor\n        catch /\\m^Vim\\%((\\a\\+)\\)\\=:E716/\n            call syntastic#log#warn('checker dockerfile/dockerfile_lint: unrecognized error format (crashed checker?)')\n            let out = []\n        endtry\n    else\n        call syntastic#log#warn('checker dockerfile/dockerfile_lint: unrecognized error format (crashed checker?)')\n    endif\n    return out\nendfunction \" }}}2\n\nfunction! syntastic#preprocess#dscanner(errors) abort \" {{{2\n    let idx = 0\n    while idx < len(a:errors) && a:errors[idx][0] !=# '{'\n        let idx += 1\n    endwhile\n    let errs = s:_decode_JSON(join(a:errors[idx :], ''))\n\n    let out = []\n    if type(errs) == type({}) && has_key(errs, 'issues') && type(errs['issues']) == type([])\n        for issue in errs['issues']\n            try\n                call add(out,\n                    \\ issue['fileName'] . ':' .\n                    \\ issue['line'] . ':' .\n                    \\ issue['column'] . ':' .\n                    \\ issue['message'] . ' [' . issue['key'] . ']')\n            catch /\\m^Vim\\%((\\a\\+)\\)\\=:E716/\n                call syntastic#log#warn('checker d/dscanner: unrecognized error item ' . string(issue))\n                let out = []\n                break\n            endtry\n        endfor\n    else\n        call syntastic#log#warn('checker d/dscanner: unrecognized error format (crashed checker?)')\n    endif\n\n    return out\nendfunction \" }}}2\n\nfunction! syntastic#preprocess#flow(errors) abort \" {{{2\n    let idx = 0\n    while idx < len(a:errors) && a:errors[idx][0] !=# '{'\n        let idx += 1\n    endwhile\n    let errs = s:_decode_JSON(join(a:errors[idx :], ''))\n\n    let out = []\n    if type(errs) == type({}) && has_key(errs, 'errors') && type(errs['errors']) == type([])\n        for e in errs['errors']\n            if type(e) == type({}) && has_key(e, 'message') && type(e['message']) == type([]) && len(e['message'])\n                let m = e['message'][0]\n                let t = e['message'][1:]\n\n                try\n                    let msg =\n                        \\ m['path'] . ':' .\n                        \\ m['line'] . ':' .\n                        \\ m['start'] . ':' .\n                        \\ (m['line'] ==# m['endline'] && str2nr(m['end']) > 0 ? m['end'] . ':' : '') .\n                        \\ ' ' . m['descr']\n\n                    if len(t)\n                        let msg .= ' ' . join(map(t,\n                            \\ 'v:val[\"descr\"] . \" (\" . v:val[\"path\"] . \":\" . v:val[\"line\"] . \":\" . v:val[\"start\"] . ' .\n                            \\ '\",\" . (v:val[\"line\"] !=# v:val[\"endline\"] ? v:val[\"endline\"] . \":\" : \"\") . ' .\n                            \\ 'v:val[\"end\"] . \")\"'))\n                    endif\n\n                    let msg = substitute(msg, '\\r', '', 'g')\n                    let msg = substitute(msg, '\\n', ' ', 'g')\n\n                    call add(out, msg)\n                catch /\\m^Vim\\%((\\a\\+)\\)\\=:E716/\n                    call syntastic#log#warn('checker javascript/flow: unrecognized error format (crashed checker?)')\n                    let out = []\n                    break\n                endtry\n            else\n                call syntastic#log#warn('checker javascript/flow: unrecognized error format (crashed checker?)')\n                let out = []\n                break\n            endif\n        endfor\n    else\n        call syntastic#log#warn('checker javascript/flow: unrecognized error format (crashed checker?)')\n    endif\n\n    return out\nendfunction \" }}}2\n\nfunction! syntastic#preprocess#iconv(errors) abort \" {{{2\n    return\n        \\ has('iconv') && &encoding !=# '' && &encoding !=# 'utf-8' ?\n        \\       map(a:errors, 'iconv(v:val, \"utf-8\", &encoding)') :\n        \\       a:errors\nendfunction \" }}}2\n\nfunction! syntastic#preprocess#jscs(errors) abort \" {{{2\n    let errs = join(a:errors, '')\n    if errs ==# ''\n        return []\n    endif\n\n    let json = s:_decode_JSON(errs)\n\n    let out = []\n    if type(json) == type({})\n        for fname in keys(json)\n            if type(json[fname]) == type([])\n                for e in json[fname]\n                    try\n                        let e['message'] = substitute(e['message'], \"\\n\", ' ', 'g')\n                        cal add(out, fname . ':' . e['line'] . ':' . e['column'] . ':' . e['message'])\n                    catch /\\m^Vim\\%((\\a\\+)\\)\\=:E716/\n                        call syntastic#log#warn('checker javascript/jscs: unrecognized error item ' . string(e))\n                        let out = []\n                    endtry\n                endfor\n            else\n                call syntastic#log#warn('checker javascript/jscs: unrecognized error format (crashed checker?)')\n            endif\n        endfor\n    else\n        call syntastic#log#warn('checker javascript/jscs: unrecognized error format (crashed checker?)')\n    endif\n    return out\nendfunction \" }}}2\n\nfunction! syntastic#preprocess#killEmpty(errors) abort \" {{{2\n    return filter(copy(a:errors), 'v:val !=# \"\"')\nendfunction \" }}}2\n\nfunction! syntastic#preprocess#lynt(errors) abort \" {{{2\n    let errs = join(a:errors, '')\n    if errs ==# ''\n        return []\n    endif\n\n    let json = s:_decode_JSON(errs)\n\n    let out = []\n    if type(json) == type([])\n        for err in json\n            if type(err) == type({}) && type(get(err, 'filePath')) == type('') && type(get(err, 'errors')) == type([])\n                let fname = get(err, 'filePath')\n\n                for e in get(err, 'errors')\n                    if type(e) == type({})\n                        try\n                            let line = e['line']\n                            let col  = e['column']\n                            let ecol = line == get(e, 'endLine') ? get(e, 'endColumn') : 0\n                            let msg  = e['message'] . ' [' . e['ruleName'] . ']'\n\n                            cal add(out, join([fname, line, col, ecol, msg], ':'))\n                        catch /\\m^Vim\\%((\\a\\+)\\)\\=:E716/\n                            call syntastic#log#warn('checker javascript/lynt: unrecognized error item ' . string(e))\n                        endtry\n                    else\n                        call syntastic#log#warn('checker javascript/lynt unrecognized error item ' . string(e))\n                    endif\n                endfor\n            endif\n        endfor\n    else\n        call syntastic#log#warn('checker javascript/lynt unrecognized error format (crashed checker?)')\n    endif\n    return out\nendfunction \" }}}2\n\nfunction! syntastic#preprocess#perl(errors) abort \" {{{2\n    let out = []\n\n    for e in a:errors\n        let parts = matchlist(e, '\\v^(.*)\\sat\\s(.{-})\\sline\\s(\\d+)(.*)$')\n        if !empty(parts)\n            call add(out, parts[2] . ':' . parts[3] . ':' . parts[1] . parts[4])\n        endif\n    endfor\n\n    return syntastic#util#unique(out)\nendfunction \" }}}2\n\nfunction! syntastic#preprocess#prospector(errors) abort \" {{{2\n    let errs = join(a:errors, '')\n    if errs ==# ''\n        return []\n    endif\n\n    let json = s:_decode_JSON(errs)\n\n    let out = []\n    if type(json) == type({}) && has_key(json, 'messages')\n        if type(json['messages']) == type([])\n            for e in json['messages']\n                if type(e) == type({})\n                    try\n                        if e['source'] ==# 'pylint'\n                            let e['location']['character'] += 1\n                        endif\n\n                        let msg =\n                            \\ e['location']['path'] . ':' .\n                            \\ e['location']['line'] . ':' .\n                            \\ e['location']['character'] . ': ' .\n                            \\ e['code'] . ' ' .\n                            \\ e['message'] . ' ' .\n                            \\ '[' . e['source'] . ']'\n\n                        call add(out, msg)\n                    catch /\\m^Vim\\%((\\a\\+)\\)\\=:E716/\n                        call syntastic#log#warn('checker python/prospector: unrecognized error item ' . string(e))\n                        let out = []\n                        break\n                    endtry\n                else\n                    call syntastic#log#warn('checker python/prospector: unrecognized error item ' . string(e))\n                    let out = []\n                    break\n                endif\n            endfor\n        else\n            call syntastic#log#warn('checker python/prospector: unrecognized error format (crashed checker?)')\n        endif\n    else\n        call syntastic#log#warn('checker python/prospector: unrecognized error format (crashed checker?)')\n    endif\n\n    return out\nendfunction \" }}}2\n\nfunction! syntastic#preprocess#rparse(errors) abort \" {{{2\n    let errlist = copy(a:errors)\n\n    \" remove uninteresting lines and handle continuations\n    let i = 0\n    while i < len(errlist)\n        if i > 0 && errlist[i][:1] ==# '  ' && errlist[i] !~# '\\m\\s\\+\\^$'\n            let errlist[i-1] .= errlist[i][1:]\n            call remove(errlist, i)\n        elseif errlist[i] !~# '\\m^\\(Lint:\\|Lint checking:\\|Error in\\) '\n            call remove(errlist, i)\n        else\n            let i += 1\n        endif\n    endwhile\n\n    let out = []\n    let fname = ''\n    for e in errlist\n        if match(e, '\\m^Lint: ') == 0\n            let parts = matchlist(e, '\\m^Lint: \\(.*\\): found on lines \\([0-9, ]\\+\\)\\(+\\(\\d\\+\\) more\\)\\=')\n            if len(parts) >= 3\n                for line in split(parts[2], '\\m,\\s*')\n                    call add(out, 'E:' . fname . ':' . line . ': ' . parts[1])\n                endfor\n            endif\n            if len(parts) >= 5 && parts[4] !=# ''\n                call add(out, 'E:' . fname . ':0: ' . parts[1] . ' - ' . parts[4] . ' messages not shown')\n            endif\n        elseif match(e, '\\m^Lint checking: ') == 0\n            let fname = matchstr(e, '\\m^Lint checking: \\zs.*')\n        elseif match(e, '\\m^Error in ') == 0\n            call add(out, substitute(e, '\\m^Error in .\\+ : .\\+\\ze:\\d\\+:\\d\\+: ', 'E:' . fname, ''))\n        endif\n    endfor\n\n    return out\nendfunction \" }}}2\n\nfunction! syntastic#preprocess#raku(errors) abort \" {{{2\n    if a:errors[0] ==# 'Syntax OK'\n        return []\n    endif\n\n    let errs = s:_decode_JSON(join(a:errors, ''))\n\n    let out = []\n    if type(errs) == type({})\n        try\n            for val in values(errs)\n                let line = get(val, 'line', 0)\n                let pos = get(val, 'pos', 0)\n                if pos && has('byte_offset')\n                    let line_pos = byte2line(pos + 1)\n                    let column = line_pos > 0 ? pos - line2byte(line_pos) + 2 : 0\n                else\n                    let column = 0\n                endif\n\n                call add(out, join([\n                    \\ get(val, 'filename', ''),\n                    \\ line,\n                    \\ column,\n                    \\ get(val, 'message', '') ], ':'))\n            endfor\n        catch /\\m^Vim\\%((\\a\\+)\\)\\=:E716/\n            call syntastic#log#warn('checker raku/raku: unrecognized error item ' . string(val))\n            let out = []\n        endtry\n    else\n        call syntastic#log#warn('checker raku/raku: unrecognized error format')\n    endif\n\n    return out\nendfunction \" }}}2\n\nfunction! syntastic#preprocess#remark_lint(errors) abort \" {{{2\n    let out = []\n    let fname = expand('%', 1)\n\n    for err in a:errors\n        if err =~# '\\m^\\f\\+$'\n            let fname = err\n\n        elseif err =~# '\\v^\\s+\\d+:\\d+\\s+%(warning|error)\\s.*remark-lint$'\n            let parts = matchlist(err, '\\v^\\s+(\\d+):(\\d+)\\s+([ew])\\S+\\s+(.{-})\\s+(\\S+)\\s+remark-lint$')\n            if len(parts) >6\n                let line    = str2nr(parts[1])\n                let col     = str2nr(parts[2])\n                let type    = parts[3]\n                let message = parts[4] . ' [' . parts[5] . ']'\n                call add(out, join([fname, type, line, col, message], ':'))\n            else\n                call syntastic#log#warn('checker markdown/remark_lint: unrecognized error item ' . string(err))\n            endif\n\n        elseif err =~# '\\v^\\s+\\d+:\\d+-\\d+:\\d+\\s+%(warning|error)\\s.*remark-lint$'\n            let parts = matchlist(err, '\\v^\\s+(\\d+):(\\d+)-(\\d+):(\\d+)\\s+([ew])\\S+\\s+(.{-})\\s+(\\S+)\\s+remark-lint$')\n            if len(parts) >8\n                let line1   = str2nr(parts[1])\n                let col1    = str2nr(parts[2])\n                let line2   = str2nr(parts[3])\n                let col2    = str2nr(parts[4]) - 1\n                let type    = parts[5]\n                let message = parts[6] . ' [' . parts[7] . ']'\n                if line1 == line2\n                    call add(out, join([fname, type, line1, col1, col2, message], ':'))\n                else\n                    call add(out, join([fname, type, line1, col1, message], ':'))\n                endif\n            else\n                call syntastic#log#warn('checker markdown/remark_lint: unrecognized error item ' . string(err))\n            endif\n        endif\n    endfor\n\n    return out\nendfunction \" }}}2\n\nfunction! syntastic#preprocess#scss_lint(errors) abort \" {{{2\n    let errs = join(a:errors, '')\n    if errs ==# ''\n        return []\n    endif\n\n    let json = s:_decode_JSON(errs)\n\n    let out = []\n    if type(json) == type({})\n        for fname in keys(json)\n            if type(json[fname]) == type([])\n                for e in json[fname]\n                    try\n                        cal add(out, fname . ':' .\n                            \\ e['severity'][0] . ':' .\n                            \\ e['line'] . ':' .\n                            \\ e['column'] . ':' .\n                            \\ e['length'] . ':' .\n                            \\ ( has_key(e, 'linter') ? e['linter'] . ': ' : '' ) .\n                            \\ e['reason'])\n                    catch /\\m^Vim\\%((\\a\\+)\\)\\=:E716/\n                        call syntastic#log#warn('checker scss/scss_lint: unrecognized error item ' . string(e))\n                        let out = []\n                    endtry\n                endfor\n            else\n                call syntastic#log#warn('checker scss/scss_lint: unrecognized error format (crashed checker?)')\n            endif\n        endfor\n    else\n        call syntastic#log#warn('checker scss/scss_lint: unrecognized error format (crashed checker?)')\n    endif\n    return out\nendfunction \" }}}2\n\nfunction! syntastic#preprocess#stylelint(errors) abort \" {{{2\n    let out = []\n\n    \" CssSyntaxError: /path/to/file.css:2:11: Missed semicolon\n    let parts = matchlist(a:errors[0], '\\v^CssSyntaxError: (.{-1,}):(\\d+):(\\d+): (.+)')\n    if len(parts) > 4\n        call add(out, 'E:' . join(parts[1:4], ':'))\n    else\n        let errs = s:_decode_JSON(join(a:errors, ''))\n\n        let out = []\n        if type(errs) == type([]) && len(errs) == 1 && type(errs[0]) == type({}) &&\n            \\ has_key(errs[0], 'source') && has_key(errs[0], 'warnings') && type(errs[0]['warnings']) == type([])\n\n            for e in errs[0]['warnings']\n                try\n                    let severity = type(e['severity']) == type(0) ? ['W', 'E'][e['severity']-1] : e['severity'][0]\n                    let msg =\n                        \\ severity . ':' .\n                        \\ errs[0]['source'] . ':' .\n                        \\ e['line'] . ':' .\n                        \\ e['column'] . ':' .\n                        \\ e['text']\n                    call add(out, msg)\n                catch /\\m^Vim\\%((\\a\\+)\\)\\=:E716/\n                    call syntastic#log#warn('checker css/stylelint: unrecognized error item ' . string(e))\n                    let out = []\n                    break\n                endtry\n            endfor\n        else\n            call syntastic#log#warn('checker css/stylelint: unrecognized error format (crashed checker?)')\n        endif\n    endif\n    return out\nendfunction \" }}}2\n\nfunction! syntastic#preprocess#tern_lint(errors) abort \" {{{2\n    let errs = join(a:errors, '')\n    let json = s:_decode_JSON(errs)\n\nechomsg string(json)\n    let out = []\n    if type(json) == type({}) && has_key(json, 'messages') && type(json['messages']) == type([])\n        for e in json['messages']\n            try\n                let line_from = byte2line(e['from'] + 1)\n                if line_from > 0\n                    let line = line_from\n                    let column = e['from'] - line2byte(line_from) + 2\n                    let line_to = byte2line(e['from'] + 1)\n                    let hl = line_to == line ? e['to'] - line2byte(line_to) + 1 : 0\n                else\n                    let line = 0\n                    let column = 0\n                    let hl = 0\n                endif\n\n                if column < 0\n                    let column = 0\n                endif\n                if hl < 0\n                    let hl = 0\n                endif\n\n                call add(out,\n                    \\ e['file'] . ':' .\n                    \\ e['severity'][0] . ':' .\n                    \\ line . ':' .\n                    \\ column . ':' .\n                    \\ hl . ':' .\n                    \\ e['message'])\n            catch /\\m^Vim\\%((\\a\\+)\\)\\=:E716/\n                call syntastic#log#warn('checker javascript/tern_lint: unrecognized error item ' . string(e))\n                let out = []\n            endtry\n        endfor\n    else\n        call syntastic#log#warn('checker javascript/tern_lint: unrecognized error format (crashed checker?)')\n    endif\n\nechomsg string(out)\n    return out\nendfunction \" }}}2\n\nfunction! syntastic#preprocess#tslint(errors) abort \" {{{2\n    return map(copy(a:errors), 'substitute(v:val, ''\\v^((ERROR|WARNING): )?\\zs(\\([^)]+\\))\\s(.+)$'', ''\\4 \\3'', \"\")')\nendfunction \" }}}2\n\nfunction! syntastic#preprocess#validator(errors) abort \" {{{2\n    let out = []\n    for e in a:errors\n        let parts = matchlist(e, '\\v^\"([^\"]+)\"(.+)')\n        if len(parts) >= 3\n            \" URL decode, except leave alone any \"+\"\n            let parts[1] = substitute(parts[1], '\\m%\\(\\x\\x\\)', '\\=nr2char(\"0x\".submatch(1))', 'g')\n            let parts[1] = substitute(parts[1], '\\m\\\\\"', '\"', 'g')\n            let parts[1] = substitute(parts[1], '\\m\\\\\\\\', '\\\\', 'g')\n            call add(out, '\"' . parts[1] . '\"' . parts[2])\n        endif\n    endfor\n    return out\nendfunction \" }}}2\n\nfunction! syntastic#preprocess#vint(errors) abort \" {{{2\n    let errs = s:_decode_JSON(join(a:errors, ''))\n\n    let out = []\n    if type(errs) == type([])\n        for e in errs\n            if type(e) == type({})\n                try\n                    let msg =\n                        \\ e['file_path'] . ':' .\n                        \\ e['line_number'] . ':' .\n                        \\ e['column_number'] . ':' .\n                        \\ e['severity'][0] . ': ' .\n                        \\ e['description'] . ' (' .\n                        \\ e['policy_name'] . ')'\n\n                    call add(out, msg)\n                catch /\\m^Vim\\%((\\a\\+)\\)\\=:E716/\n                    call syntastic#log#warn('checker vim/vint: unrecognized error item ' . string(e))\n                    let out = []\n                    break\n                endtry\n            else\n                call syntastic#log#warn('checker vim/vint: unrecognized error item ' . string(e))\n                let out = []\n                break\n            endif\n        endfor\n    else\n        call syntastic#log#warn('checker vim/vint: unrecognized error format (crashed checker?)')\n    endif\n\n    return out\nendfunction \" }}}2\n\n\" }}}1\n\n\" Workarounds {{{1\n\n\" In errorformat, \\ or % following %f make it depend on isfname.  The default\n\" setting of isfname is crafted to work with completion, rather than general\n\" filename matching.  The result for syntastic is that filenames containing\n\" spaces (or a few other special characters) can't be matched.\n\"\n\" Fixing isfname to address this problem would depend on the set of legal\n\" characters for filenames on the filesystem the project's files lives on.\n\" Inferring the kind of filesystem a file lives on, in advance to parsing the\n\" file's name, is an interesting problem (think f.i. a file loaded from a VFAT\n\" partition, mounted on Linux).  A problem syntastic is not prepared to solve.\n\"\n\" As a result, the functions below exist for the only reason to avoid using\n\" things like %f\\, in errorformat.\n\"\n\" References:\n\" https://groups.google.com/forum/#!topic/vim_dev/pTKmZmouhio\n\" https://vimhelp.appspot.com/quickfix.txt.html#error-file-format\n\nfunction! syntastic#preprocess#basex(errors) abort \" {{{2\n    let out = []\n    let idx = 0\n    while idx < len(a:errors)\n        let parts = matchlist(a:errors[idx], '\\v^\\[\\S+\\] Stopped at (.+), (\\d+)/(\\d+):')\n        if len(parts) > 3\n            let err = parts[1] . ':' . parts[2] . ':' . parts[3] . ':'\n            let parts = matchlist(a:errors[idx+1], '\\v^\\[(.)\\D+(\\d+)\\] (.+)')\n            if len(parts) > 3\n                let err .= (parts[1] ==? 'W' || parts[1] ==? 'E' ? parts[1] : 'E') . ':' . parts[2] . ':' . parts[3]\n                call add(out, err)\n                let idx +=1\n            endif\n        elseif a:errors[idx] =~# '\\m^\\['\n            \" unparseable errors\n            call add(out, a:errors[idx])\n        endif\n        let idx +=1\n    endwhile\n    return out\nendfunction \" }}}2\n\nfunction! syntastic#preprocess#bro(errors) abort \" {{{2\n    let out = []\n    for e in a:errors\n        let parts = matchlist(e, '\\v^%(fatal )?(error|warning) in (.{-1,}), line (\\d+): (.+)')\n        if len(parts) > 4\n            let parts[1] = parts[1][0]\n            call add(out, join(parts[1:4], ':'))\n        endif\n    endfor\n    return out\nendfunction \" }}}2\n\nfunction! syntastic#preprocess#coffeelint(errors) abort \" {{{2\n    let out = []\n    for e in a:errors\n        let parts = matchlist(e, '\\v^(.{-1,}),(\\d+)%(,\\d*)?,(error|warn),(.+)')\n        if len(parts) > 4\n            let parts[3] = parts[3][0]\n            call add(out, join(parts[1:4], ':'))\n        endif\n    endfor\n    return out\nendfunction \" }}}2\n\nfunction! syntastic#preprocess#mypy(errors) abort \" {{{2\n    let out = []\n    for e in a:errors\n        \" column numbers\n        let parts = matchlist(e, '\\v^(.{-1,}):(\\d+):(\\d+): ([ew])%(rror|arning): (.+)')\n        if len(parts) > 5\n            let parts[3] += 1\n            call add(out, join(parts[1:5], ':'))\n            continue\n        endif\n\n        \" no column numbers\n        let parts = matchlist(e, '\\v^(.{-1,}):(\\d+): ([ew])%(rror|arning): (.+)')\n        if len(parts) > 4\n            call add(out, join(parts[1:4], ':'))\n            continue\n        endif\n\n        \" obsolete format\n        let parts = matchlist(e, '\\v^(.{-1,}), line (\\d+): (.+)')\n        if len(parts) > 3\n            let parts[4] = parts[3]\n            let parts[3] = 'e'\n            call add(out, join(parts[1:4], ':'))\n        endif\n    endfor\n    return out\nendfunction \" }}}2\n\nfunction! syntastic#preprocess#nix(errors) abort \" {{{2\n    let out = []\n    for e in a:errors\n        let parts = matchlist(e, '\\v^(.{-1,}), at (.{-1,}):(\\d+):(\\d+)$')\n        if len(parts) > 4\n            call add(out, join(parts[2:4], ':') . ':' . parts[1])\n            continue\n        endif\n\n        let parts = matchlist(e, '\\v^(.{-1,}) at (.{-1,}), line (\\d+):')\n        if len(parts) > 3\n            call add(out, parts[2] . ':' . parts[3] . ':' . parts[1])\n            continue\n        endif\n\n        let parts = matchlist(e, '\\v^error: (.{-1,}), in (.{-1,})$')\n        if len(parts) > 2\n            call add(out, parts[2] . ':' . parts[1])\n        endif\n    endfor\n    return out\nendfunction \" }}}2\n\n\" }}}1\n\n\" Private functions {{{1\n\n\" @vimlint(EVL102, 1, l:true)\n\" @vimlint(EVL102, 1, l:false)\n\" @vimlint(EVL102, 1, l:null)\nfunction! s:_decode_JSON(json) abort \" {{{2\n    if a:json ==# ''\n        return []\n    endif\n\n    \" The following is inspired by https://github.com/MarcWeber/vim-addon-manager and\n    \" http://stackoverflow.com/questions/17751186/iterating-over-a-string-in-vimscript-or-parse-a-json-file/19105763#19105763\n    \" A hat tip to Marc Weber for this trick\n    if substitute(a:json, '\\v\\\"%(\\\\.|[^\"\\\\])*\\\"|true|false|null|[+-]?\\d+%(\\.\\d+%([Ee][+-]?\\d+)?)?', '', 'g') !~# \"[^,:{}[\\\\] \\t]\"\n        \" JSON artifacts\n        let true = 1\n        let false = 0\n        let null = ''\n\n        try\n            let object = eval(a:json)\n        catch\n            \" malformed JSON\n            let object = ''\n        endtry\n    else\n        let object = ''\n    endif\n\n    return object\nendfunction \" }}}2\n\" @vimlint(EVL102, 0, l:true)\n\" @vimlint(EVL102, 0, l:false)\n\" @vimlint(EVL102, 0, l:null)\n\n\" }}}1\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "autoload/syntastic/util.vim",
    "content": "if exists('g:loaded_syntastic_util_autoload') || !exists('g:loaded_syntastic_plugin')\n    finish\nendif\nlet g:loaded_syntastic_util_autoload = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\n\" Public functions {{{1\n\nfunction! syntastic#util#isRunningWindows() abort \" {{{2\n    return has('win16') || has('win32') || has('win64')\nendfunction \" }}}2\n\nfunction! syntastic#util#DevNull() abort \" {{{2\n    if syntastic#util#isRunningWindows()\n        return 'NUL'\n    endif\n    return '/dev/null'\nendfunction \" }}}2\n\n\" Get directory separator\nfunction! syntastic#util#Slash() abort \" {{{2\n    return (!exists('+shellslash') || &shellslash) ? '/' : '\\'\nendfunction \" }}}2\n\nfunction! syntastic#util#CygwinPath(path) abort \" {{{2\n    return substitute(syntastic#util#system('cygpath -m ' . syntastic#util#shescape(a:path)), \"\\n\", '', 'g')\nendfunction \" }}}2\n\nfunction! syntastic#util#system(command) abort \" {{{2\n    let old_shell = &shell\n    let old_lc_messages = $LC_MESSAGES\n    let old_lc_all = $LC_ALL\n\n    let &shell = syntastic#util#var('shell')\n    let $LC_MESSAGES = 'C'\n    let $LC_ALL = ''\n\n    let crashed = 0\n    let cmd_start = reltime()\n    try\n        let out = system(a:command)\n    catch\n        if v:exception =~# '\\m^Vim\\%((\\a\\+)\\)\\=:\\%(E145\\|E484\\|E684\\)'\n            \" XXX re-throwing unmodified v:exception triggers E608\n            throw substitute(v:exception, '.*:\\(E145\\|E484\\|E684\\).*', '\\1', '')\n        endif\n\n        let crashed = 1\n        call syntastic#log#error('exception running system(' . string(a:command) . '): ' . v:exception)\n        if syntastic#util#isRunningWindows()\n            call syntastic#log#debug(g:_SYNTASTIC_DEBUG_CHECKERS, '$TMP = ' . string($TMP) . ', $TEMP = ' . string($TEMP))\n        else\n            call syntastic#log#debug(g:_SYNTASTIC_DEBUG_CHECKERS, '$TERM = ' . string($TERM))\n            call syntastic#log#debug(g:_SYNTASTIC_DEBUG_CHECKERS, '$TMPDIR = ' . string($TMPDIR))\n        endif\n        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, '$PATH = ' . string($PATH))\n        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'getcwd() = ' . string(getcwd()))\n        call syntastic#log#debugShowOptions(g:_SYNTASTIC_DEBUG_TRACE, g:_SYNTASTIC_SHELL_OPTIONS)\n        let out = ''\n    endtry\n    let cmd_time = split(reltimestr(reltime(cmd_start)))[0]\n\n    let $LC_ALL = old_lc_all\n    let $LC_MESSAGES = old_lc_messages\n\n    let &shell = old_shell\n\n    if !crashed && exists('g:_SYNTASTIC_DEBUG_TRACE')\n        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'system: command run in ' . cmd_time . 's')\n    endif\n\n    return out\nendfunction \" }}}2\n\n\" Create a temporary directory\nfunction! syntastic#util#tmpdir() abort \" {{{2\n    let tempdir = ''\n\n    if (has('unix') || has('mac')) && executable('mktemp') && !has('win32unix')\n        \" TODO: option \"-t\" to mktemp(1) is not portable\n        let tmp = $TMPDIR !=# '' ? $TMPDIR : $TMP !=# '' ? $TMP : '/tmp'\n        let out = split(syntastic#util#system('mktemp -q -d ' . tmp . '/vim-syntastic-' . s:_fuzz() . '-XXXXXXXX'), \"\\n\")\n        if v:shell_error == 0 && len(out) == 1\n            let tempdir = out[0]\n        endif\n    endif\n\n    if tempdir ==# ''\n        if has('win32') || has('win64')\n            let tempdir = $TEMP . syntastic#util#Slash() . 'vim-syntastic-' . s:_fuzz()\n        elseif has('win32unix')\n            let tempdir = syntastic#util#CygwinPath('/tmp/vim-syntastic-'  . s:_fuzz())\n        elseif $TMPDIR !=# ''\n            let tempdir = $TMPDIR . '/vim-syntastic-' . s:_fuzz()\n        else\n            let tempdir = '/tmp/vim-syntastic-' . s:_fuzz()\n        endif\n\n        try\n            call mkdir(tempdir, 'p', 0700)\n        catch /\\m^Vim\\%((\\a\\+)\\)\\=:E739/\n            call syntastic#log#error(v:exception)\n            let tempdir = '.'\n        endtry\n    endif\n\n    return tempdir\nendfunction \" }}}2\n\n\" Recursively remove a directory\nfunction! syntastic#util#rmrf(what) abort \" {{{2\n    \" try to make sure we don't delete directories we didn't create\n    if a:what !~? 'vim-syntastic-'\n        return\n    endif\n\n    if  getftype(a:what) ==# 'dir'\n        call s:_delete(a:what, 'rf')\n    else\n        silent! call delete(a:what)\n    endif\nendfunction \" }}}2\n\nfunction! syntastic#util#getbufvar(buf, name, ...) abort \" {{{2\n    return a:0 ? s:_getbufvar(a:buf, a:name, a:1) : getbufvar(a:buf, a:name)\nendfunction \" }}}2\n\n\" Search the first 5 lines of the file for a magic number and return a map\n\" containing the args and the executable\n\"\n\" e.g.\n\"\n\" #!/usr/bin/perl -f -bar\n\"\n\" returns\n\"\n\" {'exe': '/usr/bin/perl', 'args': ['-f', '-bar']}\nfunction! syntastic#util#parseShebang(buf) abort \" {{{2\n    for lnum in range(1, 5)\n        let line = get(getbufline(a:buf, lnum), 0, '')\n        if line =~# '^#!'\n            let line = substitute(line, '\\v^#!\\s*(\\S+/env(\\s+-\\S+)*\\s+)?', '', '')\n            let exe = matchstr(line, '\\m^\\S*\\ze')\n            let args = split(matchstr(line, '\\m^\\S*\\zs.*'))\n            return { 'exe': exe, 'args': args }\n        endif\n    endfor\n\n    return { 'exe': '', 'args': [] }\nendfunction \" }}}2\n\n\" Get the value of a Vim variable.  Allow buffer variables to override global ones.\nfunction! syntastic#util#bufRawVar(buf, name, ...) abort \" {{{2\n    return s:_getbufvar(a:buf, a:name, get(g:, a:name, a:0 ? a:1 : ''))\nendfunction \"}}}2\n\n\" Get the value of a syntastic variable.  Allow buffer variables to override global ones.\nfunction! syntastic#util#bufVar(buf, name, ...) abort \" {{{2\n    return call('syntastic#util#bufRawVar', [a:buf, 'syntastic_' . a:name] + a:000)\nendfunction \"}}}2\n\n\" Get the value of a Vim variable.  Allow local variables to override global ones.\nfunction! syntastic#util#rawVar(name, ...) abort \" {{{2\n    return get(b:, a:name, get(g:, a:name, a:0 ? a:1 : ''))\nendfunction \" }}}2\n\n\" Get the value of a syntastic variable.  Allow local variables to override global ones.\nfunction! syntastic#util#var(name, ...) abort \" {{{2\n    return call('syntastic#util#rawVar', ['syntastic_' . a:name] + a:000)\nendfunction \" }}}2\n\n\" Parse a version string.  Return an array of version components.\nfunction! syntastic#util#parseVersion(version, ...) abort \" {{{2\n    return map(split(matchstr( a:version, a:0 ? a:1 : '\\v^\\D*\\zs\\d+(\\.\\d+)+\\ze' ), '\\m\\.'), 'str2nr(v:val)')\nendfunction \" }}}2\n\n\" Verify that the 'installed' version is at least the 'required' version.\n\"\n\" 'installed' and 'required' must be arrays. If they have different lengths,\n\" the \"missing\" elements will be assumed to be 0 for the purposes of checking.\n\"\n\" See http://semver.org for info about version numbers.\nfunction! syntastic#util#versionIsAtLeast(installed, required) abort \" {{{2\n    return syntastic#util#compareLexi(a:installed, a:required) >= 0\nendfunction \" }}}2\n\n\" Almost lexicographic comparison of two lists of integers. :) If lists\n\" have different lengths, the \"missing\" elements are assumed to be 0.\nfunction! syntastic#util#compareLexi(a, b) abort \" {{{2\n    for idx in range(max([len(a:a), len(a:b)]))\n        let a_element = str2nr(get(a:a, idx, 0))\n        let b_element = str2nr(get(a:b, idx, 0))\n        if a_element != b_element\n            return a_element > b_element ? 1 : -1\n        endif\n    endfor\n    \" still here, thus everything matched\n    return 0\nendfunction \" }}}2\n\nfunction! syntastic#util#screenWidth(str, tabstop) abort \" {{{2\n    let chunks = split(a:str, \"\\t\", 1)\n    let width = s:_width(chunks[-1])\n    for c in chunks[:-2]\n        let cwidth = s:_width(c)\n        let width += cwidth + a:tabstop - cwidth % a:tabstop\n    endfor\n    return width\nendfunction \" }}}2\n\n\" Print as much of a:msg as possible without \"Press Enter\" prompt appearing\nfunction! syntastic#util#wideMsg(msg) abort \" {{{2\n    let old_ruler = &ruler\n    let old_showcmd = &showcmd\n\n    \"This is here because it is possible for some error messages to\n    \"begin with \\n which will cause a \"press enter\" prompt.\n    let msg = substitute(a:msg, \"\\n\", '', 'g')\n\n    \"convert tabs to spaces so that the tabs count towards the window\n    \"width as the proper amount of characters\n    let chunks = split(msg, \"\\t\", 1)\n    let msg = join(map(chunks[:-2], 'v:val . repeat(\" \", &tabstop - s:_width(v:val) % &tabstop)'), '') . chunks[-1]\n    let msg = strpart(msg, 0, &columns - 1)\n\n    set noruler noshowcmd\n    call syntastic#util#redraw(0)\n\n    echo msg\n\n    let &ruler = old_ruler\n    let &showcmd = old_showcmd\nendfunction \" }}}2\n\n\" Check whether a buffer is loaded, listed, and not hidden\nfunction! syntastic#util#bufIsActive(buffer) abort \" {{{2\n    \" convert to number, or hell breaks loose\n    let buf = str2nr(a:buffer)\n\n    if !bufloaded(buf) || !buflisted(buf)\n        return 0\n    endif\n\n    \" get rid of hidden buffers\n    for tab in range(1, tabpagenr('$'))\n        if index(tabpagebuflist(tab), buf) >= 0\n            return 1\n        endif\n    endfor\n\n    return 0\nendfunction \" }}}2\n\n\" Start in directory a:where and walk up the parent folders until it finds a\n\" file named a:what; return path to that file\nfunction! syntastic#util#findFileInParent(what, where) abort \" {{{2\n    let old_suffixesadd = &suffixesadd\n    let &suffixesadd = ''\n    let file = findfile(a:what, escape(a:where, ' ,') . ';')\n    let &suffixesadd = old_suffixesadd\n    return file\nendfunction \" }}}2\n\n\" Start in directory a:where and walk up the parent folders until it finds a\n\" file matching a:what; return path to that file\nfunction! syntastic#util#findGlobInParent(what, where) abort \" {{{2\n    let here = fnamemodify(a:where, ':p')\n\n    let root = syntastic#util#Slash()\n    if syntastic#util#isRunningWindows() && here[1] ==# ':'\n        \" The drive letter is an ever-green source of fun.  That's because\n        \" we don't care about running syntastic on Amiga these days. ;)\n        let root = fnamemodify(root, ':p')\n        let root = here[0] . root[1:]\n    endif\n\n    let old = ''\n    while here !=# ''\n        try\n            \" Vim 7.4.279 and later\n            let p = globpath(here, a:what, 1, 1)\n        catch /\\m^Vim\\%((\\a\\+)\\)\\=:E118/\n            let p = split(globpath(here, a:what, 1), \"\\n\")\n        endtry\n\n        if !empty(p)\n            return fnamemodify(p[0], ':p')\n        elseif here ==? root || here ==? old\n            break\n        endif\n\n        let old = here\n\n        \" we use ':h:h' rather than ':h' since ':p' adds a trailing '/'\n        \" if 'here' is a directory\n        let here = fnamemodify(here, ':p:h:h')\n    endwhile\n\n    return ''\nendfunction \" }}}2\n\n\" Returns the buffer number of a filename\n\" @vimlint(EVL104, 1, l:old_shellslash)\nfunction! syntastic#util#fname2buf(fname) abort \" {{{2\n    if exists('+shellslash')\n        \" bufnr() can't cope with backslashes\n        let old_shellslash = &shellslash\n        let &shellslash = 1\n    endif\n\n    \" this is a best-effort attempt to escape file patterns (cf. :h file-pattern)\n    \" XXX it fails for filenames containing something like \\{2,3}\n    let buf = -1\n    for md in [':~:.', ':~', ':p']\n        try\n            \" Older versions of Vim can throw E94 here\n            let buf = bufnr('^' . escape(fnamemodify(a:fname, md), '\\*?,{}[') . '$')\n        catch\n            \" catch everything\n        endtry\n        if buf != -1\n            break\n        endif\n    endfor\n    if buf == -1\n        \" XXX definitely wrong, but hope is the last thing to die :)\n        let buf = bufnr(fnamemodify(a:fname, ':p'))\n    endif\n\n    if exists('+shellslash')\n        let &shellslash = old_shellslash\n    endif\n\n    return buf\nendfunction \" }}}2\n\" @vimlint(EVL104, 0, l:old_shellslash)\n\n\" Returns unique elements in a list\nfunction! syntastic#util#unique(list) abort \" {{{2\n    let seen = {}\n    let uniques = []\n    for e in a:list\n        let k = string(e)\n        if !has_key(seen, k)\n            let seen[k] = 1\n            call add(uniques, e)\n        endif\n    endfor\n    return uniques\nendfunction \" }}}2\n\n\" A less noisy shellescape()\nfunction! syntastic#util#shescape(string) abort \" {{{2\n    return a:string =~# '\\m^[A-Za-z0-9_/.-]\\+$' ? a:string : shellescape(a:string)\nendfunction \" }}}2\n\n\" A less noisy shellescape(expand())\nfunction! syntastic#util#shexpand(string, ...) abort \" {{{2\n    return syntastic#util#shescape(a:0 ? expand(a:string, a:1) : expand(a:string, 1))\nendfunction \" }}}2\n\n\" Escape arguments\nfunction! syntastic#util#argsescape(opt) abort \" {{{2\n    if type(a:opt) == type('') && a:opt !=# ''\n        return [a:opt]\n    elseif type(a:opt) == type([])\n        return map(copy(a:opt), 'syntastic#util#shescape(v:val)')\n    endif\n\n    return []\nendfunction \" }}}2\n\n\" Decode XML entities\nfunction! syntastic#util#decodeXMLEntities(string) abort \" {{{2\n    let str = a:string\n    let str = substitute(str, '\\m&lt;', '<', 'g')\n    let str = substitute(str, '\\m&gt;', '>', 'g')\n    let str = substitute(str, '\\m&quot;', '\"', 'g')\n    let str = substitute(str, '\\m&apos;', \"'\", 'g')\n    let str = substitute(str, '\\m&amp;', '\\&', 'g')\n    return str\nendfunction \" }}}2\n\nfunction! syntastic#util#redraw(full) abort \" {{{2\n    if a:full\n        redraw!\n    else\n        redraw\n    endif\nendfunction \" }}}2\n\nfunction! syntastic#util#dictFilter(errors, filter) abort \" {{{2\n    let rules = s:_translateFilter(a:filter)\n    \" call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, \"applying filter:\", rules)\n    try\n        call filter(a:errors, rules)\n    catch /\\m^Vim\\%((\\a\\+)\\)\\=:E/\n        let msg = matchstr(v:exception, '\\m^Vim\\%((\\a\\+)\\)\\=:\\zs.*')\n        call syntastic#log#error('quiet_messages: ' . msg)\n    endtry\nendfunction \" }}}2\n\n\" Return a [seconds, fractions] list of strings, representing the\n\" (hopefully high resolution) time since program start\nfunction! syntastic#util#stamp() abort \" {{{2\n    return split( split(reltimestr(reltime(g:_SYNTASTIC_START)))[0], '\\.' )\nendfunction \" }}}2\n\nfunction! syntastic#util#setLastTick(buf) abort \" {{{2\n    call setbufvar(a:buf, 'syntastic_lasttick', getbufvar(a:buf, 'changedtick'))\nendfunction \" }}}2\n\n\" Add unique IDs to windows\nfunction! syntastic#util#setWids() abort \" {{{2\n    for tab in range(1, tabpagenr('$'))\n        for win in range(1, tabpagewinnr(tab, '$'))\n            if gettabwinvar(tab, win, 'syntastic_wid') ==# ''\n                call settabwinvar(tab, win, 'syntastic_wid', s:_wid_base . s:_wid_pool)\n                let s:_wid_pool += 1\n            endif\n        endfor\n    endfor\nendfunction \" }}}2\n\nfunction! syntastic#util#str2float(val) abort \" {{{2\n    return s:_str2float(a:val)\nendfunction \" }}}2\n\nfunction! syntastic#util#float2str(val) abort \" {{{2\n    return s:_float2str(a:val)\nendfunction \" }}}2\n\n\" Crude printf()-like width formatter.  Handles wide characters.\nfunction! syntastic#util#wformat(format, str) abort \" {{{2\n    if a:format ==# ''\n        return a:str\n    endif\n\n echomsg string(a:format) . ', ' . string(a:str)\n    let specs = matchlist(a:format, '\\v^(-?)(0?)(%([1-9]\\d*))?%(\\.(\\d+))?$')\n    if len(specs) < 5\n        return a:str\n    endif\n\n    let flushleft = specs[1] ==# '-'\n    let lpad = specs[2] ==# '0' ? '0' : ' '\n    let minlen = str2nr(specs[3])\n    let maxlen = str2nr(specs[4])\n    let out = substitute(a:str, \"\\t\", ' ', 'g')\n\n    if maxlen && s:_width(out) > maxlen\n        let chars = filter(split(out, '\\zs\\ze', 1), 'v:val !=# \"\"')\n        let out = ''\n\n        if flushleft\n            for c in chars\n                if s:_width(out . c) < maxlen\n                    let out .= c\n                else\n                    let out .= &encoding ==# 'utf-8' && &termencoding ==# 'utf-8' ? \"\\u2026\" : '>'\n                    break\n                endif\n            endfor\n        else\n            call reverse(chars)\n            for c in chars\n                if s:_width(c . out) < maxlen\n                    let out = c . out\n                else\n                    let out = (&encoding ==# 'utf-8' && &termencoding ==# 'utf-8' ? \"\\u2026\" : '<') . out\n                    break\n                endif\n            endfor\n        endif\n    endif\n\n    if minlen && s:_width(out) < minlen\n        if flushleft\n            let out .= repeat(' ', minlen - s:_width(out))\n        else\n            let out = repeat(lpad, minlen - s:_width(out)) . out\n        endif\n    endif\n\n    return out\nendfunction \" }}}2\n\n\" }}}1\n\n\" Private functions {{{1\n\nfunction! s:_translateFilter(filters) abort \" {{{2\n    let conditions = []\n    for k in keys(a:filters)\n        if type(a:filters[k]) == type([])\n            call extend(conditions, map(copy(a:filters[k]), 's:_translateElement(k, v:val)'))\n        else\n            call add(conditions, s:_translateElement(k, a:filters[k]))\n        endif\n    endfor\n\n    if conditions == []\n        let conditions = ['1']\n    endif\n    return len(conditions) == 1 ? conditions[0] : join(map(conditions, '\"(\" . v:val . \")\"'), ' && ')\nendfunction \" }}}2\n\nfunction! s:_translateElement(key, term) abort \" {{{2\n    let fkey = a:key\n    if fkey[0] ==# '!'\n        let fkey = fkey[1:]\n        let not = 1\n    else\n        let not = 0\n    endif\n\n    if fkey ==? 'level'\n        let op = not ? ' ==? ' : ' !=? '\n        let ret = 'v:val[\"type\"]' . op . string(a:term[0])\n    elseif fkey ==? 'type'\n        if a:term ==? 'style'\n            let op = not ? ' ==? ' : ' !=? '\n            let ret = 'get(v:val, \"subtype\", \"\")' . op . '\"style\"'\n        else\n            let op = not ? '!' : ''\n            let ret = op . 'has_key(v:val, \"subtype\")'\n        endif\n    elseif fkey ==? 'regex'\n        let op = not ? ' =~? ' : ' !~? '\n        let ret = 'v:val[\"text\"]' . op . string(a:term)\n    elseif fkey ==? 'file' || fkey[:4] ==? 'file:'\n        let op = not ? ' =~# ' : ' !~# '\n        let ret = 'bufname(str2nr(v:val[\"bufnr\"]))'\n        let mod = fkey[4:]\n        if mod !=# ''\n            let ret = 'fnamemodify(' . ret . ', ' . string(mod) . ')'\n        endif\n        let ret .= op . string(a:term)\n    else\n        call syntastic#log#warn('quiet_messages: ignoring invalid key ' . strtrans(string(fkey)))\n        let ret = '1'\n    endif\n    return ret\nendfunction \" }}}2\n\n\" strwidth() was added in Vim 7.3; if it doesn't exist, we use strlen()\n\" and hope for the best :)\nlet s:_width = function(exists('*strwidth') ? 'strwidth' : 'strlen')\nlockvar s:_width\n\n\" @vimlint(EVL103, 1, a:flags)\nfunction! s:_delete_dumb(what, flags) abort \" {{{2\n    if !exists('s:rmrf')\n        let s:rmrf =\n            \\ has('unix') || has('mac') ? 'rm -rf' :\n            \\ has('win32') || has('win64') ? 'rmdir /S /Q' :\n            \\ has('win16') || has('win95') || has('dos16') || has('dos32') ? 'deltree /Y' : ''\n    endif\n\n    if s:rmrf !=# ''\n        silent! call syntastic#util#system(s:rmrf . ' ' . syntastic#util#shescape(a:what))\n    else\n        call s:_rmrf(a:what)\n    endif\nendfunction \" }}}2\n\" @vimlint(EVL103, 0, a:flags)\n\n\" delete(dir, 'rf') was added in Vim 7.4.1107, but it didn't become usable until 7.4.1128\nlet s:_delete = function(v:version > 704 || (v:version == 704 && has('patch1128')) ? 'delete' : 's:_delete_dumb')\nlockvar s:_delete\n\nfunction! s:_rmrf(what) abort \" {{{2\n    if !exists('s:rmdir')\n        let s:rmdir = syntastic#util#shescape(get(g:, 'netrw_localrmdir', 'rmdir'))\n    endif\n\n    if getftype(a:what) ==# 'dir'\n        if filewritable(a:what) != 2\n            return\n        endif\n\n        try\n            \" Vim 7.4.279 and later\n            let entries = globpath(a:what, '*', 1, 1)\n        catch /\\m^Vim\\%((\\a\\+)\\)\\=:E118/\n            let entries = split(globpath(a:what, '*', 1), \"\\n\")\n        endtry\n        for f in entries\n            call s:_rmrf(f)\n        endfor\n        silent! call syntastic#util#system(s:rmdir . ' ' . syntastic#util#shescape(a:what))\n    else\n        silent! call delete(a:what)\n    endif\nendfunction \" }}}2\n\nlet s:_str2float = function(exists('*str2float') ? 'str2float' : 'str2nr')\nlockvar s:_str2float\n\nfunction! s:_float2str_smart(val) abort \" {{{2\n    return printf('%.1f', a:val)\nendfunction \" }}}2\n\nfunction! s:_float2str_dumb(val) abort \" {{{2\n    return a:val\nendfunction \" }}}2\n\nlet s:_float2str = function(has('float') ? 's:_float2str_smart' : 's:_float2str_dumb')\nlockvar s:_float2str\n\nfunction! s:_getbufvar_dumb(buf, name, ...) abort \" {{{2\n    let ret = getbufvar(a:buf, a:name)\n    if a:0 && type(ret) == type('') && ret ==# ''\n        unlet! ret\n        let ret = a:1\n    endif\n    return ret\nendfunction \"}}}2\n\nlet s:_getbufvar = function(v:version > 703 || (v:version == 703 && has('patch831')) ? 'getbufvar' : 's:_getbufvar_dumb')\nlockvar s:_getbufvar\n\nfunction! s:_fuzz_dumb() abort \" {{{2\n    return 'tmp'\nendfunction \" }}}2\n\nlet s:_fuzz = function(exists('*getpid') ? 'getpid' : 's:_fuzz_dumb')\nlockvar s:_fuzz\n\n\" }}}1\n\nlet s:_wid_base = 'syntastic_' . s:_fuzz() . '_' . reltimestr(g:_SYNTASTIC_START) . '_'\nlet s:_wid_pool = 0\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "doc/syntastic-checkers.txt",
    "content": "*syntastic-checkers.txt*\tSyntastic checkers\n*syntastic-checkers*\n\n==============================================================================\nSYNTAX CHECKERS BY LANGUAGE                          *syntastic-checkers-lang*\n\n|syntastic| comes with checkers for the following languages:\n\n    ACPI Source Language.....................|syntastic-checkers-asl|\n    ActionScript.............................|syntastic-checkers-actionscript|\n    Ada......................................|syntastic-checkers-ada|\n    Ansible..................................|syntastic-checkers-ansible|\n    API Blueprint............................|syntastic-checkers-apiblueprint|\n    AppleScript..............................|syntastic-checkers-applescript|\n    AsciiDoc.................................|syntastic-checkers-asciidoc|\n    Assembly Languages.......................|syntastic-checkers-asm|\n\n    BEMHTML..................................|syntastic-checkers-bemhtml|\n    Bro......................................|syntastic-checkers-bro|\n\n    C........................................|syntastic-checkers-c|\n    C#.......................................|syntastic-checkers-cs|\n    C++......................................|syntastic-checkers-cpp|\n    Cabal....................................|syntastic-checkers-cabal|\n    Chef.....................................|syntastic-checkers-chef|\n    CMake....................................|syntastic-checkers-cmake|\n    COBOL....................................|syntastic-checkers-cobol|\n    Coco.....................................|syntastic-checkers-co|\n    CoffeeScript.............................|syntastic-checkers-coffee|\n    Coq......................................|syntastic-checkers-coq|\n    CSS......................................|syntastic-checkers-css|\n    Cucumber.................................|syntastic-checkers-cucumber|\n    CUDA.....................................|syntastic-checkers-cuda|\n\n    D........................................|syntastic-checkers-d|\n    Dart.....................................|syntastic-checkers-dart|\n    DocBook..................................|syntastic-checkers-docbk|\n    Dockerfile...............................|syntastic-checkers-dockerfile|\n    Dust.....................................|syntastic-checkers-dustjs|\n\n    Elixir...................................|syntastic-checkers-elixir|\n    Erlang...................................|syntastic-checkers-erlang|\n    eRuby....................................|syntastic-checkers-eruby|\n\n    Fortran..................................|syntastic-checkers-fortran|\n\n    Gentoo Metadata..........................|syntastic-checkers-gentoo|\n    Gettext PO...............................|syntastic-checkers-po|\n    GLSL.....................................|syntastic-checkers-glsl|\n    Go.......................................|syntastic-checkers-go|\n\n    Haml.....................................|syntastic-checkers-haml|\n    Handlebars...............................|syntastic-checkers-handlebars|\n    Haskell..................................|syntastic-checkers-haskell|\n    Haxe.....................................|syntastic-checkers-haxe|\n    HSS......................................|syntastic-checkers-hss|\n    HTML.....................................|syntastic-checkers-html|\n\n    Java.....................................|syntastic-checkers-java|\n    JavaScript...............................|syntastic-checkers-javascript|\n    JSON.....................................|syntastic-checkers-json|\n\n    LESS.....................................|syntastic-checkers-less|\n    Lex......................................|syntastic-checkers-lex|\n    Limbo....................................|syntastic-checkers-limbo|\n    LISP.....................................|syntastic-checkers-lisp|\n    LLVM.....................................|syntastic-checkers-llvm|\n    Lua......................................|syntastic-checkers-lua|\n\n    Markdown.................................|syntastic-checkers-markdown|\n    MATLAB...................................|syntastic-checkers-matlab|\n    Mercury..................................|syntastic-checkers-mercury|\n\n    NASM.....................................|syntastic-checkers-nasm|\n    Nix......................................|syntastic-checkers-nix|\n    nroff....................................|syntastic-checkers-nroff|\n\n    Objective-C..............................|syntastic-checkers-objc|\n    Objective-C++............................|syntastic-checkers-objcpp|\n    OCaml....................................|syntastic-checkers-ocaml|\n\n    Perl.....................................|syntastic-checkers-perl|\n    PHP......................................|syntastic-checkers-php|\n    POD......................................|syntastic-checkers-pod|\n    Pug (formerly Jade)......................|syntastic-checkers-pug|\n    Puppet...................................|syntastic-checkers-puppet|\n    Python...................................|syntastic-checkers-python|\n\n    QML......................................|syntastic-checkers-qml|\n\n    R........................................|syntastic-checkers-r|\n    R Markdown...............................|syntastic-checkers-rmd|\n    Racket...................................|syntastic-checkers-racket|\n    Raku.....................................|syntastic-checkers-raku|\n    Relax NG.................................|syntastic-checkers-rnc|\n    reStructuredText.........................|syntastic-checkers-rst|\n    RPM spec.................................|syntastic-checkers-spec|\n    Ruby.....................................|syntastic-checkers-ruby|\n\n    SASS.....................................|syntastic-checkers-sass|\n    Scala....................................|syntastic-checkers-scala|\n    SCSS.....................................|syntastic-checkers-scss|\n    Sh.......................................|syntastic-checkers-sh|\n    Slim.....................................|syntastic-checkers-slim|\n    SML......................................|syntastic-checkers-sml|\n    Solidity.................................|syntastic-checkers-solidity|\n    SQL......................................|syntastic-checkers-sql|\n    Stylus...................................|syntastic-checkers-stylus|\n    SVG......................................|syntastic-checkers-svg|\n\n    Tcl......................................|syntastic-checkers-tcl|\n    TeX......................................|syntastic-checkers-tex|\n    Texinfo..................................|syntastic-checkers-texinfo|\n    Text.....................................|syntastic-checkers-text|\n    Turtle...................................|syntastic-checkers-turtle|\n    TriG.....................................|syntastic-checkers-trig|\n    Twig.....................................|syntastic-checkers-twig|\n    TypeScript...............................|syntastic-checkers-typescript|\n\n    Verilog..................................|syntastic-checkers-verilog|\n    VHDL.....................................|syntastic-checkers-vhdl|\n    Vim help.................................|syntastic-checkers-help|\n    VimL.....................................|syntastic-checkers-vim|\n    Vue.js...................................|syntastic-checkers-vue|\n\n    xHTML....................................|syntastic-checkers-xhtml|\n    XML......................................|syntastic-checkers-xml|\n    XQuery...................................|syntastic-checkers-xquery|\n    XSLT.....................................|syntastic-checkers-xslt|\n\n    YACC.....................................|syntastic-checkers-yacc|\n    YAML.....................................|syntastic-checkers-yaml|\n    YANG.....................................|syntastic-checkers-yang|\n    YARA.....................................|syntastic-checkers-yara|\n\n    Z80......................................|syntastic-checkers-z80|\n    Zope Page Templates......................|syntastic-checkers-zpt|\n    Zsh......................................|syntastic-checkers-zsh|\n\nThird-party checkers are available for additional languages.\n\n==============================================================================\nSYNTAX CHECKERS FOR ACPI SOURCE LANGUAGE              *syntastic-checkers-asl*\n\nThe following checkers are available for the ACPI Source Language (filetype\n\"asl\"):\n\n    1. iasl.....................|syntastic-asl-iasl|\n\n------------------------------------------------------------------------------\n1. iasl                                                   *syntastic-asl-iasl*\n\nName:        iasl\nMaintainer:  Peter Wu <peter@lekensteyn.nl>\n\n\"iasl\" is a compiler/decompiler for ACPI Source Language (ASL) and ACPI\nMachine Language (AML). See the project's page for details:\n\n    https://acpica.org/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nYou probably also need a plugin to set |filetype| for ASL files, such as\n\"vim-acpi-asl\":\n\n    https://github.com/martinlroth/vim-acpi-asl\n\n==============================================================================\nSYNTAX CHECKERS FOR ACTIONSCRIPT             *syntastic-checkers-actionscript*\n\nThe following checkers are available for ActionScript (filetype\n\"actionscript\"):\n\n    1. mxmlc....................|syntastic-actionscript-mxmlc|\n\n------------------------------------------------------------------------------\n1. mxmlc                                        *syntastic-actionscript-mxmlc*\n\nName:        mxmlc\nMaintainer:  Andy Earnshaw <andyearnshaw@gmail.com>\n\n\"mxmlc\" is a compiler for ActionScript. See Apache Flex for details:\n\n    http://flex.apache.org/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR ADA                               *syntastic-checkers-ada*\n\nThe following checkers are available for Ada (filetype \"ada\"):\n\n    1. GCC......................|syntastic-ada-gcc|\n\n------------------------------------------------------------------------------\n1. GCC                                                     *syntastic-ada-gcc*\n\nName:        gcc\nMaintainer:  Alfredo Di Napoli <alfredo.dinapoli@gmail.com>\n\nChecker options~\n                                                  *'g:syntastic_ada_compiler'*\nType: string\nDefault: \"gcc\"\nCompiler executable.\n\n                                               *'g:syntastic_ada_errorformat'*\nType: string\nDefault: unset\nOverride for the default |'errorformat'|.\n\n                                     *'g:syntastic_ada_remove_include_errors'*\nType: boolean\nDefault: 0\nBy default, errors in files included from the file being checked are shown.\nSet this variable to 1 to remove messages about errors in included files.\nPlease note that this means syntastic will silently abort checks if there are\nfatal errors in one of the included files.\n\n                                          *'g:syntastic_ada_compiler_options'*\nType: string\nDefault: unset\nCompilation flags (such as defines or include directories) to be passed to the\nlinter.\n\n                                               *'g:syntastic_ada_config_file'*\nType: string\nDefault: unset\nFile containing additional compilation flags to be passed to the linter, one\noption per line (cf. |syntastic-config-files|).\n\n                                              *'g:syntastic_ada_include_dirs'*\nType: array of strings\nDefault: []\nInclude directories to be passed to the linter, in addition to the above\ncompilation flags. You can set it like this: >\n    let g:syntastic_ada_include_dirs = [\"includes\", \"headers\"]\n<\nand the corresponding \"-Iincludes -Iheaders\" will be added to the compilation\nflags.\n\n                                                    *'b:syntastic_ada_cflags'*\nType: string\nDefault: unset\nBuffer-local variable. Additional compilation flags specific to the current\nbuffer.\n\n                                              *'g:syntastic_ada_check_header'*\nType: boolean\nDefault: 0\nIf the current file is a header (namely if its extension is \"ads\"), all checks\nare silently skipped. You can force syntastic to check header files by\nsetting the above variable to 1.\n\nNote~\n\nThis checker doesn't call the \"makeprgBuild()\" function, and thus it ignores\nthe usual 'g:syntastic_ada_gcc_<option>' variables. The only exception is\n'g:syntastic_ada_gcc_exec', which can still be used to override the linter's\nexecutable.\n\n==============================================================================\nSYNTAX CHECKERS FOR ANSIBLE                       *syntastic-checkers-ansible*\n\nThe following checkers are available for Ansible (filetype \"ansible\"):\n\n    1. Ansible-lint.............|syntastic-ansible-ansible_lint|\n\n------------------------------------------------------------------------------\n1. Ansible-lint                               *syntastic-ansible-ansible_lint*\n\nName:        ansible_lint\nMaintainer:  Erik Zaadi <erik.zaadi@gmail.com>\n\n\"Ansible-lint\" is a style linter for Ansible playbooks. See the project's\npage at GitHub for details:\n\n    https://github.com/willthames/ansible-lint\n\nSyntastic requires \"Ansible-lint\" version 2.0.4 or later.\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nYou probably also need a plugin to set |filetype| for Ansible playbooks, such\nas \"ansible-vim\":\n\n    https://github.com/pearofducks/ansible-vim\n\n==============================================================================\nSYNTAX CHECKERS FOR API BLUEPRINT            *syntastic-checkers-apiblueprint*\n\nThe following checkers are available for API Blueprint (filetype \"apiblueprint\"):\n\n    1. Drafter..................|syntastic-apiblueprint-drafter|\n\n------------------------------------------------------------------------------\n1. Drafter                                    *syntastic-apiblueprint-drafter*\n\nName:        drafter\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"Drafter\" is a parser for Apiary's \"API Blueprint\" (http://apiblueprint.org/).\nSee the project's page at GitHub for details:\n\n    https://github.com/apiaryio/drafter\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nYou probably also need a plugin to set |filetype| for API Blueprint files, such\nas \"apiblueprint.vim\":\n\n    https://github.com/kylef/apiblueprint.vim\n\n==============================================================================\nSYNTAX CHECKERS FOR APPLESCRIPT               *syntastic-checkers-applescript*\n\nThe following checkers are available for AppleScript (filetype \"applescript\"):\n\n    1. osacompile...............|syntastic-applescript-osacompile|\n\n------------------------------------------------------------------------------\n1. osacompile                               *syntastic-applescript-osacompile*\n\nName:        osacompile\nAuthor: Zhao Cai <caizhaoff@gmail.com>\n\n\"osacompile\" is a compiler for \"AppleScript\". See the program's manual for\ndetails:\n\n    https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/osacompile.1.html\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR ASCIIDOC                     *syntastic-checkers-asciidoc*\n\nThe following checkers are available for AsciiDoc (filetype \"asciidoc\"):\n\n    1. Asciidoc.................|syntastic-asciidoc-asciidoc|\n    2. proselint................|syntastic-asciidoc-proselint|\n\n------------------------------------------------------------------------------\n1. Asciidoc                                      *syntastic-asciidoc-asciidoc*\n\nName:        asciidoc\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"Asciidoc\" is a translator for AsciiDoc documents (http://asciidoc.org/).\n\nNote~\n\nIf you would prefer to use Asciidoctor (http://asciidoctor.org/)\nas a linter instead of \"Asciidoc\", you can do that by pointing\n'g:syntastic_asciidoc_asciidoc_exec' to it: >\n    let g:syntastic_asciidoc_asciidoc_exec = \"asciidoctor\"\n<\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n2. proselint                                    *syntastic-asciidoc-proselint*\n\nName:        proselint\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"proselint\" is a linter for prose. See the page for details:\n\n    http://proselint.com/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nSee also: |syntastic-help-proselint|, |syntastic-html-proselint|,\n|syntastic-markdown-proselint|, |syntastic-nroff-proselint|,\n|syntastic-pod-proselint|, |syntastic-rst-proselint|,\n|syntastic-tex-proselint|, |syntastic-texinfo-proselint|,\n|syntastic-text-proselint|, |syntastic-xhtml-proselint|.\n\n==============================================================================\nSYNTAX CHECKERS FOR ASSEMBLY LANGUAGES                *syntastic-checkers-asm*\n\nThe following checkers are available for assembly languages (filetype \"asm\"):\n\n    1. GCC......................|syntastic-asm-gcc|\n\n------------------------------------------------------------------------------\n1. GCC                                                     *syntastic-asm-gcc*\n\nName:        gcc\nMaintainer:  Joshua Rahm <joshuarahm@gmail.com>\n\nThis plugin supports both the AT&T and Intel dialects.\n\nChecker Options~\n                                                  *'g:syntastic_asm_compiler'*\nType: string\nDefault: \"gcc\"\nCompiler executable. Set it to something like \"mipsel-linux-gcc\": >\n    let g:syntastic_asm_compiler = \"mipsel-linux-gcc\"\n<\n                                               *'g:syntastic_asm_errorformat'*\nType: string\nDefault: unset\nOverride for the default |'errorformat'|.\n\n                                                   *'g:syntastic_asm_dialect'*\nType: string\nDefault: unset\nNormally the assembler will select the dialect to use for checking based on\nthe file extension (AT&T for \".s\", Intel for \".asm\"). If you want to override\nthe automatic choice set this variable to either \"att\" or \"intel\".\n\n                                     *'g:syntastic_asm_remove_include_errors'*\nType: boolean\nDefault: 0\nBy default, errors in files included from the file being checked are shown.\nSet this variable to 1 to remove messages about errors in included files.\nPlease note that this means syntastic will silently abort checks if there are\nfatal errors in one of the included files.\n\n                                          *'g:syntastic_asm_compiler_options'*\nType: string\nDefault: unset\nCompilation flags (such as defines or include directories) to be passed to the\nassembler. Set it to something like \"-mtune=native\": >\n    let g:syntastic_asm_compiler_options = \"-mtune=native\"\n<\n                                               *'g:syntastic_asm_config_file'*\nType: string\nDefault: unset\nFile containing additional compilation flags to be passed to the assembler,\none option per line (see |syntastic-config-files|).\n\n                                              *'g:syntastic_asm_include_dirs'*\nType: array of strings\nDefault: []\nInclude directories to be passed to the assembler, in addition to the\nabove compilation flags. You can set it like this: >\n    let g:syntastic_asm_include_dirs = [\"inc\", \"asm/src/include\"]\n<\nand the corresponding \"-Iinc -Iasm/src/include\" will be added to the\ncompilation flags.\n\n                                                    *'b:syntastic_asm_cflags'*\nType: string\nDefault: unset\nBuffer-local variable. Additional compilation flags specific to the current\nbuffer.\n\nNote~\n\nThis checker doesn't call the \"makeprgBuild()\" function, and thus it ignores\nthe usual 'g:syntastic_asm_gcc_<option>' variables. The only exception is\n'g:syntastic_asm_gcc_exec', which can still be used to override the linter's\nexecutable.\n\n==============================================================================\nSYNTAX CHECKERS FOR BEMHTML                       *syntastic-checkers-bemhtml*\n\nThe following checkers are available for BEMHTML (filetype \"bemhtml\"):\n\n    1. bemhtml-lint.............|syntastic-bemhtml-bemhtmllint|\n\n------------------------------------------------------------------------------\n1. bemhtml-lint                                *syntastic-bemhtml-bemhtmllint*\n\nName:        bemhtmllint\nMaintainer:  Sergej Tatarincev\n\nBEMHTML is a template engine intended for using with the BEM methodology\n(http://bem.info/method/). See the project's page at GitHub for details:\n\n    https://github.com/SevInf/bemhtml-lint\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR BRO                               *syntastic-checkers-bro*\n\nThe following checkers are available for Bro (filetype \"bro\"):\n\n    1. Bro......................|syntastic-bro-bro|\n\n------------------------------------------------------------------------------\n1. Bro                                                     *syntastic-bro-bro*\n\nName:        bro\nMaintainer:  Justin Azoff <justin.azoff@gmail.com>\n\n\"Bro\" is a network security monitor. See the project's page for details:\n\n    https://www.bro.org/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR C                                   *syntastic-checkers-c*\n\nThe following checkers are available for C (filetype \"c\"):\n\n    1. AVR-GCC..................|syntastic-c-avrgcc|\n    2. Checkpatch...............|syntastic-c-checkpatch|\n    3. ClangCheck...............|syntastic-c-clang_check|\n    4. Clang-Tidy...............|syntastic-c-clang_tidy|\n    5. Cppcheck.................|syntastic-c-cppcheck|\n    6. cppclean.................|syntastic-c-cppclean|\n    7. Flawfinder...............|syntastic-c-flawfinder|\n    8. GCC......................|syntastic-c-gcc|\n    9. make.....................|syntastic-c-make|\n    10. OClint..................|syntastic-c-oclint|\n    11. PC-Lint.................|syntastic-c-pc_lint|\n    12. Sparse..................|syntastic-c-sparse|\n    13. Splint..................|syntastic-c-splint|\n\n------------------------------------------------------------------------------\n1. AVR-GCC                                                *syntastic-c-avrgcc*\n\nName:        avrgcc\nMaintainer:  Karel <karelishere@gmail.com>\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                                            *'g:syntastic_avrgcc_config_file'*\nType: string\nDefault: unset\nFile containing compilation flags (such as defines or include directories),\none option per line (cf. |syntastic-config-files|).\n\n------------------------------------------------------------------------------\n2. Checkpatch                                         *syntastic-c-checkpatch*\n\nName:        checkpatch\nMaintainer:  Daniel Walker <dwalker@fifo99.com>\n\n\"Checkpatch\" is a style linter for the Linux kernel sources. It's\ndistributed along with the Linux kernel sources:\n\n    https://github.com/torvalds/linux/blob/master/scripts/checkpatch.pl\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n3. ClangCheck                                        *syntastic-c-clang_check*\n\nName:        clang_check\nMaintainer:  Benjamin Bannier <bbannier@gmail.com>\n\n\"ClangCheck\" is a wrapper around Clang's \"LibTooling\"\n(http://clang.llvm.org/docs/LibTooling.html). See the official page for\ndetails:\n\n    http://clang.llvm.org/docs/ClangCheck.html\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                                       *'g:syntastic_clang_check_config_file'*\nType: string\nDefault: unset\nFile containing compilation flags (such as defines or include directories),\none option per line (cf. |syntastic-config-files|).\n\nNote~\n\nBy default you can set \"ClangCheck\" parameters in\n'g:syntastic_c_clang_check_args', and compilation parameters\n(defines, optimisation flags, etc.) in the configuration file.\n\nHowever, if you want \"ClangCheck\" to use compilation databases\n(http://clang.llvm.org/docs/JSONCompilationDatabase.html) -- perhaps\ngenerated by \"CMake\" (https://github.com/rizsotto/Bear) or \"Build EAR\"\n(https://github.com/rizsotto/Bear) -- rather than pass compilation flags\nexplicitly, set 'g:syntastic_c_clang_check_post_args' to an empty string: >\n    let g:syntastic_c_clang_check_post_args = \"\"\n<\nConfiguration files pointed to by 'g:syntastic_clang_check_config_file' are\nthen ignored.\n\nSee also: |syntastic-cpp-clang_check|.\n\n------------------------------------------------------------------------------\n4. Clang-Tidy                                         *syntastic-c-clang_tidy*\n\nName:        clang_tidy\nMaintainer:  Benjamin Bannier <bbannier@gmail.com>\n\n\"Clang-Tidy\" is a lint tool based on \"Clang\" (http://clang.llvm.org/). See\nthe project's page for details:\n\n    http://clang.llvm.org/extra/clang-tidy.html\n\nInstallation~\n\n\"Clang-Tidy\" is part of the \"Clang\" (http://clang.llvm.org/) project, but it\nisn't built by default. You need to enable compilation of the \"Extra Clang\nTools\" (http://clang.llvm.org/docs/ClangTools.html#extra-clang-tools) to get\nit. See the build tutorial for details:\n\n    http://clang.llvm.org/docs/LibASTMatchersTutorial.html\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                                        *'g:syntastic_clang_tidy_config_file'*\nType: string\nDefault: unset\nFile containing compilation flags (such as defines or include directories),\none option per line (cf. |syntastic-config-files|).\n\nNote~\n\nBy default you can set \"ClangTidy\" parameters in\n'g:syntastic_c_clang_tidy_args', and compilation parameters\n(defines, optimisation flags, etc.) in the configuration file.\n\nIf you want \"ClangTidy\" to use compilation databases\n(http://clang.llvm.org/docs/JSONCompilationDatabase.html) --\nperhaps generated by \"CMake\" (http://cmake.org/) or \"Build EAR\"\n(https://github.com/rizsotto/Bear) -- rather than pass compilation flags\nexplicitly, set 'g:syntastic_c_clang_tidy_post_args' to an empty string: >\n    let g:syntastic_c_clang_tidy_post_args = \"\"\n<\nConfiguration files pointed to by 'g:syntastic_clang_tidy_config_file' are\nthen ignored.\n\nSee also: |syntastic-cpp-clang_tidy|.\n\n------------------------------------------------------------------------------\n5. Cppcheck                                             *syntastic-c-cppcheck*\n\nName:        cppcheck\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"Cppcheck\" is a static analysis tool for C/C++ code. See the project's page\nfor details:\n\n    http://cppcheck.sourceforge.net/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                                          *'g:syntastic_cppcheck_config_file'*\nType: string\nDefault: unset\nFile containing compilation flags (such as defines or include directories),\none option per line (cf. |syntastic-config-files|).\n\nSee also: |syntastic-cpp-cppcheck|.\n\n------------------------------------------------------------------------------\n6. cppclean                                             *syntastic-c-cppclean*\n\nName:        cppclean\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"cppclean\" attempts to find problems in C++ source that slow development in\nlarge code bases, for example various forms of unused code. See the project's\npage at GitHub for more information:\n\n    https://github.com/myint/cppclean\n\nInstallation~\n\nInstall it with \"pip\": >\n    pip install cppclean\n<\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nSee also: |syntastic-cpp-cppclean|.\n\n------------------------------------------------------------------------------\n7. Flawfinder                                         *syntastic-c-flawfinder*\n\nName:        flawfinder\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"Flawfinder\" scans C/C++ source code for possible security weaknesses. See the\nproject's page for more information:\n\n    https://www.dwheeler.com/flawfinder\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                                            *'g:syntastic_c_flawfinder_thres'*\nType: integer\nDefault: 3\nError threshold. Policy violations with a severity above this value are\nhighlighted as errors, the others are considered warnings by syntastic.\n\nSee also: |syntastic-cpp-flawfinder|.\n\n------------------------------------------------------------------------------\n8. GCC                                                       *syntastic-c-gcc*\n\nName:        gcc\nMaintainer:  Gregor Uhlenheuer <kongo2002@gmail.com>\n\nChecker options~\n                                                    *'g:syntastic_c_compiler'*\nType: string\nDefault: \"gcc\", or \"clang\" if GCC is not found\nCompiler executable.\n\n                                                 *'g:syntastic_c_errorformat'*\nType: string\nDefault: unset\nOverride for the default |'errorformat'|.\n\n                                       *'g:syntastic_c_remove_include_errors'*\nType: boolean\nDefault: 0\nBy default, errors in files included from the file being checked are shown.\nSet this variable to 1 to remove messages about errors in included files.\nPlease note that this means syntastic will silently abort checks if there are\nfatal errors in one of the included files.\n\n                                            *'g:syntastic_c_compiler_options'*\nType: string\nDefault: \"-std=gnu99\"\nCompilation flags (such as defines or include directories) to be passed to the\nlinter.\n\n                                                 *'g:syntastic_c_config_file'*\nType: string\nDefault: unset\nFile containing additional compilation flags to be passed to the linter, one\noption per line (cf. |syntastic-config-files|).\n\n                                                *'g:syntastic_c_include_dirs'*\nType: array of strings\nDefault: []\nInclude directories to be passed to the linter, in addition to the above\ncompilation flags. You can set it to something like this: >\n    let g:syntastic_c_include_dirs = [\"includes\", \"headers\"]\n<\nand the corresponding \"-Iincludes -Iheaders\" will be added to the compilation\nflags.\n\n                                     *'g:syntastic_c_no_default_include_dirs'*\nType: boolean\nDefault: 0\nBy default syntastic adds a number of common include directories to the\ncompilation flags, namely: >\n    -I. -I.. -Iinclude -Iincludes -I../include -I../includes\n<\nYou can disable this behaviour by setting the above variable to 1.\n\n                                           *'g:syntastic_c_no_include_search'*\nType: boolean\nDefault: 0\nBy default syntastic looks at the first 100 lines of the file being checked,\nand tries to determine if it needs to include headers for some common\nlibraries, such as \"GLib\" or \"Gtk\". It then tries to add the corresponding\ninclude directories to the compilation flags. You can disable this behaviour\nby setting the above variable to 1.\n\n                                       *'g:syntastic_c_auto_refresh_includes'*\nType: boolean\nDefault: 0\nUsed only if \"g:syntastic_c_no_include_search\" is set to a false value. By\ndefault syntastic searches for common libraries only the first time the\ncurrent file is checked. Setting the above variable to 1 instructs syntastic\nto refresh the list of common libraries every time the current file is\nchecked. You can also force a refresh even when the above variable is 0, by\n`:unlet`-ing the buffer variable 'b:syntastic_c_includes'.\n\n                                                      *'b:syntastic_c_cflags'*\nType: string\nDefault: unset\nBuffer-local variable. When set, no search for common libraries is performed,\nand the contents of the variable are added to the compilation flags.\n\n                                                *'g:syntastic_c_check_header'*\nType: boolean\nDefault: 0\nIf the current file is a header (namely if its extension is \"h\"), all checks\nare silently skipped. You can force syntastic to check header files by\nsetting the above variable to 1.\n\nNote~\n\nThis checker doesn't call the \"makeprgBuild()\" function, and thus it ignores\nthe usual 'g:syntastic_c_gcc_<option>' variables. The only exception is\n'g:syntastic_c_gcc_exec', which can still be used to override the linter's\nexecutable.\n\nSee also: |syntastic-cpp-gcc|.\n\n------------------------------------------------------------------------------\n9. make                                                     *syntastic-c-make*\n\nName:        make\nMaintainer:  Gregor Uhlenheuer <kongo2002@gmail.com>\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n10. OClint                                                *syntastic-c-oclint*\n\nName:        oclint\nMaintainer:  \"UnCO\" Lin <undercooled@lavabit.com>\n\n\"OClint\" is a static code analysis tool. See the project's page for details:\n\n    http://oclint.org/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                                            'g:syntastic_oclint_config_file'\nType: string\nDefault: unset\nFile containing compilation flags (such as defines or include directories),\none option per line (cf. |syntastic-config-files|).\n\nNotes~\n\nBy default you can set \"OClint\" parameters in 'g:syntastic_c_oclint_args', and\ncompilation parameters (defines, optimisation flags, etc.) in the config file.\n\nIf you want \"OClint\" to use \"Clang\"-style compilation databases\n(http://clang.llvm.org/docs/JSONCompilationDatabase.html) --\nperhaps generated by \"CMake\" (http://cmake.org/) or \"Build EAR\"\n(https://github.com/rizsotto/Bear) -- rather than pass compilation flags\nexplicitly, set 'g:syntastic_c_oclint_post_args' to an empty string: >\n    let g:syntastic_c_oclint_post_args = \"\"\n<\nConfig files pointed to by 'g:syntastic_oclint_config_file' are then ignored.\n\nSee also: |syntastic-cpp-oclint|.\n\n------------------------------------------------------------------------------\n11. PC-Lint                                              *syntastic-c-pc_lint*\n\nName:        pc_lint\nMaintainer:  Steve Bragg <steve@empresseffects.com>\n\n\"PC-Lint\" is a commercial static code analysis tool for Windows, produced\nby \"Gimpel Software\" (http://www.gimpel.com/). See the project's page for\ndetails:\n\n    http://www.gimpel.com/html/pcl.htm\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                                           *'g:syntastic_pc_lint_config_file'*\nType: string\nDefault: unset\nName of an indirect (.lnt) file. A file with that name is looked up in the\ncurrent directory and in parent directories; first such file found is used.\n\nSee also: |syntastic-cpp-pc_lint|.\n\n------------------------------------------------------------------------------\n12. Sparse                                                *syntastic-c-sparse*\n\nName:        sparse\nMaintainer:  Daniel Walker <dwalker@fifo99.com>\n\n\"Sparse\" is a semantic parser for C, see the official wiki for details:\n\n    https://sparse.wiki.kernel.org/index.php/Main_Page\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                                            *'g:syntastic_sparse_config_file'*\nType: string\nDefault: unset\nFile containing compilation flags (such as defines or include directories),\none option per line (cf. |syntastic-config-files|).\n\nNotes~\n\nIf you use \"Sparse\" with \"GCC\" you probably want to add something like this to\nyour vimrc: >\n    let g:syntastic_c_sparse_post_args=\"-gcc-base-dir \" .\n        \\ system(\"gcc -v 2>&1 | sed -n '/^Reading specs/ { s#.* /#/#; s#/[^/]*$##; p; }'\")\n<\nThis allows \"Sparse\" to read \"GCC\"'s private include files.\n\n------------------------------------------------------------------------------\n13. Splint                                                *syntastic-c-splint*\n\nName:        splint\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"Splint\" is a tool for statically checking C programs for security\nvulnerabilities, see the project's page for details:\n\n    http://www.splint.org/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                                            *'g:syntastic_splint_config_file'*\nType: string\nDefault: unset\nFile containing project-specific options to be passed to \"Splint\"\n(such as defines or include directories), one option per line (cf.\n|syntastic-config-files|).\n\n==============================================================================\nSYNTAX CHECKERS FOR C#                                 *syntastic-checkers-cs*\n\nThe following checkers are available for C# (filetype \"cs\"):\n\n    1. mcs......................|syntastic-cs-mcs|\n\n------------------------------------------------------------------------------\n1. mcs                                                      *syntastic-cs-mcs*\n\nName:        mcs\nMaintainer:  Daniel Walker <dwalker@fifo99.com>\n\n\"mcs\" is a compiler for C# from the \"Mono\" project\n(http://www.mono-project.com/Main_Page). See the program's manual for details:\n\n    http://mono.wikia.com/wiki/Man_mcs\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR C++                               *syntastic-checkers-cpp*\n\nThe following checkers are available for C++ (filetype \"cpp\"):\n\n    1. AVR-GCC..................|syntastic-cpp-avrgcc|\n    2. ClangCheck...............|syntastic-cpp-clang_check|\n    3. Clang-Tidy...............|syntastic-cpp-clang_tidy|\n    4. Cppcheck.................|syntastic-cpp-cppcheck|\n    5. cppclean.................|syntastic-cpp-cppclean|\n    6. Cpplint..................|syntastic-cpp-cpplint|\n    7. Flawfinder...............|syntastic-cpp-flawfinder|\n    8. GCC......................|syntastic-cpp-gcc|\n    9. OClint...................|syntastic-cpp-oclint|\n    10. PC-Lint.................|syntastic-cpp-pc_lint|\n    11. Vera++..................|syntastic-cpp-verapp|\n\n------------------------------------------------------------------------------\n1. AVR-GCC                                              *syntastic-cpp-avrgcc*\n\nName:        avrgcc\nMaintainer:  Sławek Piotrowski <sentinel@atteo.com>\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                                            'g:syntastic_avrgcc_config_file'\nType: string\nDefault: unset\nFile containing compilation flags (such as defines or include directories),\none option per line (cf. |syntastic-config-files|).\n\nSee also: |syntastic-c-avrgcc|.\n\n------------------------------------------------------------------------------\n2. ClangCheck                                      *syntastic-cpp-clang_check*\n\nName:        clang_check\nMaintainer:  Benjamin Bannier <bbannier@gmail.com>\n\n\"ClangCheck\" is a wrapper around Clang's \"LibTooling\"\n(http://clang.llvm.org/docs/LibTooling.html). See the official page for\ndetails:\n\n    http://clang.llvm.org/docs/ClangCheck.html\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                                       'g:syntastic_clang_check_config_file'\nType: string\nDefault: unset\nfile containing compilation flags (such as defines or include directories),\none option per line (cf. |syntastic-config-files|).\n\nNote~\n\nBy default you can set \"ClangCheck\" parameters in\n'g:syntastic_cpp_clang_check_args', and compilation parameters (defines,\noptimisation flags, etc.) in the configuration file.\n\nHowever, if you want \"ClangCheck\" to use compilation databases\n(http://clang.llvm.org/docs/JSONCompilationDatabase.html) -- perhaps\ngenerated by \"CMake\" (https://github.com/rizsotto/Bear) or \"Build EAR\"\n(https://github.com/rizsotto/Bear) -- rather than pass compilation flags\nexplicitly, set 'g:syntastic_cpp_clang_check_post_args' to an empty string: >\n    let g:syntastic_cpp_clang_check_post_args = \"\"\n<\nConfiguration files pointed to by 'g:syntastic_clang_check_config_file' are\nthen ignored.\n\nSee also: |syntastic-c-clang_check|.\n\n------------------------------------------------------------------------------\n3. Clang-Tidy                                       *syntastic-cpp-clang_tidy*\n\nName:        clang_tidy\nMaintainer:  Benjamin Bannier <bbannier@gmail.com>\n\n\"Clang-Tidy\" is a lint tool based on \"Clang\" (http://clang.llvm.org/). See\nthe project's page for details:\n\n    http://clang.llvm.org/extra/clang-tidy.html\n\nInstallation~\n\n\"Clang-Tidy\" is part of the \"Clang\" (http://clang.llvm.org/) project, but it\nisn't built by default. You need to enable compilation of the \"Extra Clang\nTools\" (http://clang.llvm.org/docs/ClangTools.html#extra-clang-tools) to get\nit. See the build tutorial for details:\n\n    http://clang.llvm.org/docs/LibASTMatchersTutorial.html\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                                        'g:syntastic_clang_tidy_config_file'\nType: string\nDefault: unset\nFile containing compilation flags (such as defines or include directories),\none option per line (cf. |syntastic-config-files|).\n\nNote~\n\nBy default you can set \"ClangTidy\" parameters in\n'g:syntastic_cpp_clang_tidy_args', and compilation parameters (defines,\noptimisation flags, etc.) in the configuration file.\n\nIf you want \"ClangTidy\" to use compilation databases\n(http://clang.llvm.org/docs/JSONCompilationDatabase.html) --\nperhaps generated by \"CMake\" (http://cmake.org/) or \"Build EAR\"\n(https://github.com/rizsotto/Bear) -- rather than pass compilation flags\nexplicitly, set 'g:syntastic_cpp_clang_tidy_post_args' to an empty string: >\n    let g:syntastic_cpp_clang_tidy_post_args = \"\"\n<\nConfiguration files pointed to by 'g:syntastic_clang_tidy_config_file' are\nthen ignored.\n\nSee also: |syntastic-c-clang_tidy|.\n\n------------------------------------------------------------------------------\n4. Cppcheck                                           *syntastic-cpp-cppcheck*\n\nName:        cppcheck\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"Cppcheck\" is a static analysis tool for C/C++ code. See the project's page\nfor details:\n\n    http://cppcheck.sourceforge.net/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                                          'g:syntastic_cppcheck_config_file'\nType: string\nDefault: unset\nFile containing compilation flags (such as defines or include directories),\none option per line (cf. |syntastic-config-files|).\n\nSee also: |syntastic-c-cppcheck|.\n\n------------------------------------------------------------------------------\n5. cppclean                                           *syntastic-cpp-cppclean*\n\nName:        cppclean\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"cppclean\" attempts to find problems in C++ source that slow development in\nlarge code bases, for example various forms of unused code. See the project's\npage at GitHub for more information:\n\n    https://github.com/myint/cppclean\n\nInstallation~\n\nInstall it with \"pip\": >\n    pip install cppclean\n<\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nSee also: |syntastic-c-cppclean|.\n\n------------------------------------------------------------------------------\n6. Cpplint                                             *syntastic-cpp-cpplint*\n\nName:        cpplint\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\nFor details about \"Cpplint\" see the project's page:\n\n    https://github.com/google/styleguide/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                                             *'g:syntastic_cpp_cpplint_thres'*\nType: integer\nDefault: 5\nError threshold. Policy violations with a severity above this value are\nhighlighted as errors, the others are considered warnings by syntastic.\n\n                                              *'g:syntastic_cpp_cpplint_args'*\nType: string\nDefault: \"--verbose=3\"\nCommand line options to pass to \"Cpplint\"\n\nNote~\n\nBy default syntastic expects the \"cpplint\" script to be named \"cpplint.py\".\nHowever, if your \"cpplint\" was installed with \"pip\", the script's name is\n\"cpplint\", and you need to set 'g:syntastic_cpp_cpplint_exec' accordingly:\n>\n    let g:syntastic_cpp_cpplint_exec = \"cpplint\"\n<\n------------------------------------------------------------------------------\n7. Flawfinder                                       *syntastic-cpp-flawfinder*\n\nName:        flawfinder\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"Flawfinder\" scans C/C++ source code for possible security weaknesses. See the\nproject's page for more information:\n\n    https://www.dwheeler.com/flawfinder\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                                          *'g:syntastic_cpp_flawfinder_thres'*\nType: integer\nDefault: 3\nError threshold. Policy violations with a severity above this value are\nhighlighted as errors, the others are considered warnings by syntastic.\n\nSee also: |syntastic-c-flawfinder|.\n\n------------------------------------------------------------------------------\n8. GCC                                                     *syntastic-cpp-gcc*\n\nName:        gcc\nMaintainer:  Gregor Uhlenheuer <kongo2002@gmail.com>\n\nChecker options~\n                                                  *'g:syntastic_cpp_compiler'*\nType: string\nDefault: \"g++\", or \"clang++\" if GCC is not found\nCompiler executable.\n\n                                               *'g:syntastic_cpp_errorformat'*\nType: string\nDefault: unset\nOverride for the default |'errorformat'|.\n\n                                     *'g:syntastic_cpp_remove_include_errors'*\nType: boolean\nDefault: 0\nBy default, errors in files included from the file being checked are shown.\nSet this variable to 1 to remove messages about errors in included files.\nPlease note that this means syntastic will silently abort checks if there are\nfatal errors in one of the included files.\n\n                                          *'g:syntastic_cpp_compiler_options'*\nType: string\nDefault: unset\nCompilation flags (such as defines or include directories) to be passed to the\nlinter.\n\n                                               *'g:syntastic_cpp_config_file'*\nType: string\nDefault: unset\nFile containing additional compilation flags to be passed to the linter, one\noption per line (cf. |syntastic-config-files|).\n\n                                              *'g:syntastic_cpp_include_dirs'*\nType: array of strings\nDefault: []\nInclude directories to be passed to the linter, in addition to the above\ncompilation flags. You can set it to something like this: >\n    let g:syntastic_cpp_include_dirs = [\"includes\", \"headers\"]\n>\nand the corresponding \"-Iincludes -Iheaders\" will be added to the compilation\nflags.\n\n                                   *'g:syntastic_cpp_no_default_include_dirs'*\nType: boolean\nDefault: 0\nBy default syntastic adds a number of common include directories to the\ncompilation flags, namely: >\n    -I. -I.. -Iinclude -Iincludes -I../include -I../includes\n<\nYou can disable this behaviour by setting the above variable to 1.\n\n                                         *'g:syntastic_cpp_no_include_search'*\nType: boolean\nDefault: 0\nBy default syntastic looks at the first 100 lines of the file being checked,\nand tries to determine if it needs to include headers for some common\nlibraries, such as \"GLib\" or \"Gtk\". It then tries to add the corresponding\ninclude directories to the compilation flags. You can disable this behaviour\nby setting the above variable to 1.\n\n                                     *'g:syntastic_cpp_auto_refresh_includes'*\nType: boolean\nDefault: 0\nUsed only if \"g:syntastic_cpp_no_include_search\" is set to a false value.\nBy default syntastic searches for common libraries only the first time the\ncurrent file is checked. Setting the above variable to 1 instructs syntastic\nto refresh the list of common libraries every time the current file is\nchecked. You can also force a refresh even when the above variable is 0, by\n`:unlet`-ing the buffer variable 'b:syntastic_cpp_includes'.\n\n                                                    *'b:syntastic_cpp_cflags'*\nType: string\nDefault: unset\nBuffer-local variable. When set, no search for common libraries is performed,\nand the contents of the variable are added to the compilation flags.\n\n                                              *'g:syntastic_cpp_check_header'*\nType: boolean\nDefault: 0\nIf the current file is a header (namely if its extension is \"h\", \"hpp\", or\n\"hh\"), all checks are silently skipped. You can force syntastic to check\nheader files by setting the above variable to 1.\n\nNote~\n\nThis checker doesn't call the \"makeprgBuild()\" function, and thus it ignores\nthe usual 'g:syntastic_cpp_gcc_<option>' variables. The only exception is\n'g:syntastic_cpp_gcc_exec', which can still be used to override the linter's\nexecutable.\n\nSee also: |syntastic-c-gcc|.\n\n------------------------------------------------------------------------------\n9. OClint                                               *syntastic-cpp-oclint*\n\nName:        oclint\nMaintainer:  \"UnCO\" Lin <undercooled@lavabit.com>\n\n\"OClint\" is a static code analysis tool. See the project's page for details:\n\n    http://oclint.org/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                                            'g:syntastic_oclint_config_file'\nType: string\nDefault: unset\nFile containing compilation flags (such as defines or include directories),\none option per line (cf. |syntastic-config-files|).\n\nNotes~\n\nBy default you can set \"OClint\" parameters in 'g:syntastic_cpp_oclint_args',\nand compilation parameters (defines, optimisation flags, etc.) in the config\nfile.\n\nIf you want \"OClint\" to use \"Clang\"-style compilation databases\n(http://clang.llvm.org/docs/JSONCompilationDatabase.html) --\nperhaps generated by \"CMake\" (http://cmake.org/) or \"Build EAR\"\n(https://github.com/rizsotto/Bear) -- rather than pass compilation flags\nexplicitly, set 'g:syntastic_c_oclint_post_args' to an empty string: >\n    let g:syntastic_cpp_oclint_post_args = \"\"\n<\nConfig files pointed to by 'g:syntastic_oclint_config_file' are then ignored.\n\nSee also: |syntastic-c-oclint|.\n\n------------------------------------------------------------------------------\n10. PC-Lint                                            *syntastic-cpp-pc_lint*\n\nName:        pc_lint\nMaintainer:  Steve Bragg <steve@empresseffects.com>\n\n\"PC-Lint\" is a commercial static code analysis tool for Windows, produced\nby \"Gimpel Software\" (http://www.gimpel.com/). See the project's page for\ndetails:\n\n    http://www.gimpel.com/html/pcl.htm\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                                           'g:syntastic_pc_lint_config_file'\nType: string\nDefault: unset\nName of an indirect (.lnt) file. A file with that name is looked up in the\ncurrent directory and in parent directories; first such file found is used.\n\nSee also: |syntastic-c-pc_lint|.\n\n------------------------------------------------------------------------------\n11. Vera++                                              *syntastic-cpp-verapp*\n\nName:        verapp\nMaintainer:  Lucas Verney <phyks@phyks.me>\n\n\"Vera++\" is a programmable tool for verification, analysis and transformation\nof C++ source code. See the project's page for details:\n\n    https://bitbucket.org/verateam/vera/wiki/Home\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                                            *'g:syntastic_verapp_config_file'*\nType: string\nDefault: unset\nFile containing additional compilation flags to be passed to the linter, one\noption per line (cf. |syntastic-config-files|).\n\n==============================================================================\nSYNTAX CHECKERS FOR CABAL                           *syntastic-checkers-cabal*\n\nThe following checkers are available for Cabal (filetype \"cabal\"):\n\n    1. Cabal....................|syntastic-cabal-cabal|\n\n------------------------------------------------------------------------------\n1. Cabal                                               *syntastic-cabal-cabal*\n\nName:        cabal\nMaintainer:  Ian D. Bollinger <ian.bollinger@gmail.com>\n\nThis checker runs \"cabal check\" against Haskell Cabal package descriptions.\nSee the project's page for more information:\n\n    http://www.haskell.org/cabal/\n\nNote~\n\nThis checker doesn't call the \"makeprgBuild()\" function, and thus it ignores\nthe usual 'g:syntastic_cabal_cabal_<option>' variables. The only exception\nis 'g:syntastic_cabal_cabal_exec', which can still be used to override the\nlinter's executable.\n\n==============================================================================\nSYNTAX CHECKERS FOR CHEF                             *syntastic-checkers-chef*\n\nThe following checkers are available for Chef (filetype \"chef\"):\n\n    1. Foodcritic...............|syntastic-chef-foodcritic|\n\n------------------------------------------------------------------------------\n1. Foodcritic                                      *syntastic-chef-foodcritic*\n\nName:        foodcritic\nMaintainer:  Doug Ireton\n\n\"Foodcritic\" is a linter for \"Chef\" cookbooks (http://www.opscode.com/chef/).\nSee the project's page for more information:\n\n    http://www.foodcritic.io/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nYou probably also need a plugin to set |filetype| for Chef files, such as\n\"vim-chef\":\n\n    https://github.com/dougireton/vim-chef\n\n==============================================================================\nSYNTAX CHECKERS FOR CMAKE                           *syntastic-checkers-cmake*\n\nThe following checkers are available for CMake (filetype \"cmake\"):\n\n    1. cmakelint................|syntastic-cmake-cmakelint|\n\n------------------------------------------------------------------------------\n1. cmakelint                                       *syntastic-cmake-cmakelint*\n\nName:        cmakelint\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"cmakelint\" is a style linter for \"CMake\" files (https://cmake.org/).\nSee the project's page at GitHub more information:\n\n    https://github.com/richq/cmake-lint\n\nInstallation~\n\nInstall it with \"pip\": >\n    pip install cmakelint\n<\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR COBOL                           *syntastic-checkers-cobol*\n\nThe following checkers are available for COBOL (filetype \"cobol\"):\n\n    1. OpenCOBOL................|syntastic-cobol-cobc|\n\n------------------------------------------------------------------------------\n1. OpenCOBOL                                            *syntastic-cobol-cobc*\n\nName:        cobc\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"OpenCOBOL\" is a compiler for COBOL. See the project's page for more\ninformation:\n\n    http://www.opencobol.org/\n\nChecker options~\n                                                *'g:syntastic_cobol_compiler'*\nType: string\nDefault: \"cobc\"\nCompiler executable.\n\n                                             *'g:syntastic_cobol_errorformat'*\nType: string\nDefault: unset\nOverride for the default |'errorformat'|.\n\n                                   *'g:syntastic_cobol_remove_include_errors'*\nType: boolean\nDefault: 0\nBy default, errors in files included from the file being checked are shown.\nSet this variable to 1 to remove messages about errors in included files.\nPlease note that this means syntastic will silently abort checks if there are\nfatal errors in one of the included files.\n\n                                        *'g:syntastic_cobol_compiler_options'*\nType: string\nDefault: unset\nCompilation flags (such as \"-std=cobol2002\") to be passed to the linter.\n\n                                             *'g:syntastic_cobol_config_file'*\nType: string\nDefault: unset\nFile containing additional compilation flags to be passed to the linter, one\noption per line (cf. |syntastic-config-files|).\n\n                                            *'g:syntastic_cobol_include_dirs'*\nType: array of strings\nDefault: []\nInclude directories to be passed to the linter, in addition to the above\ncompilation flags. You can set it to something like this: >\n    let g:syntastic_cobol_include_dirs = [\"includes\", \"headers\"]\n<\nand the corresponding \"-Iincludes -Iheaders\" will be added to the compilation\nflags.\n\n                                                  *'b:syntastic_cobol_cflags'*\nType: string\nDefault: unset\nBuffer-local variable. Additional compilation flags specific to the current\nbuffer.\n\nNote~\n\nThis checker doesn't call the \"makeprgBuild()\" function, and thus it ignores\nthe usual 'g:syntastic_cobol_cobc_<option>' variables. The only exception\nis 'g:syntastic_cobol_cobc_exec', which can still be used to override the\nlinter's executable.\n\n==============================================================================\nSYNTAX CHECKERS FOR COCO                               *syntastic-checkers-co*\n\nThe following checkers are available for Coco (filetype \"co\"):\n\n    1. Coco.....................|syntastic-co-coco|\n\n------------------------------------------------------------------------------\n1. Coco                                                    *syntastic-co-coco*\n\nName:        coco\nMaintainer:  Andrew Kelley <superjoe30@gmail.com>\n\nFor details about \"Coco\" see the project's page:\n\n    https://github.com/satyr/coco/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR COFFEESCRIPT                   *syntastic-checkers-coffee*\n\nThe following checkers are available for CoffeeScript (filetype \"coffee\"):\n\n    1. Coffee...................|syntastic-coffee-coffee|\n    2. Coffee->JSHint...........|syntastic-coffee-coffee_jshint|\n    3. CoffeeLint...............|syntastic-coffee-coffeelint|\n\n------------------------------------------------------------------------------\n1. Coffee                                            *syntastic-coffee-coffee*\n\nName:        coffee\nMaintainer:  Lincoln Stoll <l@lds.li>\n\n\"Coffee\" is a compiler for CoffeeScript. See the project's page for details:\n\n    http://coffeescript.org/\n\nSyntastic requires \"Coffee\" version 1.6.2 or later.\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n2. Coffee->JSHint                             *syntastic-coffee-coffee_jshint*\n\nName:        coffee_jshint\nMaintainer:  John Krauss <john@johnkrauss.com>\n\n\"Coffee->JSHint\" is a JSHint validator for CoffeeScript. See the project's\npage at GitHub for details:\n\n    https://github.com/marviq/coffee-jshint\n\nInstallation~\n\nInstall it with \"npm\": >\n    npm install -g coffee-jshint\n<\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\nAccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n3. CoffeeLint                                    *syntastic-coffee-coffeelint*\n\nName:        coffeelint\nMaintainer:  Lincoln Stoll <l@lds.li>\n\n\"CoffeeLint\" is a style linter for CoffeeScript. See the project's page for\ndetails:\n\n    http://www.coffeelint.org/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR COQ                               *syntastic-checkers-coq*\n\nThe following checkers are available for Coq (filetype \"coq\"):\n\n    1. Coqtop...................|syntastic-coq-coqtop|\n\n------------------------------------------------------------------------------\n1. Coqtop                                               *syntastic-coq-coqtop*\n\nName:        coqtop\nMaintainer:  Matvey Aksenov <matvey.aksenov@gmail.com>\n\n\"Coqtop\" is the top level interface for Coq. See the project's page for\ndetails:\n\n    http://coq.inria.fr/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR CSS                               *syntastic-checkers-css*\n\nThe following checkers are available for CSS (filetype \"css\"):\n\n    1. CSSLint..................|syntastic-css-csslint|\n    2. mixedindentlint..........|syntastic-css-mixedindentlint|\n    3. PHP_CodeSniffer..........|syntastic-css-phpcs|\n    4. PrettyCSS................|syntastic-css-prettycss|\n    5. RECESS...................|syntastic-css-recess|\n    6. stylelint................|syntastic-css-stylelint|\n\n------------------------------------------------------------------------------\n1. CSSLint                                             *syntastic-css-csslint*\n\nName:        csslint\nMaintainer:  Ory Band <oryband@gmail.com>\n\n\"CSSLint\" is a lint tool for Cascading Stylesheets. See the project's page\nfor details:\n\n    http://csslint.net/\n\nInstallation~\n\nInstall it with \"npm\": >\n    npm install -g csslint\n<\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n2. mixedindentlint                             *syntastic-css-mixedindentlint*\n\nName:        mixedindentlint\nMaintainer:  Payton Swick <payton@foolord.com>\n\n\"mixedindentlint\" is a general-purpose indentation linter. See the project's\npage at GitHub for more information:\n\n    https://github.com/sirbrillig/mixedindentlint\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nSee also: |syntastic-javascript-mixedindentlint|, |syntastic-scss-mixedindentlint|.\n\n------------------------------------------------------------------------------\n3. PHP_CodeSniffer                                       *syntastic-css-phpcs*\n\nName:        phpcs\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"PHP_CodeSniffer\" is a style linter for PHP and CSS. See the project's page\nat GitHub for details:\n\n    https://github.com/squizlabs/PHP_CodeSniffer/\n\nInstallation~\n\nInstall it with: >\n    pear install PHP_CodeSniffer\n<\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nIf you're checking files containing tab characters then \"PHP_CodeSniffer\"'s\nidea of tabstop must match Vim's 'tabstop', otherwise syntastic will highlight\nthe errors at shifted positions. By default syntastic does that by adding\nan option \"--tab-width=&tabstop\" to \"PHP_CodeSniffer\", but that option\nalso instructs \"PHP_CodeSniffer\" to expand tabs, and some code sniffers\n(f.i. \"CakePHP\", see https://github.com/cakephp/cakephp-codesniffer) insist on\nindenting lines with tabs. To work around the resulting mess if you're using\none of these sniffers, set \"--tab-width=0\" and 'tabstop' to 8: >\n    let g:syntastic_php_phpcs_args = \"--tab-width=0\"\n    set tabstop=8\n<\nSee also: |syntastic-php-phpcs|.\n\n------------------------------------------------------------------------------\n4. PrettyCSS                                         *syntastic-css-prettycss*\n\nName:        prettycss\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"PrettyCSS\" is a beautifier, lint checker, and validator for Cascading\nStylesheets. For more details see:\n\nPrettyCSS Demo:\n\n    http://fidian.github.io/PrettyCSS/\n\nThe project's page at GitHub:\n\n    https://github.com/fidian/PrettyCSS/\n\nInstallation~\n\nInstall it with: >\n    npm install -g PrettyCSS\n<\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n5. RECESS                                               *syntastic-css-recess*\n\nName:        recess\nMaintainer:  Tim Carry <tim@pixelastic.com>\n\n\"RECESS\" is a code quality tool for CSS built on top of LESS. See the\nproject's page for details:\n\n    http://twitter.github.io/recess/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nSee also: |syntastic-less-recess|.\n\n------------------------------------------------------------------------------\n6. stylelint                                         *syntastic-css-stylelint*\n\nName:        stylelint\nMaintainer:  Tim Carry <tim@pixelastic.com>\n\n\"stylelint\" is a style linter for Cascading Stylesheets. See the project's\npage for more information:\n\n    http://stylelint.io/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nSee also: |syntastic-html-stylelint|, |syntastic-vue-stylelint|.\n\n==============================================================================\nSYNTAX CHECKERS FOR CUCUMBER                     *syntastic-checkers-cucumber*\n\nThe following checkers are available for Cucumber (filetype \"cucumber\"):\n\n    1. Cucumber.................|syntastic-cucumber-cucumber|\n\n------------------------------------------------------------------------------\n1. Cucumber                                      *syntastic-cucumber-cucumber*\n\nName:        cucumber\nMaintainer:  Martin Grenfell <martin.grenfell@gmail.com>\n\n\"Cucumber\" is a tool that executes plain-text functional descriptions as\nautomated tests. See the project's page for more information:\n\n    http://cukes.info/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR CUDA                             *syntastic-checkers-cuda*\n\nThe following checkers are available for CUDA (filetype \"cuda\"):\n\n    1. NVCC.....................|syntastic-cuda-nvcc|\n\n------------------------------------------------------------------------------\n1. NVCC                                                  *syntastic-cuda-nvcc*\n\nName:        nvcc\nAuthor: Hannes Schulz <schulz@ais.uni-bonn.de>\n\n\"NVCC\" is a CUDA Compiler from nVidia. See the project's page for details:\n\n    https://developer.nvidia.com/cuda-llvm-compiler\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                                             *'g:syntastic_cuda_check_header'*\nType: boolean\nDefault: 0\nTurn this on to check header files.  The checker then creates an empty file\n\".syntastic_dummy.cu\" in the base directory of the file being checked.\nExample: >\n    let g:syntastic_cuda_check_header = 1\n<\n                                              *'g:syntastic_cuda_config_file'*\nType: string\nDefault: unset\nFile containing additional compilation flags to be passed to the linter, one\noption per line (cf. |syntastic-config-files|).\n\n==============================================================================\nSYNTAX CHECKERS FOR D                                   *syntastic-checkers-d*\n\nThe following checkers are available for D (filetype \"d\"):\n\n    1. DMD......................|syntastic-d-dmd|\n    2. D-Scanner................|syntastic-d-dscanner|\n\n------------------------------------------------------------------------------\n1. DMD                                                       *syntastic-d-dmd*\n\nName:        dmd\nMaintainer:  Alfredo Di Napoli <alfredo.dinapoli@gmail.com>\n\nChecker options~\n                                                    *'g:syntastic_d_compiler'*\nType: string\nDefault: \"dmd\"\nCompiler executable.\n\n                                                 *'g:syntastic_d_errorformat'*\nType: string\nDefault: unset\nOverride for the default |'errorformat'|.\n\n                                       *'g:syntastic_d_remove_include_errors'*\nType: boolean\nDefault: 0\nBy default, errors in files included from the file being checked are shown.\nSet this variable to 1 to remove messages about errors in included files.\nPlease note that this means syntastic will silently abort checks if there are\nfatal errors in one of the included files.\n\n                                            *'g:syntastic_d_compiler_options'*\nType: string\nDefault: unset\nCompilation flags (such as defines or include directories) to be passed to the\nlinter.\n\n                                                 *'g:syntastic_d_config_file'*\nType: string\nDefault: unset\nFile containing additional compilation flags to be passed to the linter, one\noption per line (cf. |syntastic-config-files|).\n\n                                                *'g:syntastic_d_include_dirs'*\nType: array of strings\nDefault: inferred from \".dub/packages\"\nInclude directories to be passed to the linter, in addition to the above\ncompilation flags. You can set it like this: >\n    let g:syntastic_d_include_dirs = [\"includes\", \"headers\"]\n<\nand the corresponding \"-Iincludes -Iheaders\" will be added to the compilation\nflags.\n\n                                                     *'g:syntastic_d_use_dub'*\nType: boolean\nDefault: 1\nWhether to use \"dub\" to find include directories. This requires \"dub\" version\n0.9.24 or later.\n\n                                                    *'g:syntastic_d_dub_exec'*\nType: string\nDefault: \"dub\"\nPath to the \"dub\" executable. Ignored if |'g:syntastic_d_use_dub'| is unset.\n\n                                                      *'b:syntastic_d_cflags'*\nType: string\nDefault: unset\nBuffer-local variable. Additional compilation flags specific to the current\nbuffer.\n\n                                                *'g:syntastic_d_check_header'*\nType: boolean\nDefault: 0\nIf the current file is a header (namely if its extension is \"di\"), all checks\nare silently skipped. You can force syntastic to check header files by setting\nthe above variable to 1.\n\nNote~\n\nThis checker doesn't call the \"makeprgBuild()\" function, and thus it ignores\nthe usual 'g:syntastic_d_dmd_<option>' variables. The only exception is\n'g:syntastic_d_dmd_exec', which can still be used to override the linter's\nexecutable.\n\n------------------------------------------------------------------------------\n2. D-Scanner                                            *syntastic-d-dscanner*\n\nName:        dscanner\nMaintainer:  ANtlord\n\n\"D-Scanner\" is a tool for analyzing D source code (https://dlang.org/). See\nthe project's page at GitHub for more information:\n\n    https://github.com/Hackerpilot/Dscanner\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR DART                             *syntastic-checkers-dart*\n\nThe following checkers are available for Dart (filetype \"dart\"):\n\n    1. Analyzer.................|syntastic-dart-dartanalyzer|\n\n------------------------------------------------------------------------------\n1. Analyzer                                      *syntastic-dart-dartanalyzer*\n\nName:        dartanalyzer\nMaintainer:  Maksim Ryzhikov <rv.maksim@gmail.com>\n\n\"Analyzer\" is a static analysis tool for Dart (https://www.dartlang.org/).\nSee the manual for more information:\n\n    https://www.dartlang.org/tools/analyzer/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR DOCBOOK                         *syntastic-checkers-docbk*\n\nThe following checkers are available for DocBook (filetype \"docbk\"):\n\n    1. Igor.....................|syntastic-docbk-igor|\n    2. xmllint..................|syntastic-docbk-xmllint|\n\n------------------------------------------------------------------------------\n1. Igor                                                 *syntastic-docbk-igor*\n\nName:        igor\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"Igor\" is a proofreader for DocBook SGML, man pages, and text files used by\nthe FreeBSD project (https://www.freebsd.org/). See the author's presentation\nfor details:\n\n    http://www.youtube.com/watch?v=sczHqUPygZY\n\nThe latest version can be obtained from Glen Barber's repository:\n\n    http://docscripts.glenbarber.us/tags/igor/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nSee also: |syntastic-nroff-igor|, |syntastic-text-igor|.\n\n------------------------------------------------------------------------------\n2. xmllint                                           *syntastic-docbk-xmllint*\n\nName:        xmllint\nMaintainer:  Martin Grenfell <martin.grenfell@gmail.com>\n\n\"xmllint\" is a linter and transformer tool for XML files, distributed with\nthe \"libxml\" package (http://www.xmlsoft.org/). See the tool's manual for more\ninformation:\n\n    http://xmlsoft.org/xmllint.html\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nYou can use a local installation of DTDs to significantly speed up validation\nand allow you to validate XML data without network access. See the\n\"xmlcatalog\" manual, and the catalog documentation for more information:\n\n    http://www.xmlsoft.org/xmlcatalog_man.html\n    http://www.xmlsoft.org/catalog.html\n\nFor an example of a DTD catalog see f.i. \"XMLCatalog\":\n\n    https://github.com/darcyparker/XMLCatalog\n\nIn order to use it with syntastic you'll have to clone it to a local\ndirectory, and point the environment variable \"XML_CATALOG_FILES\" to the file\n\"catalog.xml\" in the said directory: >\n    XML_CATALOG_FILES=/some/path/XMLCatalog/catalog.xml\n    export XML_CATALOG_FILES\n<\nOtherwise \"xmllint\" will try to load XML catalogs from \"/etc/xml/catalog\".\n\nSee also: |syntastic-xml-xmllint|, |syntastic-xslt-xmllint|.\n\n==============================================================================\nSYNTAX CHECKERS FOR DOCKERFILE                 *syntastic-checkers-dockerfile*\n\nThe following checkers are available for Dockerfile (filetype \"dockerfile\"):\n\n    1. dockerfile-lint..........|syntastic-dockerfile-dockerfile_lint|\n    2. Hadolint.................|syntastic-dockerfile-hadolint|\n\n------------------------------------------------------------------------------\n1. dockerfile-lint                      *syntastic-dockerfile-dockerfile_lint*\n\nName:        dockerfile_lint\nMaintainer:  Tim Carry <tim@pixelastic.com>\n\n\"dockerfile-lint\" is a linter for Dockerfiles\n(http://docs.docker.com/engine/reference/builder). See the project's page at\nGitHub for details:\n\n    https://github.com/projectatomic/dockerfile_lint\n\nInstallation~\n\nInstall it with: >\n    npm install -g dockerfile_lint\n<\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n2. Hadolint                                    *syntastic-dockerfile-hadolint*\n\nName:        hadolint\nMaintainer:  Jesper B. Rosenkilde <jbr@humppa.dk>\n\n\"Hadolint\" is a dockerfile linter written in Haskell. See the project's page\nat GitHub for details:\n\n    https://github.com/lukasmartinelli/hadolint\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR DUST                           *syntastic-checkers-dustjs*\n\nThe following checkers are available for Dust (filetype \"dustjs\"):\n\n    1. Swiffer..................|syntastic-dustjs-swiffer|\n\n------------------------------------------------------------------------------\n1. Swiffer                                          *syntastic-dustjs-swiffer*\n\nName:        swiffer\nMaintainer:  Steven Foote <smfoote@gmail.com>\n\n\"Swiffer\" is a command line lint tool for Dust. See the project's page for\ndetails:\n\n    https://github.com/smfoote/Swiffer.js\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nTo enable Dust syntax checking, you must set the filetype of your Dust\ntemplate files to \"dustjs\". An easy way to do this is by installing the dustjs\nsyntax highlighter:\n\n    https://github.com/jimmyhchan/dustjs.vim\n\n==============================================================================\nSYNTAX CHECKERS FOR ELIXIR                         *syntastic-checkers-elixir*\n\nThe following checkers are available for Elixir (filetype \"elixir\"):\n\n    1. elixir...................|syntastic-elixir-elixir|\n\n------------------------------------------------------------------------------\n1. elixir                                            *syntastic-elixir-elixir*\n\nName:        elixir\nMaintainer:  Richard Ramsden <rramsden@gmail.com>\n\nSee the project's page for details:\n\n    http://elixir-lang.org/\n\nSecurity~\n\nThis checker executes the code in the files it checks:\n\n    https://github.com/vim-syntastic/syntastic/issues/1141\n\nThis is probably fine if you wrote the files yourself, but it can be a problem\nif you're trying to check third party files. If you are 100% willing to let\nVim run the code in your files, set 'g:syntastic_enable_elixir_checker' to 1\nin your vimrc to enable this checker: >\n    let g:syntastic_enable_elixir_checker = 1\n<\nThere is also a buffer-local version of this variable, that takes precedence\nover a global one in the buffers where it is defined.\n\nPlease note that setting this variable doesn't automatically enable the\nchecker, you still need to add \"elixir\" to 'g:syntastic_elixir_checkers' if\nyou plan to use it.\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR ERLANG                         *syntastic-checkers-erlang*\n\nThe following checkers are available for Erlang (filetype \"erlang\"):\n\n    1. escript..................|syntastic-erlang-escript|\n    2. SyntaxErl................|syntastic-erlang-syntaxerl|\n\n------------------------------------------------------------------------------\n1. escript                                          *syntastic-erlang-escript*\n\nName:        escript\nMaintainer:  Pawel Salata <rockplayer.pl@gmail.com>\n\n\"escript\" is an interpreter for Erlang programs. See the tool's manual for\nmore information:\n\n    http://www.erlang.org/doc/man/escript.html\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nIf you get warning: \"behaviour X undefined\" with your customize behaviour, add\nthe following line in your vimrc: >\n    let g:syntastic_erlc_include_path = \"ebin\"\n<\n\n------------------------------------------------------------------------------\n2. SyntaxErl                                      *syntastic-erlang-syntaxerl*\n\nName:        syntaxerl\nMaintainer:  locojay\n\n\"SyntaxErl\" is a syntax linter for Erlang. It uses \"rebar\"\n(https://github.com/basho/rebar) to determine correct dependencies and library\npaths. See the project's page for more information:\n\n    https://github.com/ten0s/syntaxerl\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR ERUBY                           *syntastic-checkers-eruby*\n\nThe following checkers are available for eRuby (filetype \"eruby\"):\n\n    1. Ruby.....................|syntastic-eruby-ruby|\n\n------------------------------------------------------------------------------\n1. Ruby                                                 *syntastic-eruby-ruby*\n\nName:        ruby\nMaintainer:  Martin Grenfell <martin.grenfell@gmail.com>\n\nChecker options~\n                                                     'g:syntastic_ruby_exec'\nType: string\nDefault: \"ruby\"\nThe Ruby executable to use.\n\nNote~\n\nThe variable 'g:syntastic_ruby_exec' is also used by the Ruby\n\"MRI\" checker (cf. |syntastic-ruby-mri|), and it can be overriden\nby 'g:syntastic_eruby_ruby_exec'. However, this checker doesn't\ncall the \"makeprgBuild()\" function, and thus it ignores all other\n'g:syntastic_eruby_ruby_<option>' variables.\n\n==============================================================================\nSYNTAX CHECKERS FOR FORTRAN                       *syntastic-checkers-fortran*\n\nThe following checkers are available for Fortran (filetype \"fortran\"):\n\n    1. GNU Fortran..............|syntastic-fortran-gfortran|\n\n------------------------------------------------------------------------------\n1. GNU Fortran                                    *syntastic-fortran-gfortran*\n\nName:        gfortran\nMaintainer:  Karl Yngve Lervåg <karl.yngve@lervag.net>\n\n\"GNU Fortran\" is a checker for Fortran files using either GNU\nFortran (https://gcc.gnu.org/fortran/) or Intel Fortran Compilers\n(https://software.intel.com/en-us/fortran-compilers).\n\nChecker options~\n                                              *'g:syntastic_fortran_compiler'*\nType: string\nDefault: \"gfortran\"\nCompiler executable. Set this to either \"gfortran\" (to use GNU Fortran), or to\n\"ifort\" (for Intel Fortran).\n\n                                           *'g:syntastic_fortran_errorformat'*\nType: string\nDefault: unset\nOverride for the default |'errorformat'|.\n\n                                 *'g:syntastic_fortran_remove_include_errors'*\nType: boolean\nDefault: 0\nBy default, errors in files included from the file being checked are shown.\nSet this variable to 1 to remove messages about errors in included files.\nPlease note that this means syntastic will silently abort checks if there are\nfatal errors in one of the included files.\n\n                                      *'g:syntastic_fortran_compiler_options'*\nType: string\nDefault: unset\nCompilation flags (such as \"-std=f95\") to be passed to the linter.\n\n                                           *'g:syntastic_fortran_config_file'*\nType: string\nDefault: unset\nFile containing additional compilation flags to be passed to the linter, one\noption per line (cf. |syntastic-config-files|).\n\n                                          *'g:syntastic_fortran_include_dirs'*\nType: array of strings\nDefault: []\nInclude directories to be passed to the linter, in addition to the above\ncompilation flags. You can set it like this: >\n    let g:syntastic_fortran_include_dirs = [\"includes\", \"headers\"]\"\n<\nand the corresponding \"-Iincludes -Iheaders\" will be added to the compilation\nflags.\n\n                                                *'b:syntastic_fortran_cflags'*\nType: string\nDefault: unset\nBuffer-local variable. Additional compilation flags specific to the current\nbuffer.\n\nNote~\n\nThis checker doesn't call the \"makeprgBuild()\" function, and thus it ignores\nthe usual 'g:syntastic_fortran_gfortran_<option>' variables. The only\nexception is 'g:syntastic_fortran_gfortran_exec', which can still be used to\noverride the linter's executable.\n\n==============================================================================\nSYNTAX CHECKERS FOR GENTOO METADATA                *syntastic-checkers-gentoo*\n\nThe following checkers are available for Gentoo Metadata (filetype \"gentoo\"):\n\n    1. xmllint..................|syntastic-gentoo-xmllint|\n\n------------------------------------------------------------------------------\n1. xmllint                                          *syntastic-gentoo-xmllint*\n\nName:        xmllint\nMaintainer:  James Rowe <jnrowe@gmail.com>\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nThe DTDs required to validate \"metadata.xml\" files are available in\n\"$PORTDIR/metadata/dtd\", and these local files can be used to significantly\nspeed up validation. You can create a catalog file with: >\n    xmlcatalog --create --add rewriteURI http://www.gentoo.org/dtd/ \\\n        ${PORTDIR:-/usr/portage}/metadata/dtd/ /etc/xml/gentoo\n<\nSee \"xmlcatalog\" for more information:\n\n    http://www.xmlsoft.org/catalog.html\n\n==============================================================================\nSYNTAX CHECKERS FOR GETTEXT PO                         *syntastic-checkers-po*\n\nThe following checkers are available for gettext .po files (filetype \"po\"):\n\n    1. Dennis...................|syntastic-po-dennis|\n    2. msgfmt...................|syntastic-po-msgfmt|\n\n------------------------------------------------------------------------------\n1. Dennis                                                *syntastic-po-dennis*\n\nName:        dennis\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"Dennis\" is a set of utilities for working with gettext Portable Object\n(http://www.gnu.org/software/gettext/manual/html_node/PO-Files.html)\ntranslation files:\n\n    https://github.com/willkg/dennis/\n\nSee the program's manual for further details:\n\n    http://dennis.readthedocs.io/en/latest/linting.html\n\nInstallation~\n\nInstall it with \"pip\": >\n    pip install dennis\n<\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n2. msgfmt                                                *syntastic-po-msgfmt*\n\nName:        msgfmt\nMaintainer:  Ryo Okubo <syucream1031@gmail.com>\n\n\"msgfmt\" is a compiler for gettext Portable Object\n(http://www.gnu.org/software/gettext/manual/html_node/PO-Files.html)\ntranslation files.  See the program's manual for details:\n\n    http://www.gnu.org/software/gettext/manual/html_node/msgfmt-Invocation.html#msgfmt-Invocation\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR GLSL                             *syntastic-checkers-glsl*\n\nThe following checkers are available for GLSL (filetype \"glsl\"):\n\n    1. cgc......................|syntastic-glsl-cgc|\n\n------------------------------------------------------------------------------\n1. cgc                                                    *syntastic-glsl-cgc*\n\nName:        cgc\nMaintainer:  Joshua Rahm <joshuarahm@gmail.com>\n\n\"cgc\" is a compiler that translates Cg or GLSL programs into OpenGL or DirectX\ncode. See the manual for more details:\n\n    http://http.developer.nvidia.com/Cg/cgc.html\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                                               *'g:syntastic_glsl_extensions'*\nType: dictionary\nDefault: unset\n\nYou can control the profiles used by \"cgc\" with magic comments: put the magic\ncomment \"// profile:\" followed by the profile for \"cgc\" to use.  For example\nuse >\n    // profile: glslf\n<\nto force the fragment shader profile.\n\nIf the magic comment does not exist, then the dictionary\n'g:syntastic_glsl_extensions' is used to infer the appropriate profile from\nthe current file's extension. If this dictionary does not exist either, a\ndefault dictionary is used instead. Finally, if the current file's extension\ncannot be found in these dictionaries, the checker assumes a vertex shader\nprofile.\n\n                                                  *'g:syntastic_glsl_options'*\nType: string\nDefault: unset\nAdditional arguments to pass to \"cgc\".\n\nNote~\n\nYou probably also need a plugin to set |filetype| for OpenGL files, such as\n\"vim-glsl\":\n\n    https://github.com/tikhomirov/vim-glsl\n\n==============================================================================\nSYNTAX CHECKERS FOR GO                                 *syntastic-checkers-go*\n\nThe following checkers are available for Go (filetype \"go\"):\n\n    1. go.......................|syntastic-go-go|\n    2. gofmt....................|syntastic-go-gofmt|\n    3. GolangCI-Lint............|syntastic-go-golangci_lint|\n    4. Golint...................|syntastic-go-golint|\n    5. Go Meta Linter...........|syntastic-go-gometalinter|\n    6. gotype...................|syntastic-go-gotype|\n    7. vet......................|syntastic-go-govet|\n\n------------------------------------------------------------------------------\n1. go                                                        *syntastic-go-go*\n\nName:        go\nMaintainer:  Kamil Kisiel <kamil@kamilkisiel.net>\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                                              *'g:syntastic_go_go_build_args'*\nType: string\nDefault: \"-buildmode=archive\"\narguments passed to \"go build\"\n\n                                               *'g:syntastic_go_go_test_args'*\nType: string\nDefault: \"-buildmode=archive\"\narguments passed to \"go test\".\n\nNote~\n\nThis syntax checker does not reformat your source code.  Use a |BufWritePre|\nautocommand towards that end: >\n    autocmd FileType go autocmd BufWritePre <buffer> Fmt\n<\n------------------------------------------------------------------------------\n2. gofmt                                                  *syntastic-go-gofmt*\n\nName:        gofmt\nMaintainer:  Brandon Thomson <bt@brandonthomson.com>\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nThis syntax checker does not reformat your source code.  Use a |BufWritePre|\nautocommand towards that end: >\n    autocmd FileType go autocmd BufWritePre <buffer> Fmt\n<\n------------------------------------------------------------------------------\n3. GolangCI-Lint                                  *syntastic-go-golangci_lint*\n\nName:        golangci_lint\nMaintainer:  Elvis Macak <elvis@lnmpy.com>\n\nGolangCI-Lint is a linters aggregator. See the project's page for details:\n\n    https://github.com/golangci/golangci-lint\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n4. Golint                                                *syntastic-go-golint*\n\nName:        golint\nMaintainer: Hiroshi Ioka <hirochachacha@gmail.com>\n\n\"Golint\" is a linter for Go. See the project's page for details:\n\n    https://github.com/golang/lint\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n5. Go Meta Linter                                  *syntastic-go-gometalinter*\n\nName:        gometalinter\nMaintainer: Joshua Rubin <joshua@rubixconsulting.com>\n\n\"Go Meta Linter\" is a linter for Go. It runs a number of other linters\nagainst your files, and normalises their output to a standard format.\nSee the project's page at GitHub for details:\n\n    https://github.com/alecthomas/gometalinter\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n6. gotype                                                *syntastic-go-gotype*\n\nName:        gotype\nMaintainer:  luz <ne.tetewi@gmail.com>\n\nSee the tool's documentation for details:\n\n    https://godoc.org/golang.org/x/tools/cmd/gotype\n\n------------------------------------------------------------------------------\n7. vet                                                    *syntastic-go-govet*\n\nName:        govet\nMaintainer:  Kamil Kisiel <kamil@kamilkisiel.net>\n\nSee the tool's documentation for details:\n\n    https://godoc.org/cmd/vet\n\nNote~\n\nThis checker doesn't call the \"makeprgBuild()\" function, and thus it ignores\nthe usual 'g:syntastic_go_govet_<option>' variables.\n\n==============================================================================\nSYNTAX CHECKERS FOR HAML                             *syntastic-checkers-haml*\n\nThe following checkers are available for Haml (filetype \"haml\"):\n\n    1. Haml.....................|syntastic-haml-haml|\n    2. HAML-Lint................|syntastic-haml-haml_lint|\n\n------------------------------------------------------------------------------\n1. Haml                                                  *syntastic-haml-haml*\n\nName:        haml\nMaintainer:  Martin Grenfell <martin.grenfell@gmail.com>\n\nSee the project's page for details:\n\n    http://haml.info/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n2. HAML-Lint                                        *syntastic-haml-haml_lint*\n\nName:        haml_lint\nMaintainer:  Shane da Silva <shane@dasilva.io>\n\n\"HAML-Lint\" is a linter for HAML files. See the project's page for details:\n\n    https://github.com/causes/haml-lint\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR HANDLEBARS                 *syntastic-checkers-handlebars*\n\nThe following checkers are available for Handlebars (filetype \"handlebars\"):\n\n    1. Handlebars...............|syntastic-handlebars-handlebars|\n\n------------------------------------------------------------------------------\n1. Handlebars                                *syntastic-handlebars-handlebars*\n\nName:        handlebars\nMaintainer:  Jeremy Mack\n\n\"Handlebars\" is a JavaScript library for building semantic templates. See the\nproject's page for details:\n\n    http://handlebarsjs.com/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nYou probably also need a plugin to set |filetype| for Handlebars files, such as\n\"vim-mustache-handlebars\":\n\n    https://github.com/mustache/vim-mustache-handlebars\n\n==============================================================================\nSYNTAX CHECKERS FOR HASKELL                       *syntastic-checkers-haskell*\n\nThe following checkers are available for Haskell (filetype \"haskell\"):\n\n    1. hdevtools................|syntastic-haskell-hdevtools|\n    2. HLint....................|syntastic-haskell-hlint|\n    3. Style scanner............|syntastic-haskell-scan|\n\n------------------------------------------------------------------------------\n1. hdevtools                                     *syntastic-haskell-hdevtools*\n\nName:        hdevtools\nMaintainer:  Anthony Carapetis <anthony.carapetis@gmail.com>\n\n\"hdevtools\" is a backend for text editor plugins. See the project's page at\nGitHub for details:\n\n    https://github.com/bitc/hdevtools/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nIf you're checking files containing tab characters, then Vim's 'tabstop'\nmust match \"hdevtools\"'s idea of tabstop, otherwise column numbers will be\nshifted. At the time of this writing, \"hdevtools\"'s tabstop is hardcoded to 8,\nso you should probably add something like this to your vimrc: >\n    set tabstop=8\n<\n------------------------------------------------------------------------------\n2. HLint                                             *syntastic-haskell-hlint*\n\nName:        hlint\nMaintainer:  Nicolas Wu <nicolas.wu@gmail.com>\n\n\"HLint\" is a linter and style checker for Haskell. See the project's page for\ndetails:\n\n    http://community.haskell.org/~ndm/hlint/\n\nSyntastic requires \"hlint\" version 1.9.4 or later.\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nIf you're checking files containing tab characters, Vim's 'tabstop' must\nmatch \"HLint\"'s idea of tabstop, otherwise column numbers will be shifted. At\nthe time of this writing \"HLint\"'s tabstop is hardcoded to 8, so you should\nprobably add something like this to your vimrc: >\n    set tabstop=8\n<\n------------------------------------------------------------------------------\n3. Style scanner                                      *syntastic-haskell-scan*\n\nName:        scan\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"Style scanner\" is a style linter for Haskell. See the project's page for\ndetails:\n\n    http://projects.haskell.org/style-scanner/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nIf you're checking files containing tab characters, Vim's 'tabstop' must\nmatch \"Style scanner\"'s idea of tabstop, otherwise column numbers will be\nshifted. At the time of this writing \"Style scanner\"'s tabstop is hardcoded to\n8, so you should probably add something like this to your vimrc: >\n    set tabstop=8\n<\n==============================================================================\nSYNTAX CHECKERS FOR HAXE                             *syntastic-checkers-haxe*\n\nThe following checkers are available for Haxe (filetype \"haxe\"):\n\n    1. Haxe.....................|syntastic-haxe-haxe|\n\n------------------------------------------------------------------------------\n1. Haxe                                                  *syntastic-haxe-haxe*\n\nName:        haxe\nMaintainer:  David Bernard <david.bernard.31@gmail.com>\n\n\"Haxe\" is a programming language and compiler that can produce applications\nand source code for multiple different platforms from a single code-base. See\nthe project's page for details:\n\n    http://haxe.org/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                                                               *'g:vaxe_hxml'*\n                                                               *'b:vaxe_hxml'*\nType: string\nDefault: unset\nBy default the checker will search parent folders for \"hxml\" files, and\nuse the first one it finds. You can override that behaviour by pointing\n'g:vaxe_hxml' or 'b:vaxe_hxml' to a specific build file. Those variables can\nalso be set by Vaxe:\n\n    https://github.com/jdonaldson/vaxe\n\n==============================================================================\nSYNTAX CHECKERS FOR HSS                               *syntastic-checkers-hss*\n\nThe following checkers are available for HSS (filetype \"hss\"):\n\n    1. HSS......................|syntastic-hss-hss|\n\n------------------------------------------------------------------------------\n1. HSS                                                     *syntastic-hss-hss*\n\nName:        hss\nMaintainer:  Justin Donaldson <jdonaldson@gmail.com>\n\n\"HSS\" is a tool that extends the CSS syntax with features such as variables\nand nested blocks. See the project's page for details:\n\n    http://ncannasse.fr/projects/hss\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR HTML                             *syntastic-checkers-html*\n\nThe following checkers are available for HTML (filetype \"html\"):\n\n    1. ESLint...................|syntastic-html-eslint|\n    2. gjslint..................|syntastic-html-gjslint|\n    3. HTML tidy................|syntastic-html-tidy|\n    4. HTMLHint.................|syntastic-html-htmlhint|\n    5. JSHint...................|syntastic-html-jshint|\n    6. proselint................|syntastic-html-proselint|\n    7. stylelint................|syntastic-html-stylelint|\n    8. textlint.................|syntastic-html-textlint|\n    9. Validator................|syntastic-html-validator|\n    10. W3......................|syntastic-html-w3|\n\n------------------------------------------------------------------------------\n1. ESLint                                              *syntastic-html-eslint*\n\nName:        eslint\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"ESLint\" is a tool for identifying and reporting on patterns found in\nECMAScript/JavaScript code. It can also detect problems in JavaScript code\nembedded in HTML files. See the project's page for details:\n\n    https://github.com/nzakas/eslint\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNotes~\n\nAutomatically fixing errors (option \"--fix\") is not supported.\n\nYou can also use \"eslint_d\" (https://github.com/mantoni/eslint_d.js), version\n2.1.0 or later, instead of \"ESLint\". Just point 'g:syntastic_html_eslint_exec'\nto it:\n\n    https://github.com/mantoni/eslint_d.js#editor-integration\n\nSee also: |syntastic-javascript-eslint|, |syntastic-typescript-eslint|,\n|syntastic-vue-eslint|.\n\n------------------------------------------------------------------------------\n2. gjslint                                            *syntastic-html-gjslint*\n\nName:        gjslint\nMaintainer:  Martin Grenfell <martin.grenfell@gmail.com>\n\n\"Closure Linter\", or \"gjslint\", is a style linter for JavaScript. It can also\ndetect problems in HTML files. See the project's page for more information:\n\n    https://developers.google.com/closure/utilities/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nSee also: |syntastic-javascript-gjslint|.\n\n------------------------------------------------------------------------------\n3. HTML tidy                                             *syntastic-html-tidy*\n\nName:        tidy\nMaintainer:  Martin Grenfell <martin.grenfell@gmail.com>\n\n\"HTML Tidy\" is a syntax linter and formatter for HTML. See the project's page\nfor more information:\n\n    http://www.html-tidy.org/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                                       *'g:syntastic_html_tidy_ignore_errors'*\nType: array of strings\nDefault: []\nList of errors to ignore. Case-sensitive patterns matched as substrings\n(not regular expressions) against the error messages. See also\n|'syntastic_quiet_messages'|.\n\n                                     *'g:syntastic_html_tidy_blocklevel_tags'*\nType: array of strings\nDefault: []\nList of additional blocklevel tags to be added to \"--new-blocklevel-tags\".\n\n                                         *'g:syntastic_html_tidy_inline_tags'*\nType: array of strings\nDefault: []\nList of additional inline tags to be added to \"--new-inline-tags\".\n\n                                          *'g:syntastic_html_tidy_empty_tags'*\nType: array of strings\nDefault: []\nList of additional empty tags, to be added to \"--new-empty-tags\".\n\nSee also: |syntastic-xhtml-tidy|.\n\n------------------------------------------------------------------------------\n4. HTMLHint                                          *syntastic-html-htmlhint*\n\nName:        HTMLHint\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"HTMLHint\" is a static code analysis tool for HTML. See the project's page for\ndetails:\n\n    http://htmlhint.com/\n\nSyntastic requires \"HTMLHint\" version 0.9.13 or later.\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n5. jshint                                              *syntastic-html-jshint*\n\nName:        JSHint\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"JSHint\" can detect JavaScript errors and potential problems in HTML\nfiles. See the project's page for details:\n\n    http://jshint.com/\n\nSyntastic requires \"JSHint\" version 2.4.0 or later.\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nIf you're checking files containing tab characters then \"JSHint\"'s idea of\ntabstop must match Vim's 'tabstop', otherwise syntastic will highlight the\nerrors at shifted positions. By default \"JSHint\"'s tabstop is 4, while Vim's\ndefault 'tabstop' is 8.\n\nIn order to change \"JSHint\"'s tabstop you have to change its \"indent\" config\noption (cf. http://jshint.com/docs/options/#indent). One way to do that is\nto put it in a file named \".jshintrc\" in the current directory, the parent\ndirectories, or your home directory. The file is supposed to be in JSON\nformat. For example: >\n    {\n        \"indent\": 8\n    }\n<\nSee JSHint documentation for more details:\n\n    http://jshint.com/docs/\n\nPlease note however that setting \"indent\" also triggers the indentation checks\nin \"JSHint\". If that is undesirable, your only other option is to leave\n\"JSHint\"'s tabstop alone, and change Vim's 'tabstop' to 4. To change Vim's\n'tabstop', you can add this to your vimrc: >\n    set tabstop=4\n<\nSee also: |syntastic-javascript-jshint|, |syntastic-xhtml-jshint|.\n\n------------------------------------------------------------------------------\n6. proselint                                        *syntastic-html-proselint*\n\nName:        proselint\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"proselint\" is a linter for prose. See the page for details:\n\n    http://proselint.com/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nSee also: |syntastic-asciidoc-proselint|, |syntastic-help-proselint|,\n|syntastic-markdown-proselint|, |syntastic-nroff-proselint|,\n|syntastic-pod-proselint|, |syntastic-rst-proselint|,\n|syntastic-tex-proselint|, |syntastic-texinfo-proselint|,\n|syntastic-text-proselint|, |syntastic-xhtml-proselint|.\n\n------------------------------------------------------------------------------\n7. stylelint                                        *syntastic-html-stylelint*\n\nName:        stylelint\nMaintainer:  Tim Carry <tim@pixelastic.com>\n\n\"stylelint\" is a style linter for Cascading Stylesheets. See the project's\npage for more information:\n\n    http://stylelint.io/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nSee also: |syntastic-css-stylelint|, |syntastic-vue-stylelint|.\n\n------------------------------------------------------------------------------\n8. textlint                                          *syntastic-html-textlint*\n\nName:        textlint\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"textlint\" is a natural language linter for text, Markdown, and HTML files.\nSee the project's page for details:\n\n    https://textlint.github.io/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nYou need to install both \"textlint\" and the \"textlint HTML\" plugin for this to\nwork:\n\n    https://github.com/textlint/textlint-plugin-html\n\nSee also: |syntastic-markdown-textlint|, |syntastic-text-textlint|.\n\n------------------------------------------------------------------------------\n9. Validator                                        *syntastic-html-validator*\n\nName:        validator\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"Validator\" is a non-DTD-based HTML linter.  See the project's page for\ndetails:\n\n    http://validator.github.io/validator/\n\nAs a syntastic linter, you can validate your files against the online service\n(see https://validator.nu/), or you can install \"vnu.jar\":\n\n    https://github.com/validator/validator/releases/latest\n\nthen run it as a HTTP server: >\n    $ java -Xss512k -cp /path/to/vnu.jar nu.validator.servlet.Main 8888\n<\nRequirement~\n\nThis checker uses cURL:\n\n    http://curl.haxx.se/\n\nChecker options~\n\n                                            *'g:syntastic_html_validator_api'*\nType: string\nDefault: \"http://validator.nu/\"\nURL of the service to use for checking. Leave it to the default to run the\nchecks against \"https://validator.nu/\", or set it to \"http://localhost:8888/\"\nif you have \"vnu.jar\" installed, and you're running it as a standalone HTTP\nserver. See:\n\n    http://validator.github.io/validator/#standalone\n\n                                         *'g:syntastic_html_validator_parser'*\nType: string\nDefault: empty\nParser to use. Legal values are: \"xml\", \"xmldtd\", \"html\", \"html5\", \"html4\",\nand \"html4tr\". Set it to \"html5\" to check HTML5 files. References:\n\n    https://wiki.whatwg.org/wiki/Validator.nu_Common_Input_Parameters#parser\n\n                                       *'g:syntastic_html_validator_nsfilter'*\nType: string\nDefault: empty\nSets the \"nsfilter\" for the parser. See:\n\n    https://wiki.whatwg.org/wiki/Validator.nu_Common_Input_Parameters#nsfilter\n\n                                         *'g:syntastic_html_validator_schema'*\nType: string\nDefault: empty\nSets the \"schema\" for the parser. See:\n\n    https://wiki.whatwg.org/wiki/Validator.nu_Common_Input_Parameters#schema\n\n                                           *'g:syntastic_html_validator_exec'*\nType: string\nDefault: \"curl\"\nPath to the \"cURL\" executable. Override it with a full path if your \"cURL\" is\nnot installed in a standard location.\n\nThis checker doesn't call the \"makeprgBuild()\" function, and thus it ignores\nthe usual 'g:syntastic_html_validator_<option>' variables. The only exception\nis 'g:syntastic_html_validator_exec', which can be used to override the path\nto the \"cURL\" executable.\n\nNote~\n\nNon-zero exit codes from \"cURL\" are typically network errors, and are signaled\nby syntastic with messages such as: >\n    syntastic: error: checker html/validator returned abnormal status 26\n<\nYou can lookup the meaning of these codes in cURL's manual:\n    \n    http://curl.haxx.se/docs/manpage.html#EXIT\n\nSee also: |syntastic-svg-validator|, |syntastic-xhtml-validator|.\n\n------------------------------------------------------------------------------\n10. W3                                                     *syntastic-html-w3*\n\nName:        w3\nMaintainer:  Martin Grenfell <martin.grenfell@gmail.com>\n\n\"W3\" is the W3C Markup Validator for HTML.  See the project's page for\ndetails:\n\n    https://validator.w3.org/source/\n\nAs a syntastic linter, you can validate your files against the online service\n(see https://validator.w3.org/), or you can install it from sources and run it\nas a local service:\n\n    https://github.com/w3c/markup-validator/\n\nRequirement~\n\nThis checker uses cURL:\n\n    https://curl.haxx.se/\n\nChecker options~\n\n                                                   *'g:syntastic_html_w3_api'*\nType: string\nDefault: \"https://validator.w3.org/check\"\nURL of the service to use for checking. Leave it to the default to\nrun the checks against \"https://validator.w3.org/\", or set it to\n\"http://localhost/w3c-validator/check\" if you're running a local service.\n\n                                               *'g:syntastic_html_w3_doctype'*\nType: string\nDefault: \"HTML5\"\nName of the document type definition to use for checking.  If unspecified, the\ntype is detected from the file content.  Currently supported values for HTML:\n\n  - HTML5\n  - HTML 4.01 Strict\n  - HTML 4.01 Transitional\n  - HTML 4.01 Frameset\n  - HTML 4.01 + RDFa 1.1\n  - HTML 3.2\n  - HTML 2.0\n  - ISO/IEC 15445:2000 (\"ISO HTML\")\n\nReferences:\n\n    https://github.com/w3c/markup-validator/blob/master/htdocs/doctype-select.html\n    https://github.com/w3c/markup-validator/blob/master/htdocs/config/types.conf\n\n                                                  *'g:syntastic_html_w3_exec'*\nType: string\nDefault: \"curl\"\nPath to the \"cURL\" executable. Override it with a full path if your \"cURL\" is\nnot installed in a standard location.\n\nThis checker doesn't call the \"makeprgBuild()\" function, and thus it ignores\nthe usual 'g:syntastic_html_w3_<option>' variables. The only exception is\n'g:syntastic_html_w3_exec', which can be used to override the path to the\n\"cURL\" executable.\n\nNote~\n\nNon-zero exit codes from \"cURL\" are typically network errors, and are signaled\nby syntastic with messages such as: >\n    syntastic: error: checker html/w3 returned abnormal status 26\n<\nYou can lookup the meaning of these codes in cURL's manual:\n    \n    https://curl.haxx.se/docs/manpage.html#EXIT\n\nSee also: |syntastic-svg-w3|, |syntastic-xhtml-w3|.\n\n==============================================================================\nSYNTAX CHECKERS FOR JAVA                             *syntastic-checkers-java*\n\nThe following checkers are available for Java (filetype \"java\"):\n\n    1. checkstyle...............|syntastic-java-checkstyle|\n    2. javac....................|syntastic-java-javac|\n\n------------------------------------------------------------------------------\n1. checkstyle                                      *syntastic-java-checkstyle*\n\nName:        checkstyle\nMaintainer:  Dmitry Geurkov <d.geurkov@gmail.com>\n\n\"Checkstyle\" is a style linter for Java.  See the project's page for details:\n\n    http://checkstyle.sourceforge.net/\n\nYou need a working installation of Java Runtime Environment to run\n\"Checkstyle\".\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                                     *'g:syntastic_java_checkstyle_classpath'*\nType: string\nDefault: \"checkstyle-6.10.1-all.jar\"\nClasspath to use. Multiple files are allowed.\n\n                                     *'g:syntastic_java_checkstyle_conf_file'*\nType: string\nDefault: \"sun_checks.xml\"\nPath to the configuration file for the \"-c\" option (cf.\nhttp://checkstyle.sourceforge.net/cmdline.html#Command_line_usage).\n\n                                          *'g:syntastic_java_checkstyle_exec'*\nType: string\nDefault: \"java\"\nPath to the \"java\" executable.\n\nNotes~\n\n1. The checker was tested with \"checkstyle\" version 5.5. If you're using\nit with version 5.6 or later you should remove DoubleCheckedLocking from\nyour configuration file:\n\n    http://stackoverflow.com/a/12798807/1658042\n\n2. At the time of this writing, the \"checkstyle\" checker doesn't distinguish\nbetween error severity levels. All messages are treated as errors, regardless\nof their severity defined in the \"checkstyle\" config file.\n\n3. You can specify a property file: >\n    let g:syntastic_java_checkstyle_post_args =\n        \\ [\"-p\", \"/path/to/checkstyle.properties\"]\n<\n4. You probably want to download the \"fat jar\" \"checkstyle-*-all.jar\" and\npoint |'g:syntastic_java_checkstyle_classpath'| to it:\n\n    http://iweb.dl.sourceforge.net/project/checkstyle/checkstyle/\n    http://checkstyle.sourceforge.net/cmdline.html#Usage_by_Classpath_update\n\nCurrent builds at Maven Central do not package \"checkstyle\" with its\ndependencies:\n\n    http://search.maven.org/#search|gav|1|g%3A%22com.puppycrawl.tools%22%20AND%20a%3A%22checkstyle%22\n\nHowever, |'g:syntastic_java_checkstyle_classpath'| accepts multiple files if\nyou want to include the \"checkstyle\" jar and all of its dependencies.\n\n------------------------------------------------------------------------------\n2. javac                                                *syntastic-java-javac*\n\nName:        javac\nMaintainers: Jochen Keil <jochen.keil@gmail.com>\n             Dmitry Geurkov <d.geurkov@gmail.com>\n\nNote~\n\nThis checker is not suitable for use with large Java projects. The design\nof \"javac\" makes this checker prone to running into various limitations of\nyour shell, Vim, and your Java compiler. You are strongly advised to use\nsomething like Eclim (http://eclim.org/) instead of syntastic for projects of\nany substantial size or complexity.\n\nCommands~\n\nThe following commands are available:\n\n                                                *:SyntasticJavacEditClasspath*\nThis opens a new window where you can specify a classpath. Individual paths\nmay be specified one per line, or separated by colons \":\" on UNIX, or by\nsemicolons \";\" on Windows.\n\n                                                   *:SyntasticJavacEditConfig*\nThis command relevant only if |'g:syntastic_java_javac_config_file_enabled'|\nis set. It opens a buffer where you can specify project-specific options from\nthe list below. These options will be saved in a file pointed to by\n|'g:syntastic_java_javac_config_file'| (\".syntastic_javac_config\" by default).\nSet |'g:syntastic_java_javac_config_file'| to a full path to use a\nproject-wide configuration file, rather than a file in the current directory.\nThe settings have to be specified as Vim commands.\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                                         *'g:syntastic_java_javac_executable'*\nType: string\nDefault: \"javac\"\nCompiler executable used for checking files.\n\n                                         *'g:syntastic_java_maven_executable'*\nType: string\nDefault: \"mvn\"\nMaven executable used for loading classpath for \"maven\" projects.\n\n                                            *'g:syntastic_java_javac_options'*\nType: string\nDefault: \"-Xlint\"\nOptions for \"javac\".\n\n                                          *'g:syntastic_java_javac_classpath'*\nType: string\nDefault: \"\"\nClasspath. It can be changed by running the `:SyntasticJavacEditClasspath`\ncommand.\n\n                                      *'g:syntastic_java_javac_delete_output'*\nType: boolean\nDefault: 1\nWhen set the checker will delete the \".class\" files created by \"javac\".\n\n                           *'g:syntastic_java_javac_autoload_maven_classpath'*\nType: boolean\nDefault: 1\nIf enabled and a file \"pom.xml\" is found in the current working directory,\n\"maven\" is used to load classpath.\n\n                                        *'g:syntastic_java_javac_config_file'*\nType: string\nDefault: \".syntastic_javac_config\"\nPath to the configuration file used by \"javac\". As usual, if a filename is\nspecified rather than a full path, the file is created and looked for in the\ncurrent directory.\n\n                                *'g:syntastic_java_javac_config_file_enabled'*\nType: boolean\nDefault: 0\nWhen enabled, the classpath is written to the file pointed to by\n|'g:syntastic_java_javac_config_file'|. The file is created as needed.\nYou can edit this file with the `:SyntasticJavacEditClasspath` command.\nThe change will take effect next time you run the checker.\n\n                           *'g:syntastic_java_javac_custom_classpath_command'*\nType: string\nDefault: \"\"\nCustom command to run in order to get the classpath. The command classpath\noutput can be in traditional Java form, or specified on separate lines.\n\"%file_path%\", \"%FILE_NAME%\", and \"%FILE_DIR%\" are expanded to the current\nfile's full path, filename, and base directory respectively, all of them\nescaped for use in a shell command.\n\nUsing Ant~\n\nWhen using \"ant\" (http://ant.apache.org/) you can have a custom build target\n(named for example \"path\") that will output your project's classpath. You can\nthen use `:SyntasticJavacEditConfig` and add the following line to use it with\n\"javac\" linter: >\n    let g:syntastic_java_javac_custom_classpath_command =\n        \\ \"ant -q path | grep echo | cut -f2- -d] | tr -d ' ' | tr ':' '\\n'\"\n<\nUsing Gradle~\n\nFor \"Gradle\" projects (http://gradle.org/) you might consider using\n\"gradle-syntastic-plugin\":\n\n    https://github.com/Scuilion/gradle-syntastic-plugin\n\nThis will write the relevant classpath to a file \".syntastic_javac_config\".\n\n==============================================================================\nSYNTAX CHECKERS FOR JAVASCRIPT                 *syntastic-checkers-javascript*\n\nThe following checkers are available for JavaScript (filetype \"javascript\"):\n\n    1. Closure Compiler.........|syntastic-javascript-closurecompiler|\n    2. ESLint...................|syntastic-javascript-eslint|\n    3. Flow.....................|syntastic-javascript-flow|\n    4. gjslint..................|syntastic-javascript-gjslint|\n    5. JavaScript Lint..........|syntastic-javascript-jsl|\n    6. JSCS.....................|syntastic-javascript-jscs|\n    7. JSHint...................|syntastic-javascript-jshint|\n    8. JSLint...................|syntastic-javascript-jslint|\n    9. JSXHint..................|syntastic-javascript-jsxhint|\n    10. Lynt....................|syntastic-javascript-lynt|\n    11. mixedindentlint.........|syntastic-javascript-mixedindentlint|\n    12. standard................|syntastic-javascript-standard|\n    13. tern-lint...............|syntastic-javascript-tern_lint|\n\n------------------------------------------------------------------------------\n1. Closure Compiler                     *syntastic-javascript-closurecompiler*\n\nName:        closurecompiler\nMaintainer:  Motohiro Takayama <mootoh@gmail.com>\n\n\"Closure Compiler\" is a compiler for JavaScript maintained by Google. See the\nproject's page for details:\n\n    https://developers.google.com/closure/compiler/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                               *'g:syntastic_javascript_closurecompiler_path'*\nType: string\nDefault: unset\nPath to \"google-closure-compiler.jar\"\n\n                             *'g:syntastic_javascript_closurecompiler_script'*\nType: string\nDefault: unset\nPath to a \"closurecompiler\" executable script.\n\nNote~\n\nIn order to enable the checker you have to set exactly one of the options\nabove. If you have a package manager (such as \"Homebrew\") that installs a\nshell script that runs \"Closure Compiler\", point\n|'g:syntastic_javascript_closurecompiler_script'| to that script. Otherwise\nset |'g:syntastic_javascript_closurecompiler_path'| to point to the \"Closure\nCompiler\" jar file.\n\n------------------------------------------------------------------------------\n2. ESLint                                        *syntastic-javascript-eslint*\n\nName:        eslint\nMaintainer:  Maksim Ryzhikov <rv.maksim@gmail.com>\n\n\"ESLint\" is a tool for identifying and reporting on patterns found in\nECMAScript/JavaScript code. See the project's page for details:\n\n    https://github.com/nzakas/eslint\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nYou can also use \"eslint_d\" (https://github.com/mantoni/eslint_d.js),\nversion 2.1.0 or later, instead of \"ESLint\". Just point\n'g:syntastic_javascript_eslint_exec' to it:\n\n    https://github.com/mantoni/eslint_d.js#editor-integration\n\nSee also: |syntastic-html-eslint|, |syntastic-typescript-eslint|,\n|syntastic-vue-eslint|.\n\n------------------------------------------------------------------------------\n3. Flow                                            *syntastic-javascript-flow*\n\nName:        flow\nMaintainer:  Michael Robinson <mike@pagesofinterest.net>\n\n\"Flow\" is a static type linter for JavaScript, written by Facebook. See the\nproject's page for details:\n\n    http://flowtype.org/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNotes~\n\nSyntastic requires \"Flow\" version 0.34.0 or later.\n\nTo use \"Flow\" with your projects, you must:\n\na. Install it:\n\n    https://github.com/flowtype/flow-bin\n\nb. Configure your project:\n>\n    cd /path/to/your/project\n    flow init\n<\nc. Read the docs to find out more. It won't work out of the box.\n\n    http://flowtype.org/docs/existing.html\n\n------------------------------------------------------------------------------\n4. gjslint                                      *syntastic-javascript-gjslint*\n\nName:        gjslint\nMaintainer:  Martin Grenfell <martin.grenfell@gmail.com>\n\n\"Closure Linter\", or \"gjslint\", is a style linter for JavaScript. See the\nproject's page for more information:\n\n    https://developers.google.com/closure/utilities/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nSee also: |syntastic-html-gjslint|.\n\n------------------------------------------------------------------------------\n5. JavaScript Lint                                  *syntastic-javascript-jsl*\n\nName:        jsl\nMaintainer:  Martin Grenfell <martin.grenfell@gmail.com>\n\nFor details about \"JavaScript Lint\" see the project's page:\n\n    http://www.javascriptlint.com/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n6. JSCS                                            *syntastic-javascript-jscs*\n\nName:        jscs\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"JSCS\" is a code style linter for JavaScript. See the project's page for\nmore information:\n\n    https://github.com/mdevils/node-jscs\n\nSyntastic requires \"JSCS\" version 0.2.0 or later.\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n7. JSHint                                        *syntastic-javascript-jshint*\n\nName:        jshint\nMaintainer:  Martin Grenfell <martin.grenfell@gmail.com>\n\n\"JSHint\" is a tool to detect errors and potential problems in JavaScript\nfiles. See the project's page for details:\n\n    http://jshint.com/\n\nSyntastic requires \"JSHint\" version 1.0.0 or later.\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNotes~\n\nIf you're checking files containing tab characters then \"JSHint\"'s idea of\ntabstop must match Vim's 'tabstop', otherwise syntastic will highlight the\nerrors at shifted positions. By default \"JSHint\"'s tabstop is 4, while Vim's\ndefault 'tabstop' is 8.\n\nIn order to change \"JSHint\"'s tabstop you have to change its \"indent\" config\noption (cf. http://jshint.com/docs/options/#indent). One way to do that is\nto put it in a file named \".jshintrc\" in the current directory, the parent\ndirectories, or your home directory. The file is supposed to be in JSON\nformat. For example: >\n    {\n        \"indent\": 8\n    }\n<\nSee JSHint documentation for more details:\n\n    http://jshint.com/docs/\n\nPlease note however that setting \"indent\" also triggers the indentation checks\nin \"JSHint\". If that is undesirable, your only other option is to leave\n\"JSHint\"'s tabstop alone, and change Vim's 'tabstop' to 4. To change Vim's\n'tabstop', you can add this to your vimrc: >\n    set tabstop=4\n<\nSee also: |syntastic-html-jshint|, |syntastic-xhtml-jshint|.\n\n------------------------------------------------------------------------------\n8. JSLint                                        *syntastic-javascript-jslint*\n\nName:        jslint\nMaintainer:  Martin Grenfell <martin.grenfell@gmail.com>\n\n\"JSLint\" is a code quality linter for JavaScript. See the program's page for\ndetails:\n\n    http://www.jslint.com/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nBy default the checker calls \"JSLint\" with these options: >\n    --white --nomen --regexp --plusplus --bitwise --newcap --sloppy --vars\n<\nThis can be changed by setting 'g:syntastic_javascript_jslint_args' in your\nvimrc to your own list of options, for example: >\n    let g:syntastic_javascript_jslint_args = \n        \\ \"--nomen --regexp --browser --devel --windows --sloppy --vars\"\n<\nSetting this variable to the empty string \"\" is allowed, and instructs\nsyntastic to call \"JSLint\" with no options.\n\n------------------------------------------------------------------------------\n9. JSXHint                                      *syntastic-javascript-jsxhint*\n\nName:        jsxhint\nMaintainer:  Thomas Boyt <me@thomasboyt.com>\n\n\"JSXHint\" is a wrapper around JSHint (http://jshint.com/) for\nlinting JSX syntax, which is inline markup-in-JS used by React\n(http://facebook.github.io/react/docs/getting-started.html).\n\nSee the project's page for details:\n\n    https://github.com/strml/jsxhint\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nInstallation~\n\nInstall it with \"npm\": >\n    npm install -g jsxhint\n<\nSyntastic requires \"JSXHint\" version v0.4.1 or later. You also need \"JSHint\"\nv1.1.0 or later.\n\nNote~\n\nSince \"JSXHint\" is a wrapper around JSHint, the following note relevant to\nthe latter still applies:\n\nIf you're checking files containing tab characters then JSHint's idea of\ntabstop must match Vim's 'tabstop', otherwise syntastic will highlight the\nerrors at shifted positions. By default JSHint's tabstop is 4, while Vim's\ndefault 'tabstop' is 8.\n\nIn order to change \"JSHint\"'s tabstop you have to change its \"indent\" config\noption (http://jshint.com/docs/options/#indent). One way to do that is to\nput it in a file named \".jshintrc\" in the current directory, the parent\ndirectories, or your home directory. The file is supposed to be in JSON\nformat. For example: >\n    {\n        \"indent\": 8\n    }\n<\nSee JSHint documentation for more details:\n\n    http://jshint.com/docs/\n\nPlease note however that setting \"indent\" also triggers the indentation checks\nin JSHint. If that is undesirable, your only other option is to leave JSHint's\ntabstop alone, and change Vim's 'tabstop' to 4. To change Vim's 'tabstop', you\ncan add this to your 'vimrc': >\n    set tabstop=4\n<\nAlternative~\n\n\"JSXHint\" will not show JSX-related errors in syntastic, because failed JSX\ncompiles will result in the uncompiled data being passed to JSHint:\n\n    https://github.com/STRML/JSXHint/issues/45\n\nTo get around this, \"Syntastic-React\" can be used as a replacement for\n\"JSXHint\":\n\n    https://github.com/jaxbot/syntastic-react\n\n------------------------------------------------------------------------------\n10. Lynt                                           *syntastic-javascript-lynt*\n\nName:        lynt\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"Lynt\" is a JavaScript linter with support for TypeScript, Flow, and React.\nSee the project's page for more information:\n\n    https://github.com/saadq/lynt\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nAutomatically fixing errors (option \"--fix\") is not supported.\n\nSee also: |syntastic-typescript-lynt|.\n\n------------------------------------------------------------------------------\n11. mixedindentlint                     *syntastic-javascript-mixedindentlint*\n\nName:        mixedindentlint\nMaintainer:  Payton Swick <payton@foolord.com>\n\n\"mixedindentlint\" is a general-purpose indentation linter. See the project's\npage at GitHub for more information:\n\n    https://github.com/sirbrillig/mixedindentlint\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nSee also: |syntastic-css-mixedindentlint|, |syntastic-scss-mixedindentlint|.\n\n------------------------------------------------------------------------------\n12. standard                                   *syntastic-javascript-standard*\n\nName:        standard\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"Standard\" is a code style linter for JavaScript.  See the project's page for\nmore information:\n\n    https://github.com/feross/standard\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                                   *'g:syntastic_javascript_standard_generic'*\nType: boolean\nDefault: 0\nFlag that can be used to disable version checks for \"standard\".\n\nNote~\n\nMost forks of \"standard\" can also be used with syntastic. Just\nset 'g:syntastic_javascript_standard_generic' to 1, and point\n'g:syntastic_javascript_standard_exec' to the fork's executable.  For\nexample to use happiness (https://github.com/JedWatson/happiness) instead of\n\"standard\": >\n    let g:syntastic_javascript_checkers = [\"standard\"]\n    let g:syntastic_javascript_standard_exec = \"happiness\"\n    let g:syntastic_javascript_standard_generic = 1\n<\n------------------------------------------------------------------------------\n13. tern-lint                                 *syntastic-javascript-tern_lint*\n\nName:        tern_lint\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"tern-lint\" is a static type linter for JavaScript.  See the project's page\nfor more information:\n\n    https://github.com/angelozerr/tern-lint\n\nSyntastic requires a version of Vim compiled with the |+byte_offset| feature\nto use this checker.\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\n\"tern-lint\" recursively scans files starting from (Vim's idea of) the current\ndirectory, regardless of the current file.\n\n==============================================================================\nSYNTAX CHECKERS FOR JSON                             *syntastic-checkers-json*\n\nThe following checkers are available for JSON (filetype \"json\"):\n\n    1. JSONLint.................|syntastic-json-jsonlint|\n    2. jsonval..................|syntastic-json-jsonval|\n\n------------------------------------------------------------------------------\n1. JSONLint                                          *syntastic-json-jsonlint*\n\nName:        jsonlint\nMaintainer:  Miller Medeiros <contact@millermedeiros.com>\n\n\"JSONLint\" is a validator for JSON. See the project's page for details:\n\n    http://jsonlint.com/\n\nInstallation~\n\nInstall it with: >\n    npm install -g jsonlint\n<\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n2. jsonval                                            *syntastic-json-jsonval*\n\nName:        jsonval\nMaintainer:  Miller Medeiros <contact@millermedeiros.com>\n\n\"jsonval\" is a validator for JSON. See the project's page at GitHub for\ndetails:\n\n    https://github.com/dangerousben/jsonval\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR LESS                             *syntastic-checkers-less*\n\nThe following checkers are available for LESS (filetype \"less\"):\n\n    1. lessc....................|syntastic-less-lessc|\n    2. RECESS...................|syntastic-less-recess|\n\n------------------------------------------------------------------------------\n1. lessc                                                *syntastic-less-lessc*\n\nName:        lessc\nMaintainer:  Julien Blanchard <julien@sideburns.eu>\n\n\"lessc\" is a compiler for LESS. See the project's page for details:\n\n    http://lesscss.org/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n                                            *'g:syntastic_less_use_less_lint'*\nType: boolean\nDefault: 0\nFlag that can be set to instruct syntastic to run \"less-lint\" instead of\n\"less\".\n\n------------------------------------------------------------------------------\n2. RECESS                                              *syntastic-less-recess*\n\nName:        recess\nMaintainer:  Tim Carry <tim@pixelastic.com>\n\n\"RECESS\" is a code quality tool for CSS built on top of LESS. See the\nproject's page for details:\n\n    http://twitter.github.io/recess/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nSee also: |syntastic-css-recess|.\n\n==============================================================================\nSYNTAX CHECKERS FOR LEX                               *syntastic-checkers-lex*\n\nThe following checkers are available for Lex (filetype \"lex\"):\n\n    1. flex.....................|syntastic-lex-flex|\n\n------------------------------------------------------------------------------\n1. flex                                                   *syntastic-lex-flex*\n\nName:        flex\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"Flex\" is the GNU implementation of the standard UNIX lexical analyzer \"lex\"\n(http://en.wikipedia.org/wiki/Lex_programming_tool). See the project's page\nfor more information:\n\n    http://flex.sourceforge.net/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR LIMBO                           *syntastic-checkers-limbo*\n\nThe following checkers are available for Limbo (filetype \"limbo\"):\n\n    1. Limbo....................|syntastic-limbo-limbo|\n\n------------------------------------------------------------------------------\n1. Limbo                                               *syntastic-limbo-limbo*\n\nName:        limbo\nMaintainer:  Alex Efros <powerman-asdf@ya.ru>\n\n\"Limbo\" is a compiler for the Limbo language\n(http://doc.cat-v.org/inferno/4th_edition/limbo_language/), the\nlanguage used to write applications for the \"Inferno\" operating system\n(http://doc.cat-v.org/inferno/). See the \"Inferno\" project's page for\na reference implementation:\n\n    http://code.google.com/p/inferno-os/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR LISP                             *syntastic-checkers-lisp*\n\nThe following checkers are available for LISP (filetype \"lisp\"):\n\n    1. CLISP....................|syntastic-lisp-clisp|\n\n------------------------------------------------------------------------------\n1. CLISP                                                *syntastic-lisp-clisp*\n\nName:        clisp\nMaintainer:  Karl Yngve Lervåg <karl.yngve@lervag.net>\n\n\"CLISP\" is an interpreter for LISP programs. See the project's page for\ndetails:\n\n    http://www.clisp.org/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR LLVM                             *syntastic-checkers-llvm*\n\nThe following checkers are available for LLVM (filetype \"llvm\"):\n\n    1. LLVM.....................|syntastic-llvm-llvm|\n\n------------------------------------------------------------------------------\n1. LLVM                                                  *syntastic-llvm-llvm*\n\nName:        llvm\nMaintainer:  Andrew Kelley <superjoe30@gmail.com>\n\n\"LLVM\" is the intermediate language for the LLVM compilers (http://llvm.org/).\nSee the reference manual for details:\n\n    http://llvm.org/docs/LangRef.html\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR LUA                               *syntastic-checkers-lua*\n\nThe following checkers are available for Lua (filetype \"lua\"):\n\n    1. luac.....................|syntastic-lua-luac|\n    2. luacheck.................|syntastic-lua-luacheck|\n\n------------------------------------------------------------------------------\n1. luac                                                   *syntastic-lua-luac*\n\nName:        luac\nMaintainer:  Gregor Uhlenheuer <kongo2002@gmail.com>\n\n\"luac\" is a compiler for Lua. See the tool's manual for details:\n\n    http://www.lua.org/manual/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\n\"luac\" truncates filenames when the full path of the files involved is longer\nthan a certain fixed amount. Syntastic can't detect this situation, and will\nsilently ignore error messages with truncated filenames.\n\n------------------------------------------------------------------------------\n2. luacheck                                           *syntastic-lua-luacheck*\n\nName:        luacheck\nMaintainer:  Thiago Bastos <tbastos@tbastos.com>\n\n\"Luacheck\" is a tool for static analysis of Lua code. See the project's page\nfor details:\n\n    https://github.com/mpeterv/luacheck\n\nIn contrast to \"luac\" (see |syntastic-lua-luac|) which only flags syntax\nerrors, this checker detects code smells, so you probably want to enable both\nwhen available.\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nA sensible set of options for LUA projects might be something like this: >\n    let g:syntastic_check_on_open = 1\n    let g:syntastic_lua_checkers = [\"luac\", \"luacheck\"]\n    let g:syntastic_lua_luacheck_args = \"--no-unused-args\" \n<\n==============================================================================\nSYNTAX CHECKERS FOR MARKDOWN                     *syntastic-checkers-markdown*\n\nThe following checkers are available for Markdown (filetype \"markdown\"):\n\n    1. Markdown lint tool.......|syntastic-markdown-mdl|\n    2. proselint................|syntastic-markdown-proselint|\n    3. remark-lint..............|syntastic-markdown-remark_lint|\n    4. textlint.................|syntastic-markdown-textlint|\n\n------------------------------------------------------------------------------\n1. Markdown lint tool                                 *syntastic-markdown-mdl*\n\nName:        mdl\nMaintainer:  Charles Beynon <etothepiipower@gmail.com>\n\n\"Markdown lint tool\" is a style linter for Markdown files. See the project's\npage at GitHub for details:\n\n    https://github.com/mivok/markdownlint\n\nInstallation~\n\nInstall it with: >\n    gem install mdl\n<\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nYou can also use the \"Node.js\"-based \"markdownlint-cli\" as a linter instead\nof \"mdl\":\n\n    https://github.com/igorshubovych/markdownlint-cli\n\nTo do that, you have to point 'g:syntastic_markdown_mdl_exec' to\n\"markdownlint\", and set 'g:syntastic_markdown_mdl_args' to an empty string (or\nto a set of valid \"markdownlint-cli\" options): >\n    let g:syntastic_markdown_mdl_exec = \"markdownlint\"\n    let g:syntastic_markdown_mdl_args = \"\"\n<\n------------------------------------------------------------------------------\n2. proselint                                    *syntastic-markdown-proselint*\n\nName:        proselint\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"proselint\" is a linter for prose. See the page for details:\n\n    http://proselint.com/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nSee also: |syntastic-asciidoc-proselint|, |syntastic-help-proselint|,\n|syntastic-html-proselint|, |syntastic-nroff-proselint|,\n|syntastic-pod-proselint|, |syntastic-rst-proselint|,\n|syntastic-tex-proselint|, |syntastic-texinfo-proselint|,\n|syntastic-text-proselint|, |syntastic-xhtml-proselint|.\n\n------------------------------------------------------------------------------\n3. remark-lint                                *syntastic-markdown-remark_lint*\n\nName:        remark_lint\nMaintainer:  Tim Carry <tim@pixelastic.com>\n\n\"remark-lint\" is a code style linter for Markdown files.  See the project's\npage at GitHub for details:\n\n     https://github.com/remarkjs/remark-lint\n\nNote~\n\nSyntastic can't check whether \"remark-lint\" is installed properly beyond the\nexistence of an executable named \"remark\". Please make sure \"remark-lint\" is\ninstalled and working properly before attempting to use it with syntastic.\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n4. textlint                                      *syntastic-markdown-textlint*\n\nName:        textlint\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"textlint\" is a natural language linter for text, Markdown, and HTML files.\nSee the project's page for details:\n\n    https://textlint.github.io/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nSee also: |syntastic-html-textlint|, |syntastic-text-textlint|.\n\n==============================================================================\nSYNTAX CHECKERS FOR MATLAB                         *syntastic-checkers-matlab*\n\nThe following checkers are available for MATLAB (filetype \"matlab\"):\n\n    1. mlint....................|syntastic-matlab-mlint|\n\n------------------------------------------------------------------------------\n1. mlint                                              *syntastic-matlab-mlint*\n\nName:        mlint\nMaintainer:  Jason Graham <jason@the-graham.com>\n\n\"mlint\" is a code linter for MATLAB. The \"mlint\" binary is distributed with\nthe \"MATLAB\" package:\n\n    http://www.mathworks.com/help/matlab/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR MERCURY                       *syntastic-checkers-mercury*\n\nThe following checkers are available for Mercury (filetype \"mercury\"):\n\n    1. mmc......................|syntastic-mercury-mmc|\n\n------------------------------------------------------------------------------\n1. mmc                                                 *syntastic-mercury-mmc*\n\nName:        mmc\nMaintainer:  Joshua Rahm <joshuarahm@gmail.com>\n\n\"mmc\" is a compiler for Mercury. See Mercury's page for more details:\n\n    http://www.mercurylang.org/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR NASM                             *syntastic-checkers-nasm*\n\nThe following checkers are available for NASM (filetype \"nasm\"):\n\n    1. nasm.....................|syntastic-nasm-nasm|\n\n------------------------------------------------------------------------------\n1. nasm                                                  *syntastic-nasm-nasm*\n\nName:        nasm\nMaintainer:  HĂĽvard Pettersson <haavard.pettersson@gmail.com>\n\n\"NASM\" is an assembler and disassembler for the Intel x86 architecture. See\nthe project's page for details:\n\n    http://www.nasm.us/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR NIX                               *syntastic-checkers-nix*\n\nThe following checkers are available for Nix (filetype \"nix\"):\n\n    1. Nix......................|syntastic-nix-nix|\n\n------------------------------------------------------------------------------\n1. Nix                                                     *syntastic-nix-nix*\n\nName:        nix\nMaintainer:  Tim Cuthbertson <tim@gfxmonk.net>\n\n\"Nix\" is a linter for language \"Nix\" using \"nix-instantiate\". See the\nproject's page for details:\n\n    http://nixos.org/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR NROFF                           *syntastic-checkers-nroff*\n\nThe following checkers are available for nroff (filetype \"nroff\"):\n\n    1. Igor.....................|syntastic-nroff-igor|\n    2. mandoc...................|syntastic-nroff-mandoc|\n    3. proselint................|syntastic-nroff-proselint|\n\n------------------------------------------------------------------------------\n1. Igor                                                 *syntastic-nroff-igor*\n\nName:        igor\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"Igor\" is a proofreader for DocBook SGML, man pages, and text files used by\nthe FreeBSD project (https://www.freebsd.org/). See the author's presentation\nfor details:\n\n    http://www.youtube.com/watch?v=sczHqUPygZY\n\nThe latest version can be obtained from Glen Barber's repository:\n\n    http://docscripts.glenbarber.us/tags/igor/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nSee also: |syntastic-docbk-igor|, |syntastic-text-igor|.\n\n------------------------------------------------------------------------------\n2. mandoc                                             *syntastic-nroff-mandoc*\n\nName:        mandoc\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\nSee the project's page for details:\n\n    http://mdocml.bsd.lv/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n3. proselint                                       *syntastic-nroff-proselint*\n\nName:        proselint\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"proselint\" is a linter for prose. See the page for details:\n\n    http://proselint.com/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nSee also: |syntastic-asciidoc-proselint|, |syntastic-help-proselint|,\n|syntastic-html-proselint|, |syntastic-markdown-proselint|,\n|syntastic-pod-proselint|, |syntastic-rst-proselint|,\n|syntastic-tex-proselint|, |syntastic-texinfo-proselint|,\n|syntastic-text-proselint|, |syntastic-xhtml-proselint|.\n\n==============================================================================\nSYNTAX CHECKERS FOR OBJECTIVE-C                      *syntastic-checkers-objc*\n\nThe following checkers are available for Objective-C (filetype \"objc\"):\n\n    1. GCC......................|syntastic-objc-gcc|\n    2. OClint...................|syntastic-objc-oclint|\n\n------------------------------------------------------------------------------\n1. GCC                                                    *syntastic-objc-gcc*\n\nName:        gcc\nMaintainer:  Gregor Uhlenheuer <kongo2002@gmail.com>\n\nChecker options~\n                                                 *'g:syntastic_objc_compiler'*\nType: string\nDefault: \"gcc\", or \"clang\" if GCC is not found\nCompiler executable.\n\n                                              *'g:syntastic_objc_errorformat'*\nType: string\nDefault: unset\nOverride for the default |'errorformat'|.\n\n                                    *'g:syntastic_objc_remove_include_errors'*\nType: boolean\nDefault: 0\nBy default, errors in files included from the file being checked are shown.\nSet this variable to 1 to remove messages about errors in included files.\nPlease note that this means syntastic will silently abort checks if there are\nfatal errors in one of the included files.\n\n                                         *'g:syntastic_objc_compiler_options'*\nType: string\nDefault: unset\nCompilation flags (such as defines or include directories) to be passed to the\nlinter.\n\n                                              *'g:syntastic_objc_config_file'*\nType: string\nDefault: unset\nFile containing additional compilation flags to be passed to the linter, one\noption per line (cf. |syntastic-config-files|).\n\n                                             *'g:syntastic_objc_include_dirs'*\nType: array of strings\nDefault: []\nInclude directories to be passed to the linter, in addition to the above\ncompilation flags. You can set it like this: >\n    let g:syntastic_objc_include_dirs = [\"includes\", \"headers\"]\n<\nand the corresponding \"-Iincludes -Iheaders\" will be added to the compilation\nflags.\n\n                                  *'g:syntastic_objc_no_default_include_dirs'*\nType: boolean\nDefault: 0\nBy default syntastic adds a number of common include directories to the\ncompilation flags, namely: >\n    -I. -I.. -Iinclude -Iincludes -I../include -I../includes\n<\nYou can disable this behaviour by setting the above variable to 1.\n\n                                                   *'b:syntastic_objc_cflags'*\nType: string\nDefault: unset\nBuffer-local variable. Additional compilation flags specific to the current\nbuffer.\n\n                                             *'g:syntastic_objc_check_header'*\nType: boolean\nDefault: 0\nIf the current file is a header (namely if its extension is \"h\"), all checks\nare silently skipped. You can force syntastic to check header files by\nsetting the above variable to 1.\n\nNote~\n\nThis checker doesn't call the \"makeprgBuild()\" function, and thus it ignores\nthe usual 'g:syntastic_objc_gcc_<option>' variables. The only exception is\n'g:syntastic_objc_gcc_exec', which can still be used to override the linter's\nexecutable.\n\nSee also: |syntastic-objcpp-gcc|.\n\n------------------------------------------------------------------------------\n2. OClint                                              *syntastic-objc-oclint*\n\nName:        oclint\nMaintainer:  \"UnCO\" Lin <undercooled@lavabit.com>\n\n\"OClint\" is a static code analysis tool. See the project's page for details:\n\n    http://oclint.org/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                                            'g:syntastic_oclint_config_file'\nType: string\nDefault: unset\nFile containing compilation flags (such as defines or include directories),\none option per line (cf. |syntastic-config-files|).\n\nSee also: |syntastic-objcpp-oclint|.\n\n==============================================================================\nSYNTAX CHECKERS FOR OBJECTIVE-C++                  *syntastic-checkers-objcpp*\n\nThe following checkers are available for Objective-C++ (filetype \"objcpp\"):\n\n    1. GCC......................|syntastic-objcpp-gcc|\n    2. OClint...................|syntastic-objcpp-oclint|\n\n------------------------------------------------------------------------------\n1. GCC                                                  *syntastic-objcpp-gcc*\n\nName:        gcc\nMaintainer:  Gregor Uhlenheuer <kongo2002@gmail.com>\n\nChecker options~\n                                               *'g:syntastic_objcpp_compiler'*\nType: string\nDefault: \"gcc\", or \"clang\" if GCC is not found\nCompiler executable.\n\n                                            *'g:syntastic_objcpp_errorformat'*\nType: string\nDefault: unset\nOverride for the default |'errorformat'|.\n\n                                  *'g:syntastic_objcpp_remove_include_errors'*\nType: boolean\nDefault: 0\nBy default, errors in files included from the file being checked are shown.\nSet this variable to 1 to remove messages about errors in included files.\nPlease note that this means syntastic will silently abort checks if there are\nfatal errors in one of the included files.\n\n                                       *'g:syntastic_objcpp_compiler_options'*\nType: string\nDefault: unset\nCompilation flags (such as defines or include directories) to be passed to the\nlinter.\n\n                                            *'g:syntastic_objcpp_config_file'*\nType: string\nDefault: unset\nFile containing additional compilation flags to be passed to the linter, one\noption per line (cf. |syntastic-config-files|).\n\n                                           *'g:syntastic_objcpp_include_dirs'*\nType: array of strings\nDefault: []\nInclude directories to be passed to the linter, in addition to the above\ncompilation flags. You can set it like this: >\n    let g:syntastic_objcpp_include_dirs = [\"includes\", \"headers\"]\n<\nand the corresponding \"-Iincludes -Iheaders\" will be added to the compilation\nflags.\n\n                                *'g:syntastic_objcpp_no_default_include_dirs'*\nType: boolean\nDefault: 0\nBy default syntastic adds a number of common include directories to the\ncompilation flags, namely: >\n    -I. -I.. -Iinclude -Iincludes -I../include -I../includes\n<\nYou can disable this behaviour by setting the above variable to 1.\n\n                                                 *'b:syntastic_objcpp_cflags'*\nType: string\nDefault: unset\nBuffer-local variable. Additional compilation flags specific to the current\nbuffer.\n\n                                           *'g:syntastic_objcpp_check_header'*\nType: boolean\nDefault: 0\nIf the current file is a header (namely if its extension is \"h\"), all checks\nare silently skipped. You can force syntastic to check header files by\nsetting the above variable to 1.\n\nNote~\n\nThis checker doesn't call the \"makeprgBuild()\" function, and thus it ignores\nthe usual 'g:syntastic_objcpp_gcc_<option>' variables. The only exception\nis 'g:syntastic_objcpp_gcc_exec', which can still be used to override the\nlinter's executable.\n\nSee also: |syntastic-objc-gcc|.\n\n------------------------------------------------------------------------------\n2. OClint                                            *syntastic-objcpp-oclint*\n\nName:        oclint\nMaintainer:  \"UnCO\" Lin <undercooled@lavabit.com>\n\n\"OClint\" is a static code analysis tool. See the project's page for details:\n\n    http://oclint.org/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                                            'g:syntastic_oclint_config_file'\nType: string\nDefault: unset\nFile containing compilation flags (such as defines or include directories),\none option per line (cf. |syntastic-config-files|).\n\nSee also: |syntastic-objc-oclint|.\n\n==============================================================================\nSYNTAX CHECKERS FOR OCAML                           *syntastic-checkers-ocaml*\n\nThe following checkers are available for OCaml (filetype \"ocaml\"):\n\n    1. camlp4o..................|syntastic-ocaml-camlp4o|\n\n------------------------------------------------------------------------------\n1. camlp4o                                           *syntastic-ocaml-camlp4o*\n\nName:        camlp4o\nMaintainer:  Tőrők Edwin <edwintorok@gmail.com>\n\n\"ocamlc\" is a compiler for Caml. See the project's page for details:\n\n    http://caml.inria.fr/\n\nChecker options~\n                                              *'g:syntastic_ocaml_use_ocamlc'*\nType: boolean\nDefault: 0\nEnable this variable to use \"ocamlc\".\n\n                                     *'g:syntastic_ocaml_use_janestreet_core'*\nType: boolean\nDefault: 0\nIt's possible to use \"ocamlc\" in conjunction with Jane Street's \"core\". In\norder to do that you have to set the above variable.\n\n                                     *'g:syntastic_ocaml_janestreet_core_dir'*\nType: string\nDefault: \".\"\nPath to Jane Street's \"core\".\n\n                                                 *'g:syntastic_ocaml_camlp4r'*\nType: boolean                                                                 \nDefault: 0\nBy default, .ml and .mli files are checked with the \"camlp4o\" preprocessor,\n.mll with \"ocamllex\", and .mly with \"menhir\". If your source code requires\n\"camlp4r\" you can set this variable.\n\n                                          *'g:syntastic_ocaml_use_ocamlbuild'*\nType: boolean                                                                 \nDefault: 0\nWhether to enable typechecking and syntax extensions. This tells syntastic to\nrun \"ocamlbuild <name>.inferred.mli\". It writes object files to the \"_build\"\ndirectory, and possibly rebuilds your \"myocamlbuild.ml\" plugin.  If you are\nusing syntax extensions / external libraries and have a properly set up\n\"_tags\" (and \"myocamlbuild.ml\" file), setting this flag should just work.  For\nbest results your current directory should be the project root (same situation\nif you want useful output from `:make`).\n\nThis checker doesn't call the \"makeprgBuild()\" function, and thus it ignores\nthe usual 'g:syntastic_ocaml_camlp4o_<option>' variables.\n\nNote~\n\nYou might consider using the linters packaged with Merlin instead of this\none. They provide type errors and let you use packages outside core:\n\n    https://github.com/the-lambda-church/merlin\n\n==============================================================================\nSYNTAX CHECKERS FOR PERL                             *syntastic-checkers-perl*\n\nThe following checkers are available for Perl (filetype \"perl\"):\n\n    1. perl.....................|syntastic-perl-perl|\n    2. Perl::Critic.............|syntastic-perl-perlcritic|\n    3. Pod::Checker.............|syntastic-perl-podchecker|\n\n------------------------------------------------------------------------------\n1. perl                                                  *syntastic-perl-perl*\n\nName:        perl\nMaintainers: Anthony Carapetis <anthony.carapetis@gmail.com>\n             Eric Harmon\n\nSecurity~\n\nThis checker runs \"perl -c\" against your files, which in turn executes any\n\"BEGIN\", \"UNITCHECK\", and \"CHECK\" blocks, and any \"use\" statements in your\nfiles (cf. http://perldoc.perl.org/perlrun.html#*-c*). This is probably fine\nif you wrote the file yourself, but it can be a problem if you're trying to\ncheck third party files. If you are 100% willing to let Vim run the code in\nyour files, set 'g:syntastic_enable_perl_checker' to 1 in your vimrc to enable\nthis checker: >\n    let g:syntastic_enable_perl_checker = 1\n<\nThere is also a buffer-local version of this variable, that takes precedence\nover it in the buffers where it is defined.\n\nPlease note that setting this variable doesn't automatically enable the\nchecker, you still need to add it to 'g:syntastic_perl_checkers' if you plan\nto use it.\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                                              *'g:syntastic_perl_interpreter'*\nType: string\nDefault: \"perl\"\nThe perl interpreter to use.\n\n                                                 *'g:syntastic_perl_lib_path'*\nType: list of strings\nDefault: []\nList of include directories to be added to the perl command line. Example: >\n    let g:syntastic_perl_lib_path = [ \"./lib\", \"./lib/auto\" ]\n<\nNote~\n\nThe variable |'g:syntastic_perl_interpreter'| is shared with the YAML::XS\nchecker (cf. |syntastic-yaml-yamlxs|). If for some reasons you don't want to\nuse the same interpreter for both checkers, you can override it locally by\nsetting 'g:syntastic_perl_perl_exec'.\n\n------------------------------------------------------------------------------\n2. Perl::Critic                                    *syntastic-perl-perlcritic*\n\nName:        perlcritic\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"Perl::Critic\" is a static analyzer for Perl. See the project's page for\ndetails:\n\n    http://perlcritic.com/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                                         *'g:syntastic_perl_perlcritic_thres'*\nType: integer\nDefault: 5\nError threshold: policy violations with a severity above this value are\nhighlighted as errors, the others are warnings.\n\nNote~\n\nYou can override the format of \"perlcritic\" messages, for example: >\n    let g:syntastic_perl_perlcritic_post_args =\n        \\ '--verbose \"\\%s:\\%f:\\%l:\\%c: \\%p: \\%m\\n\"'\n<\nJust make sure to leave alone the leading \"\\%s:\\%f:\\%l:\\%c:\".\n\n------------------------------------------------------------------------------\n3. Pod::Checker                                    *syntastic-perl-podchecker*\n\nName:        podchecker\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"Pod::Checker\" is a checker for pod documents. See the module's manual for\ndetails:\n\n    http://perldoc.perl.org/Pod/Checker.html\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nSee also: |syntastic-pod-podchecker|.\n\n==============================================================================\nSYNTAX CHECKERS FOR PHP                               *syntastic-checkers-php*\n\nThe following checkers are available for PHP (filetype \"php\"):\n\n    1. PHP......................|syntastic-php-php|\n    2. PHP_CodeSniffer..........|syntastic-php-phpcs|\n    3. PHPLint..................|syntastic-php-phplint|\n    4. PHP Mess Detector........|syntastic-php-phpmd|\n    5. PHPStan..................|syntastic-php-phpstan|\n\n------------------------------------------------------------------------------\n1. PHP                                                     *syntastic-php-php*\n\nName:        php\nMaintainer:  Martin Grenfell <martin.grenfell@gmail.com>\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n2. PHP_CodeSniffer                                       *syntastic-php-phpcs*\n\nName:        phpcs\nMaintainer:  Martin Grenfell <martin.grenfell@gmail.com>\n\n\"PHP_CodeSniffer\" is a style linter for PHP and CSS. See the project's page\nat GitHub for details:\n\n    https://github.com/squizlabs/PHP_CodeSniffer/\n\nInstallation~\n\nInstall it with: >\n    pear install PHP_CodeSniffer\n<\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nIf you're checking files containing tab characters then \"PHP_CodeSniffer\"'s\nidea of tabstop must match Vim's 'tabstop', otherwise syntastic will highlight\nthe errors at shifted positions. By default syntastic does that by adding\nan option \"--tab-width=&tabstop\" to \"PHP_CodeSniffer\", but that option\nalso instructs \"PHP_CodeSniffer\" to expand tabs, and some code sniffers\n(f.i. \"CakePHP\", see https://github.com/cakephp/cakephp-codesniffer) insist on\nindenting lines with tabs. To work around the resulting mess if you're using\none of these sniffers, set \"--tab-width=0\" and 'tabstop' to 8: >\n    let g:syntastic_php_phpcs_args = \"--tab-width=0\"\n    set tabstop=8\n<\nSee also: |syntastic-css-phpcs|.\n\n------------------------------------------------------------------------------\n3. PHPLint                                             *syntastic-php-phplint*\n\nName:        phplint\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"PHPLint\" is a style linter for PHP. See the project's page for details:\n\n    http://www.icosaedro.it/phplint/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n4. PHP Mess Detector                                     *syntastic-php-phpmd*\n\nName:        phpmd\nMaintainer:  Martin Grenfell <martin.grenfell@gmail.com>\n\n\"PHP Mess Detector\" is a code analyzer for PHP. See the project's page for\ndetails:\n\n    http://phpmd.org\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n5. PHP Static Analysis Tool                            *syntastic-php-phpstan*\n\nName:        phpstan\nMaintainer:  Przepompownia <przepompownia@users.noreply.github.com>\n\n\"PHPStan\" focuses on finding errors in your code without actually running it.\nSee the project's page at GitHub for details:\n\n    https://github.com/phpstan/phpstan\n\nSyntastic supports \"PHPStan\" versions 0.8.5 and later.\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR POD                               *syntastic-checkers-pod*\n\nThe following checkers are available for POD (filetype \"pod\"):\n\n    1. Pod::Checker.............|syntastic-pod-podchecker|\n    2. proselint................|syntastic-pod-proselint|\n\n------------------------------------------------------------------------------\n1. Pod::Checker                                     *syntastic-pod-podchecker*\n\nName:        podchecker\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"Pod::Checker\" is a checker for pod documents.  See the module's manual for\ndetails:\n\n    http://perldoc.perl.org/Pod/Checker.html\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nSee also: |syntastic-perl-podchecker|.\n\n------------------------------------------------------------------------------\n2. proselint                                         *syntastic-pod-proselint*\n\nName:        proselint\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"proselint\" is a linter for prose. See the page for details:\n\n    http://proselint.com/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nSee also: |syntastic-asciidoc-proselint|, |syntastic-help-proselint|,\n|syntastic-html-proselint|, |syntastic-markdown-proselint|,\n|syntastic-nroff-proselint|, |syntastic-rst-proselint|,\n|syntastic-tex-proselint|, |syntastic-texinfo-proselint|,\n|syntastic-text-proselint|, |syntastic-xhtml-proselint|.\n\n==============================================================================\nSYNTAX CHECKERS FOR PUG (FORMERLY JADE)               *syntastic-checkers-pug*\n\nThe following checkers are available for Pug (formerly Jade; filetype \"pug\"):\n\n    1. pug_lint.................|syntastic-pug-pug_lint|\n\n------------------------------------------------------------------------------\n1. pug_lint                                           *syntastic-pug-pug_lint*\n\nName:        pug_lint\nMaintainer:  Ben Parnell <benjaminparnell.94@gmail.com>\n\n\"pug-lint\" is a linter and style linter for Pug (formerly known as \"Jade\";\nhttp://jade-lang.com/). See the project's page at GitHub for details:\n\n    https://github.com/pugjs/pug-lint\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR PUPPET                         *syntastic-checkers-puppet*\n\nThe following checkers are available for Puppet (filetype \"puppet\"):\n\n    1. puppet...................|syntastic-puppet-puppet|\n    2. puppet-lint..............|syntastic-puppet-puppetlint|\n\n------------------------------------------------------------------------------\n1. puppet                                            *syntastic-puppet-puppet*\n\nName:        puppet\nMaintainer:  Eivind Uggedal <eivind@uggedal.com>\n\n\"Puppet\" is an automated administrative engine for UNIX systems.  See the\nproject's page for details:\n\n    http://projects.puppetlabs.com/projects/puppet\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nYou probably also need a plugin to set |filetype| for Puppet files, such as\n\"vim-puppet\":\n\n    https://github.com/rodjek/vim-puppet\n\n------------------------------------------------------------------------------\n2. puppet-lint                                   *syntastic-puppet-puppetlint*\n\nName:        puppetlint\nMaintainer:  Eivind Uggedal <eivind@uggedal.com>\n\n\"puppet-lint\" is a style linter for puppet manifests\n(http://projects.puppetlabs.com/projects/puppet).  See the project's page for\ndetails:\n\n    http://puppet-lint.com/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nYou probably also need a plugin to set |filetype| for Puppet files, such as\n\"vim-puppet\":\n\n    https://github.com/rodjek/vim-puppet\n\n==============================================================================\nSYNTAX CHECKERS FOR PYTHON                         *syntastic-checkers-python*\n\nThe following checkers are available for Python (filetype \"python\"):\n\n    1. Bandit...................|syntastic-python-bandit|\n    2. flake8...................|syntastic-python-flake8|\n    3. Frosted..................|syntastic-python-frosted|\n    4. mypy.....................|syntastic-python-mypy|\n    5. Prospector...............|syntastic-python-prospector|\n    6. py3kwarn.................|syntastic-python-py3kwarn|\n    7. pycodestyle..............|syntastic-python-pycodestyle|\n    8. pydocstyle...............|syntastic-python-pydocstyle|\n    9. Pyflakes.................|syntastic-python-pyflakes|\n    10. Pylama..................|syntastic-python-pylama|\n    11. Pylint..................|syntastic-python-pylint|\n    12. python..................|syntastic-python-python|\n\n------------------------------------------------------------------------------\n1. Bandit                                            *syntastic-python-bandit*\n\nName:        bandit\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"Bandit\" is an AST-based static analyzer for Python from OpenStack Security\nGroup (http://openstack.org). See the project's official documentation for\ndetails:\n\n    https://wiki.openstack.org/wiki/Security/Projects/Bandit\n\nInstallation~\n\nInstall it with \"pip\": >\n    pip install bandit\n<\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nIn order to check all files in a project, rather than the current file: >\n    let g:syntastic_python_bandit_fname = ['/path/to/project']\n    let g:syntastic_python_bandit_args = '-r'\n<\n------------------------------------------------------------------------------\n2. flake8                                            *syntastic-python-flake8*\n\nName:        flake8\nMaintainers: Sylvain Soliman <Sylvain.Soliman+git@gmail.com>\n             kstep <me@kstep.me>\n\n\"Flake8\" is a wrapper around PyFlakes (https://launchpad.net/pyflakes), pep8\n(https://github.com/jcrocholl/pep8), and Ned Batchelder's McCabe script\n(http://nedbatchelder.com/blog/200803/python_code_complexity_microtool.html). \nSee the project's page and the official docs for details:\n\n    https://gitlab.com/pycqa/flake8\n    http://flake8.readthedocs.org/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n3. Frosted                                          *syntastic-python-frosted*\n\nName:        frosted\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"Frosted\" is a fork of pyflakes (https://launchpad.net/pyflakes). See the\nproject's page for details:\n\n    https://github.com/timothycrosley/frosted\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n4. mypy                                                *syntastic-python-mypy*\n\nName:        mypy\nMaintainer:  Russ Hewgill <Russ.Hewgill@gmail.com>\n\n\"mypy\" is a static type linter for Python. See the project's page for\ndetails:\n\n    http://www.mypy-lang.org/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n5. Prospector                                    *syntastic-python-prospector*\n\nName:        prospector\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"Prospector\" is a static analysis tool for Python. It brings\ntogether the functionality of other tools such as pylint\n(http://www.pylint.org/), pyflakes (https://launchpad.net/pyflakes),\npep8 (https://github.com/jcrocholl/pep8), pydocstyle (formerly\n\"pep257\"; https://github.com/PyCQA/pydocstyle), and McCabe complexity\n(http://nedbatchelder.com/blog/200803/python_code_complexity_microtool.html).\nSee the project's official documentation for details:\n\n    http://prospector.readthedocs.org/en/latest/\n\nSyntastic supports \"Prospector\" versions 0.7 and later.\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n6. py3kwarn                                        *syntastic-python-py3kwarn*\n\nName:        py3kwarn\nAuthor: Liam Curry <liam@curry.name>\n\n\"Py3kwarn\" is a code linter for Python that detects incompatibilities with\nPython 3. See the project's page for details:\n\n    https://github.com/liamcurry/py3kwarn\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n7. pycodestyle                                  *syntastic-python-pycodestyle*\n\nName:        pycodestyle\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"pycodestyle\" (formerly \"pep8\") is a style linter for Python, derived from\nthe conventions in PEP 8 (http://www.python.org/dev/peps/pep-0008/). See the\nproject's page for details:\n\n    https://github.com/PyCQA/pycodestyle\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n8. pydocstyle                                    *syntastic-python-pydocstyle*\n\nName:        pydocstyle\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"pydocstyle\" (formerly \"pep257\") is a docstring style linter\nfor Python, derived from the conventions established in PEP 257\n(http://www.python.org/dev/peps/pep-0257/). See the project's page for\ndetails:\n\n    https://github.com/PyCQA/pydocstyle\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n9. Pyflakes                                        *syntastic-python-pyflakes*\n\nName:        pyflakes\nAuthors:     Martin Grenfell <martin.grenfell@gmail.com>\n             kstep <me@kstep.me>\n             Parantapa Bhattacharya <parantapa@gmail.com>\n\n\"Pyflakes\" is a simple code linter for Python.  See the project's page for\nmore information:\n\n    https://launchpad.net/pyflakes\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n10. Pylama                                           *syntastic-python-pylama*\n\nName:        pylama\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"Pylama\" is a wrapper around pep8 (https://github.com/jcrocholl/pep8),\npydocstyle (formerly \"pep257\"; https://github.com/PyCQA/pydocstyle),\nPyflakes (https://launchpad.net/pyflakes),\nPylint (http://www.pylint.org/), and Ned Batchelder's McCabe script\n(http://nedbatchelder.com/blog/200803/python_code_complexity_microtool.html).\nSee the project's page for details:\n\n    https://github.com/klen/pylama\n\nNote~\n\nThe Pylint backend requires you to install \"pylama_pylint\":\n\n    https://github.com/klen/pylama_pylint\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n11. Pylint                                           *syntastic-python-pylint*\n\nName:        pylint\nAuthor: Parantapa Bhattacharya <parantapa@gmail.com>\n\n\"Pylint\" is a code linter for Python. See the project's page for details:\n\n    http://www.pylint.org/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNotes~\n\nOn OS X you need to set the environment variable \"LC_CTYPE\" to \"UTF-8\"\nbefore running Vim: >\n    LC_CTYPE=en_US.UTF-8\n    export LC_CTYPE\n<\nSeveral people have expressed interest in showing the old message IDs\nalong with the error messages. You can override the message format in\n'g:syntastic_python_pylint_post_args'. Please note that the new format must\nstart with \"{path}:{line}:{column}:{C}: \", otherwise syntastic will not\nrecognise any messages. Example: >\n    let g:syntastic_python_pylint_post_args =\n        \\ '--msg-template=\"{path}:{line}:{column}:{C}: [{symbol} {msg_id}] {msg}\"'\n<\n------------------------------------------------------------------------------\n12. python                                           *syntastic-python-python*\n\nName:        python\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\nThis checker uses Python's builtin \"compile()\" function for detecting syntax\nerrors.\n\nSyntastic requires Python version 2.6 or later.\n\nCodecs~\n\nIn Python you have the ability to specify a particular codec at the top of\nthe file with a special comment that looks something like this: >\n    # coding: spec\n<\nFurther references:\n\n    https://docs.python.org/reference/lexical_analysis.html#encoding-declarations\n\nPython will see this comment at import time and use the corresponding codec to\ntransform the file before using it. The \"python\" checker has an option\n|'g:syntastic_python_python_use_codec'| that will make syntastic aware of such\ncomments before running compiler checks on the file.\n\nPlease note that transforming a file like this affects line numbers and\ncolumn numbers, and syntastic has no way to make the necessary adjustments.\nConsequently, errors might appear on surprising lines if you enable this\nfeature and the transformed file has code on different lines than the raw\nfile. For this reason the use of these transformations should be limited\nto codecs that preserve line numbers, such as the \"spec\" codec provided by\n\"NoseOfYeti\":\n\n    https://noseofyeti.readthedocs.org/en/latest/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                                       *'g:syntastic_python_python_use_codec'*\nType: boolean\nDefault: 0\nEnables handling of \"# coding: spec\" comments.\n\n==============================================================================\nSYNTAX CHECKERS FOR QML                               *syntastic-checkers-qml*\n\nThe following checkers are available for QML (filetype \"qml\"):\n\n    1. qmllint..................|syntastic-qml-qmllint|\n\n------------------------------------------------------------------------------\n1. qmllint                                             *syntastic-qml-qmllint*\n\nName:        qmllint\nMaintainer:  Peter Wu <peter@lekensteyn.nl>\n\n\"qmllint\" is a QML syntax verifier. It was introduced with Qt 5.4 (cf.\nhttps://www.kdab.com/kdab-contributions-qt-5-4-qmllint/) as part of Qt\nDeclarative:\n\n    https://code.qt.io/cgit/qt/qtdeclarative.git/tree/tools/qmllint\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR R                                   *syntastic-checkers-r*\n\nThe following checkers are available for R (filetype \"r\"):\n\n    1. lintr....................|syntastic-r-lintr|\n    2. svtools..................|syntastic-r-svtools|\n\n------------------------------------------------------------------------------\n1. lintr                                                   *syntastic-r-lintr*\n\nName:        lintr\nMaintainer:  Jim Hester <james.f.hester@gmail.com>\n\n\"lintr\" is a static code analysis tool for R files. See the project's page at\nGitHub for details:\n\n    https://github.com/jimhester/lintr\n\nSecurity~\n\nThis checker executes parts of the files it checks. This is probably fine if\nyou wrote the file yourself, but it can be a problem if you're trying to check\nthird party files. If you are 100% willing to let Vim run the code in your\nfile, set 'g:syntastic_enable_r_lintr_checker' to 1 in your vimrc to enable\nthis checker: >\n    let g:syntastic_enable_r_lintr_checker = 1\n<\nThere is also a buffer-local version of this variable, that takes precedence\nover it in the buffers where it is defined.\n\nPlease note that setting this variable doesn't automatically enable the\nchecker, you still need to add \"lintr\" to 'g:syntastic_r_checkers' if you plan\nto use it.\n\nChecker Options~\n                                               *'g:syntastic_r_lintr_linters'*\nType: string\nDefault: \"default_linters\"\nWhich \"lintr\" linters to apply to your code.\n\n                                                 *'g:syntastic_r_lintr_cache'*\nType: string\nDefault: \"FALSE\"\nWhether to use the lintr cache. This speeds up linting time, but can introduce\nfalse positives in some cases.\n\nNote~\n\nThis checker doesn't call the \"makeprgBuild()\" function, and thus it ignores\nthe usual 'g:syntastic_r_lintr_<option>' variables. The only exception is\n'g:syntastic_r_lintr_exec', which can still be used to override the \"R\"\nexecutable.\n\nSee also: |syntastic-rmd-lintr|.\n\n------------------------------------------------------------------------------\n2. svtools                                               *syntastic-r-svtools*\n\nName:        svtools\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\nThis is a linter for R files, using the R package \"svTools\":\n\n    http://cran.r-project.org/web/packages/svTools/\n\nIn turn, this package delegates most of the work to the \"checkUsage()\"\nfunction in the \"codetools\" package:\n\n    http://cran.r-project.org/web/packages/codetools/\n\nSecurity~\n\nThis checker executes parts of the files it checks. This is probably fine if\nyou wrote the file yourself, but it can be a problem if you're trying to check\nthird party files. If you are 100% willing to let Vim run the code in your\nfile, set 'g:syntastic_enable_r_svtools_checker' to 1 in your vimrc to enable\nthis checker: >\n    let g:syntastic_enable_r_svtools_checker = 1\n<\nThere is also a buffer-local version of this variable, that takes precedence\nover it in the buffers where it is defined.\n\nPlease note that setting this variable doesn't automatically enable the\nchecker, you still need to add \"svtools\" to 'g:syntastic_r_checkers' if you\nplan to use it.\n\nNote~\n\nThis checker doesn't call the \"makeprgBuild()\" function, and thus it ignores\nthe usual 'g:syntastic_r_svtools_<option>' variables. The only exception is\n'g:syntastic_r_svtools_exec', which can still be used to override the \"R\"\nexecutable.\n\nLimitations~\n\n\"svTools\" version 0.9-4 (current at the time of this writing) has a number\nof problems that prevents it from checking most sources. You might consider\napplying this patch as a workaround:\n\n    https://gist.github.com/lcd047/9988687#file-svtools-patch\n\nAt the time of this writing \"svTools\" doesn't produce meaningful column\nnumbers (the column numbers are always set to 1). The patch mentioned above\nenables \"svTools\" to produce more useful column numbers, but only for syntax\nerrors. If you apply the said patch and you're checking files containing\ntab characters Vim's 'tabstop' must match \"R\"'s idea of tabstop, otherwise\ncolumn numbers will be shifted. At the time of this writing \"R\"'s tabstop is\nhardcoded to 8, so you should probably add something like this to your vimrc: >\n    set tabstop=8\n<\n==============================================================================\nSYNTAX CHECKERS FOR R MARKDOWN                        *syntastic-checkers-rmd*\n\nThe following checkers are available for R Markdown (filetype \"rmd\"):\n\n    1. lintr....................|syntastic-rmd-lintr|\n\n------------------------------------------------------------------------------\n1. lintr                                                 *syntastic-rmd-lintr*\n\nName:        lintr\nMaintainer:  Jim Hester <james.f.hester@gmail.com>\n\n\"lintr\" is a static code analysis tool for R files.  See the project's page at\nGitHub for details:\n\n    https://github.com/jimhester/lintr\n\nSecurity~\n\nThis checker executes parts of the files it checks. This is probably fine if\nyou wrote the file yourself, but it can be a problem if you're trying to check\nthird party files. If you are 100% willing to let Vim run the code in your\nfile, set 'g:syntastic_enable_r_lintr_checker' to 1 in your vimrc to enable\nthis checker: >\n    let g:syntastic_enable_r_lintr_checker = 1\n<\nThere is also a buffer-local version of this variable, that takes precedence\nover it in the buffers where it is defined.\n\nPlease note that setting this variable doesn't automatically enable the\nchecker, you still need to add \"lintr\" to 'g:syntastic_rmd_checkers' if you\nplan to use it.\n\nChecker Options~\n                                               'g:syntastic_r_lintr_linters'\nType: string\nDefault: \"default_linters\"\nWhich \"lintr\" linters to apply to your code.\n\n                                                 'g:syntastic_r_lintr_cache'\nType: string\nDefault: \"FALSE\"\nWhether to use the lintr cache. This speeds up linting time, but can introduce\nfalse positives in some cases.\n\nNote~\n\nThis checker doesn't call the \"makeprgBuild()\" function, and thus it ignores\nthe usual 'g:syntastic_rmd_lintr_<option>' variables. The only exception is\n'g:syntastic_rmd_lintr_exec', which can still be used to override the \"R\"\nexecutable.\n\nSee also: |syntastic-r-lintr|.\n\n==============================================================================\nSYNTAX CHECKERS FOR RACKET                         *syntastic-checkers-racket*\n\nThe following checkers are available for Racket (filetype \"racket\"):\n\n    1. code-ayatollah...........|syntastic-racket-code-ayatollah|\n    2. racket...................|syntastic-racket-racket|\n\n------------------------------------------------------------------------------\n1. code-ayatollah                            *syntastic-racket-code-ayatollah*\n\nName:        code_ayatollah\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\nInstallation~\n\nDownload \"code-ayatollah.rkt\" (http://tmp.barzilay.org/code-ayatollah.rkt)\nand point 'g:syntastic_racket_code_ayatollah_script' to it: >\n    let g:syntastic_racket_code_ayatollah_script = \"/path/to/code-ayatollah.rkt\"\n<\nOf course, you also need \"racket\" (http://racket-lang.org/).\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n2. racket                                            *syntastic-racket-racket*\n\nName:        racket\nMaintainer:  Steve Bragg <steve@empresseffects.com>\n\nSecurity~\n\nThis checker executes the code in the files it checks:\n\n    https://github.com/vim-syntastic/syntastic/issues/1773\n\nThis is probably fine if you wrote the files yourself, but it can be a problem\nif you're trying to check third party files. If you are 100% willing to let\nVim run the code in your files, set 'g:syntastic_enable_racket_racket_checker'\nto 1 in your vimrc to enable this checker: >\n    let g:syntastic_enable_racket_racket_checker = 1\n<\nThere is also a buffer-local version of this variable, that takes precedence\nover a global one in the buffers where it is defined.\n\nPlease note that setting this variable doesn't automatically enable the\nchecker, you still need to add \"racket\" to 'g:syntastic_racket_checkers' if\nyou plan to use it.\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR RAKU                             *syntastic-checkers-raku*\n\nThe following checkers are available for Raku (filetype \"raku\"):\n\n    1. Raku.....................|syntastic-raku-raku|\n\n------------------------------------------------------------------------------\n1. Raku                                                  *syntastic-raku-raku*\n\nName:        raku\nMaintainers: Claudio Ramirez <pub.claudio@gmail.com>\n\n\"raku\" is a checker for Raku files using the \"Rakudo\" compiler. See the\nproject's page for details:\n\n    http://rakudo.org/\n\nSyntastic requires Rakudo Star release 2018.08 or later. Syntastic can't\nenforce this, since it can't reliably compare Rakudo Star versions.\n\nSecurity~\n\nThis checker runs \"raku -c\" against your files, which executes any \"BEGIN\" and\n\"CHECK\" blocks (cf. https://docs.raku.org/programs/03-environment-variables).\nThis is probably fine if you wrote the files yourself, but it can be a problem\nif you're trying to check third party files. If you are 100% willing to let\nVim run the code in your files, set 'g:syntastic_enable_raku_checker' to 1 in\nyour vimrc to enable this checker: >\n    let g:syntastic_enable_raku_checker = 1\n<\nThere is also a buffer-local version of this variable, that takes precedence\nover it in the buffers where it is defined.\n\nPlease note that setting this variable doesn't automatically enable the\nchecker, you still need to add it to 'g:syntastic_raku_checkers' if you plan\nto use it.\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at syntastic-config-makeprg.\n\nAdditionally:\n\n                                                 *'g:syntastic_raku_lib_path'*\nType: list of strings\nDefault: []\nList of include directories to be added to the raku command line. Example: >\n    let g:syntastic_raku_lib_path = [ \"./lib\", \"./lib/auto\" ]\n<\nYou can also set the \"RAKULIB\" environment variable to a colon-separated\nlist of add-hoc include paths. These paths will then be added to the ones\nprescribed by |'g:syntastic_raku_lib_path'|.\n\n==============================================================================\nSYNTAX CHECKERS FOR RELAX NG                          *syntastic-checkers-rnc*\n\nThe following checkers are available for Relax NG (filetype \"rnc\"):\n\n    1. rnv......................|syntastic-rnc-rnv|\n\n------------------------------------------------------------------------------\n1. rnv                                                     *syntastic-rnc-rnv*\n\nName:        rnv\nMaintainer:  Remko Tronçon <remko@el-tramo.be>\n\n\"RNV\" is an implementation of Relax NG Compact Syntax validator (cf.\nhttp://relaxng.org/compact-20021121.html). See the project's page for\ndetails:\n\n    http://www.davidashen.net/rnv.html\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR RESTRUCTUREDTEXT                  *syntastic-checkers-rst*\n\nThe following checkers are available for reStructuredText (filetype \"rst\"):\n\n    1. proselint................|syntastic-rst-proselint|\n    2. rst2pseudoxml............|syntastic-rst-rst2pseudoxml|\n    3. rstcheck.................|syntastic-rst-rstcheck|\n    4. Sphinx...................|syntastic-rst-sphinx|\n\n------------------------------------------------------------------------------\n1. proselint                                         *syntastic-rst-proselint*\n\nName:        proselint\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"proselint\" is a linter for prose. See the page for details:\n\n    http://proselint.com/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nSee also: |syntastic-asciidoc-proselint|, |syntastic-help-proselint|,\n|syntastic-html-proselint|, |syntastic-markdown-proselint|,\n|syntastic-nroff-proselint|, |syntastic-pod-proselint|,\n|syntastic-tex-proselint|, |syntastic-texinfo-proselint|,\n|syntastic-text-proselint|, |syntastic-xhtml-proselint|.\n\n------------------------------------------------------------------------------\n2. rst2pseudoxml                                 *syntastic-rst-rst2pseudoxml*\n\nName:        rst2pseudoxml\nMaintainer:  James Rowe <jnrowe@gmail.com>\n\n\"rst2pseudoxml\" is part of the Python package Docutils:\n\n    http://docutils.sourceforge.net/\n\nWe use \"rst2pseudoxml\", as it is ever so marginally faster than the other\n\"rst2${x}\" tools in docutils.\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n3. rstcheck                                           *syntastic-rst-rstcheck*\n\nName:        rstcheck\nMaintainer:  Steven Myint <git@stevenmyint.com>\n\n\"rstcheck\" is a linter for reStructuredText files. See the project's page at\nGitHub for details:\n\n    https://github.com/myint/rstcheck\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n4. Sphinx                                               *syntastic-rst-sphinx*\n\nName:        sphinx\nMaintainer:  Buck Evan <buck@yelp.com>\n\n\"Sphinx\" is a linter for documentation files written in the Sphinx dialect\nof reStructuredText, using the \"pseudoxml\" builder of \"sphinx-build\". See the\nproject's page for details:\n\n    http://sphinx-doc.org/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                                         *'g:syntastic_rst_sphinx_source_dir'*\nType: string\nDefault: unset\nBase directory of the project being checked.\n\n                                         *'g:syntastic_rst_sphinx_config_dir'*\nType: string\nDefault: unset\nDirectory containing the \"conf.py\" file.\n\nNotes~\n\nThe checker needs to know two paths to run: the source directory where the\nproject's files are located, and the directory where the configuration file\n\"conf.py\" is located. By default it looks for \"conf.py\" in the base directory\nof the current file, then upwards in parent directories. If a configuration\nfile is found and the file is readable, its base directory is assumed to be\nboth the source directory and the configuration directory of the project.\n\nIf syntastic can't determine the source directory or the configuration\ndirectory, or if you want to override the autodetected paths, options\n|'g:syntastic_rst_sphinx_source_dir'| and |'g:syntastic_rst_sphinx_config_dir'|\ntake precedence over the detected values.\n\nPlease note also that the checker creates output files in a temporary directory\nthat is created upon the first run in the current session, and is removed when\nVim exits. If you need to change the location of this directory you can do\nso by exporting the environment variables \"TMPDIR\" or \"TMP\" (on UNIX and Mac\nOS-X), or \"TEMP\" (on Windows) before running Vim. Various index files are also\ncached in this directory, so it might be advantageous to avoid quitting Vim\nbetween checker runs.\n\n==============================================================================\nSYNTAX CHECKERS FOR RPM SPEC                         *syntastic-checkers-spec*\n\nThe following checkers are available for Linux RPM packages (filetype \"spec\"):\n\n    1. rpmlint..................|syntastic-spec-rpmlint|\n\n------------------------------------------------------------------------------\n1. rpmlint                                            *syntastic-spec-rpmlint*\n\nName:        rpmlint\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"rpmlint\" is a tool for checking Linux RPM packages. See the project's page\nfor details:\n\n    http://sourceforge.net/projects/rpmlint/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR RUBY                             *syntastic-checkers-ruby*\n\nThe following checkers are available for Ruby (filetype \"ruby\"):\n\n    1. Flog.....................|syntastic-ruby-flog|\n    2. JRuby....................|syntastic-ruby-jruby|\n    3. MacRuby..................|syntastic-ruby-macruby|\n    4. MRI......................|syntastic-ruby-mri|\n    5. reek.....................|syntastic-ruby-reek|\n    6. RuboCop..................|syntastic-ruby-rubocop|\n    7. Ruby-lint................|syntastic-ruby-rubylint|\n    8. Sorbet...................|syntastic-ruby-sorbet|\n\n------------------------------------------------------------------------------\n1. Flog                                                  *syntastic-ruby-flog*\n\nName:        flog\nMaintainer:  Tim Carry <tim@pixelastic.com>\n\n\"Flog\" is a complexity linter for Ruby files. See the project's page for\ndetails:\n\n    http://ruby.sadi.st/Flog.html\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                                   *'g:syntastic_ruby_flog_threshold_warning'*\nType: number\nDefault: 45\nThreshold for warnings. Functions with complexity below this number are not\nflagged as either errors or warnings.\n\n                                     *'g:syntastic_ruby_flog_threshold_error'*\nType: number\nDefault: 90\nThreshold for errors. Functions with complexity above this number are flagged\nas errors.\n\n\nNote~\n\n\"Flog\" reports complexity values as floating point numbers. If your Vim is\nnot compiled with the \"+float\" feature, both the numbers reported by flog and\nthe two options above are rounded by syntastic towards zero (that is, \"39.9\"\nis taken as \"39\").\n\n------------------------------------------------------------------------------\n2. JRuby                                                *syntastic-ruby-jruby*\n\nName:        jruby\nMaintainer:  Leonid Shevtsov <leonid@shevtsov.me>\n\n\"JRuby\" is a Java implementation of the Ruby programming language. See the\nproject's page for details:\n\n    http://jruby.org/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n3. MacRuby                                            *syntastic-ruby-macruby*\n\nName:        macruby\nMaintainer:  Martin Grenfell <martin.grenfell@gmail.com>\n\n\"MacRuby\" is an implementation of Ruby for Mac OS X. See the project's\npage for details:\n\n    http://www.macruby.org/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n4. MRI                                                    *syntastic-ruby-mri*\n\nName:        mri\nMaintainer:  Martin Grenfell <martin.grenfell@gmail.com>\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                                                     *'g:syntastic_ruby_exec'*\nType: string\nDefault: unset\nRuby executable. This is a convenience variable shared with the eRuby checker\n\"Ruby\" (cf. |syntastic-eruby-ruby|). Used only if 'g:syntastic_ruby_mri_exec'\nis unset.\n\n------------------------------------------------------------------------------\n5. Reek                                                  *syntastic-ruby-reek*\n\nName:        reek\nMaintainer:  Mindaugas Mozūras\n\n\"Reek\" is a code smell detection tool for Ruby. See the project's page at\nGitHub for details:\n\n    https://github.com/troessner/reek\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n6. RuboCop                                            *syntastic-ruby-rubocop*\n\nName:        rubocop\nMaintainer:  Recai Oktaş <roktas@bil.omu.edu.tr>\n\n\"RuboCop\" is a style linter for Ruby. See the project's page for details:\n\n    https://github.com/bbatsov/rubocop\n\nSyntastic requires \"RuboCop\" version 0.12.0 or later.\n\nRunning \"RuboCop\" under development versions of \"Ruby\" is explicitly NOT\nsupported.\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNotes~\n\nMost issues returned by \"rubocop\" are warnings, so for best results your\n|'syntastic_quiet_messages'| should not filter out warnings.\n\nIf the \"RuboCop\" checker is not enabled automatically by syntastic try\nrunning \"rubocop --version\" from the shell. If it complains about \"Parser\"\n(see https://github.com/whitequark/parser) expecting a different version of\n\"Ruby\" than you are running, your configuration is not directly supported by\nsyntastic.\n\nWhile passing around the blame for this does have a certain entertaining\nvalue (cf. https://github.com/bbatsov/rubocop/issues/1819), the problem\nis real, since \"Ruby\" syntax did change between versions. The solution\nis to run a version manager such as \"rbenv\" (http://rbenv.org/) or \"rvm\"\n(https://rvm.io/), that allows you to run multiple versions of \"Ruby\" without\nconflicts: >\n    $ rbenv version\n    2.1.3 (set by /usr/local/var/rbenv/version)\n    \n    $ rubocop --version\n    warning: parser/current is loading parser/ruby21, which recognizes\n    warning: 2.1.2-compliant syntax, but you are running 2.1.3.\n    0.26.1\n    \n    $ rbenv shell 2.1.2\n    \n    $ rubocop --version\n    0.26.1\n<\nAlternatively, if you absolutely must do it the wrong way, you can\nalso install a wrapper script that kills the version warning and point\n'g:syntastic_ruby_rubocop_exec' to it:\n\n    https://gist.github.com/lcd047/96138909015f2f8d2d36\n\n------------------------------------------------------------------------------\n7. Ruby-lint                                         *syntastic-ruby-rubylint*\n\nName:        rubylint\nMaintainer:  Yorick Peterse <yorickpeterse@gmail.com>\n\n\"Ruby-lint\" is a linter and static code analysis tool for Ruby. See the\nproject's page for details:\n\n    https://github.com/YorickPeterse/ruby-lint\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nIf the \"rubylint\" checker is not enabled automatically by syntastic, try\nrunning \"ruby-lint --version\" from the shell. If it complains about \"Parser\"\n(see https://github.com/whitequark/parser) expecting a different version of\n\"Ruby\" than you are running, your configuration is not directly supported by\nsyntastic.\n\nWhile passing around the blame for this does have a certain entertaining\nvalue (cf. https://github.com/bbatsov/rubocop/issues/1819), the problem\nis real, since \"Ruby\" syntax did change between versions. The solution\nis to run a version manager such as \"rbenv\" (http://rbenv.org/) or \"rvm\"\n(https://rvm.io/), that allows you to run multiple versions of \"Ruby\" without\nconflicts: >\n    $ rbenv version\n    2.1.3 (set by /usr/local/var/rbenv/version)\n    \n    $ ruby-lint --version\n    warning: parser/current is loading parser/ruby21, which recognizes\n    warning: 2.1.2-compliant syntax, but you are running 2.1.3.\n    ruby-lint v2.0.4 on ruby 2.1.3 [i486-linux]\n    \n    $ rbenv shell 2.1.2\n    \n    $ ruby-lint --version\n    ruby-lint v2.0.4 on ruby 2.1.2 [i486-linux]\n<\nAlternatively, if you absolutely must do it the wrong way, you can\nalso install a wrapper script that kills the version warning and point\n'g:syntastic_ruby_rubylint_exec' to it:\n\n    https://gist.github.com/lcd047/492245d9923af45fb964\n\n------------------------------------------------------------------------------\n8. Sorbet                                              *syntastic-ruby-sorbet*\n\nName:        sorbet\nMaintainer:  Tom Morton\n\nSorbet is a static analysis and gradual typing tool for Ruby. See the\nproject's page at GitHub for details:\n\n    https://github.com/sorbet/sorbet\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR SASS                             *syntastic-checkers-sass*\n\nThe following checkers are available for SASS (filetype \"sass\"):\n\n    1. Sass.....................|syntastic-sass-sass|\n    2. Sass Lint................|syntastic-sass-sass_lint|\n    3. SassC....................|syntastic-sass-sassc|\n\n------------------------------------------------------------------------------\n1. Sass                                                  *syntastic-sass-sass*\n\nName:        sass\nMaintainer:  Martin Grenfell <martin.grenfell@gmail.com>\n\n\"Sass\" is a translator for SASS. See the project's page for details:\n\n    http://sass-lang.com/\n\nInstallation~\n\nInstall it with \"gem\": >\n    gem install sass\n<\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nSee also: |syntastic-scss-sass|.\n\n------------------------------------------------------------------------------\n2. Sass Lint                                        *syntastic-sass-sass_lint*\n\nName:        sass_lint\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"Sass Lint\" is a linter for SASS and SCSS files. See the project's page for\ndetails:\n\n    https://github.com/sasstools/sass-lint\n\nSyntastic requires \"Sass Lint\" version 1.5.0 or later.\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nSee also: |syntastic-scss-sass_lint|.\n\n------------------------------------------------------------------------------\n3. SassC                                                *syntastic-sass-sassc*\n\nName:        sassc\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"SassC\" is a linter for SASS and SCSS files, based on the \"libsass\" library\n(https://github.com/hcatlin/libsass). See the project's page for details:\n\n    https://github.com/hcatlin/sassc\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nSee also: |syntastic-scss-sassc|.\n\n==============================================================================\nSYNTAX CHECKERS FOR SCALA                           *syntastic-checkers-scala*\n\nThe following checkers are available for Scala (filetype \"scala\"):\n\n    1. fsc......................|syntastic-scala-fsc|\n    2. scalac...................|syntastic-scala-scalac|\n    3. Scalastyle...............|syntastic-scala-scalastyle|\n\n------------------------------------------------------------------------------\n1. fsc                                                   *syntastic-scala-fsc*\n\nName:        fsc\nMaintainer:  Gregor Uhlenheuer <kongo2002@gmail.com>\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n2. scalac                                             *syntastic-scala-scalac*\n\nName:        scalac\nMaintainer:  Rickey Visinski <rickeyvisinski@gmail.com>\n\n\"scalac\" is a compiler for Scala. See the project's page for more information:\n\n    http://docs.scala-lang.org\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n3. Scalastyle                                     *syntastic-scala-scalastyle*\n\nName:        scalastyle\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"Scalastyle\" is a style linter for Scala. See the project's page for\ndetails:\n\n    http://www.scalastyle.org/\n\nSyntastic uses the command line version of \"Scalastyle\":\n\n    http://www.scalastyle.org/command-line.html\n\nYou need a working installation of Java Runtime Environment to run\n\"Scalastyle\".\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                                          *'g:syntastic_scala_scalastyle_jar'*\nType: string\nDefault: \"scalastyle-batch_2.10.jar\"\nPath to the \"scalastyle-batch\" jar file. You might want to set this to a full\npath.\n\n                                  *'g:syntastic_scala_scalastyle_config_file'*\nType: string\nDefault: \"scalastyle_config.xml\"\nPath to the configuration file to use. You might want to also set this to a\nfull path.\n\n                                         *'g:syntastic_scala_scalastyle_exec'*\nType: string\nDefault: \"java\"\nPath to the \"java\" executable.\n\n==============================================================================\nSYNTAX CHECKERS FOR SCSS                             *syntastic-checkers-scss*\n\nThe following checkers are available for SCSS (filetype \"scss\"):\n\n    1. mixedindentlint..........|syntastic-scss-mixedindentlint|\n    2. Sass.....................|syntastic-scss-sass|\n    3. Sass Lint................|syntastic-scss-sass_lint|\n    4. SassC....................|syntastic-scss-sassc|\n    5. SCSS-lint................|syntastic-scss-scss_lint|\n\n------------------------------------------------------------------------------\n1. mixedindentlint                            *syntastic-scss-mixedindentlint*\n\nName:        mixedindentlint\nMaintainer:  Payton Swick <payton@foolord.com>\n\n\"mixedindentlint\" is a general-purpose indentation linter. See the project's\npage at GitHub for more information:\n\n    https://github.com/sirbrillig/mixedindentlint\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nSee also: |syntastic-css-mixedindentlint|, |syntastic-javascript-mixedindentlint|.\n\n------------------------------------------------------------------------------\n2. Sass                                                  *syntastic-scss-sass*\n\nName:        sass\nMaintainer:  Martin Grenfell <martin.grenfell@gmail.com>\n\n\"Sass\" is a translator for SASS. See the project's page for details:\n\n    http://sass-lang.com/\n\nInstallation~\n\nInstall it with \"gem\": >\n    gem install sass\n<\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nSee also: |syntastic-sass-sass|.\n\n------------------------------------------------------------------------------\n3. Sass Lint                                        *syntastic-scss-sass_lint*\n\nName:        sass_lint\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"Sass Lint\" is a linter for SASS and SCSS files. See the project's page for\ndetails:\n\n    https://github.com/sasstools/sass-lint\n\nSyntastic requires \"Sass Lint\" version 1.5.0 or later.\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nSee also: |syntastic-sass-sass_lint|.\n\n------------------------------------------------------------------------------\n4. SassC                                                *syntastic-scss-sassc*\n\nName:        sassc\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\n\"SassC\" is a linter for SASS and SCSS files, based on the \"libsass\" library\n(https://github.com/hcatlin/libsass). See the project's page for details:\n\n    https://github.com/hcatlin/sassc\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nSee also: |syntastic-sass-sassc|.\n\n------------------------------------------------------------------------------\n5. SCSS-lint                                        *syntastic-scss-scss_lint*\n\nName:        scss_lint\nMaintainer:  Shane da Silva <shane@dasilva.io>\n\n\"SCSS-Lint\" is a lint tool for SCSS. See the project's page for details:\n\n    https://github.com/brigade/scss-lint\n\nSyntastic requires \"SCSS-Lint\" version 0.29.0 or later.\n\nInstallation~\n\nInstall it with \"gem\": >\n    gem install scss_lint\n<\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR SH                                 *syntastic-checkers-sh*\n\nThe following checkers are available for Sh (filetype \"sh\"):\n\n    1. Bashate..................|syntastic-sh-bashate|\n    2. checkbashisms............|syntastic-sh-checkbashisms|\n    3. sh.......................|syntastic-sh-sh|\n    4. ShellCheck...............|syntastic-sh-shellcheck|\n    5. shfmt....................|syntastic-sh-shfmt|\n\n------------------------------------------------------------------------------\n1. Bashate                                              *syntastic-sh-bashate*\n\nName:        bashate\nMaintainer:  aswna\n\n\"Bashate\" is a style linter for bash scripts used by the OpenStack\n(http://www.openstack.org/). See the project's page at GitHub for details:\n\n    https://github.com/openstack-dev/bashate\n\nInstallation~\n\nInstall it with \"pip\": >\n    pip install bashate\n<\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n2. checkbashisms                                  *syntastic-sh-checkbashisms*\n\nName:        checkbashisms\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"checkbashisms\" is part of the Linux \"devscripts\" package. It can be obtained\nfrom the Debian source archive:\n\n    http://packages.qa.debian.org/d/devscripts.html\n\nFor FreeBSD and OpenBSD you can also install the \"devel/checkbashisms\" port.\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n3. sh                                                        *syntastic-sh-sh*\n\nName:        sh\nMaintainer:  Gregor Uhlenheuer <kongo2002@gmail.com>\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n4. ShellCheck                                        *syntastic-sh-shellcheck*\n\nName:        shellcheck\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"ShellCheck\" is a static analysis tool for Bourne shell scripts. See the\nproject's page for details:\n\n    http://www.shellcheck.net/about.html\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n5. shfmt                                                  *syntastic-sh-shfmt*\n\nName:        shfmt\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"shfmt\" is a parser, formatter, and interpreter for sh/bash/mksh. See the\nproject's page at GitHub for details:\n\n    https://github.com/mvdan/sh\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nAutomatically formatting (option \"-w\") is not supported.\n\n==============================================================================\nSYNTAX CHECKERS FOR SLIM                             *syntastic-checkers-slim*\n\nThe following checkers are available for Slim (filetype \"slim\"):\n\n    1. Slim-Lint................|syntastic-slim-slim_lint|\n    2. Slimrb...................|syntastic-slim-slimrb|\n\n------------------------------------------------------------------------------\n1. Slim-Lint                                        *syntastic-slim-slim_lint*\n\nName:        slim_lint\nMaintainer:  Vasily Kolesnikov <re.vkolesnikov@gmail.com>\n\n\"Slim-Lint\" is a style linter for Slim files (http://slim-lang.com/).  See\nthe project's page at GitHub for details:\n\n    https://github.com/sds/slim-lint\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nInstallation~\n\nYou can install \"Slim-Lint\" with \"gem\": >\n    gem install slim_lint\n<\nNote~\n\nYou probably also need a plugin to set |filetype| for Slim files, such as\n\"vim-slim\":\n\n     https://github.com/slim-template/vim-slim\n\n------------------------------------------------------------------------------\n2. Slimrb                                              *syntastic-slim-slimrb*\n\nName:        slimrb\nMaintainer:  Martin Grenfell <martin.grenfell@gmail.com>\n\n\"Slimrb\" is a processor for the template language Slim\n(http://slim-lang.com/). See the project's page for details:\n\n    https://github.com/slim-template/slim\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nYou probably also need a plugin to set |filetype| for Slim files, such as\n\"vim-slim\":\n\n     https://github.com/slim-template/vim-slim\n\n==============================================================================\nSYNTAX CHECKERS FOR SML                               *syntastic-checkers-sml*\n\nThe following checkers are available for SML (filetype \"sml\"):\n\n    1. smlnj....................|syntastic-sml-smlnj|\n\n------------------------------------------------------------------------------\n1. smlnj                                                 *syntastic-sml-smlnj*\n\nName:        smlnj\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"smlnj\" is a compiler for Standard ML '97. See the project's page for details:\n\n    http://www.smlnj.org/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR SOLIDITY                     *syntastic-checkers-solidity*\n\nThe following checkers are available for Solidity (filetype \"solidity\"):\n\n    1. solc.....................|syntastic-solidity-solc|\n    2. Solhint..................|syntastic-solidity-solhint|\n    3. Solium...................|syntastic-solidity-solium|\n\n------------------------------------------------------------------------------\n1. solc                                              *syntastic-solidity-solc*\n\nName:        solc \nMaintainer:  Jacob Cholewa <jacob@cholewa.dk>\n\n\"solc\" is a compiler for Ethereum's smart-contract language \"Solidity\"\n(https://solidity.readthedocs.io/). See the project's page for details:\n\n    https://github.com/ethereum/solidity\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nYou probably also need a plugin to set |filetype| for Solidity files, such as\n\"vim-solidity\":\n\n    https://github.com/tomlion/vim-solidity\n\n------------------------------------------------------------------------------\n2. Solhint                                        *syntastic-solidity-solhint*\n\nName:        solhint\nMaintainer:  Brett Sun <qisheng.brett.sun@gmail.com>\n\n\"Solhint\" is a style linter for \"Solidity\" files. See the project's page for\ndetails:\n\n    https://github.com/protofire/solhint\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nYou probably also need a plugin to set |filetype| for Solidity files, such as\n\"vim-solidity\":\n\n    https://github.com/tomlion/vim-solidity\n\n------------------------------------------------------------------------------\n3. Solium                                          *syntastic-solidity-solium*\n\nName:        solium\nMaintainer:  Matthijs van den Bos <matthijs@vandenbos.org>\n\n\"Solium\" is a linter for \"Solidity\" files. See the project's page for details:\n\n    https://github.com/duaraghav8/Solium\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nYou probably also need a plugin to set |filetype| for Solidity files, such as\n\"vim-solidity\":\n\n    https://github.com/tomlion/vim-solidity\n\n==============================================================================\nSYNTAX CHECKERS FOR SQL                               *syntastic-checkers-sql*\n\nThe following checkers are available for SQL (filetype \"sql\"):\n\n    1. sqlint...................|syntastic-sql-sqlint|\n    2. tsqllint.................|syntastic-sql-tsqllint|\n\n------------------------------------------------------------------------------\n1. sqlint                                               *syntastic-sql-sqlint*\n\nName:        sqlint\nMaintainer:  Steve Purcell <steve@sanityinc.com>\n\n\"sqlint\" is a lint checker for ANSI SQL. See the project's page at GitHub for\ndetails:\n\n    https://github.com/purcell/sqlint\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n2. tsqllint                                           *syntastic-sql-tsqllint*\n\nName:        tsqllint\nMaintainer:  Daniel Walker <dwalker@fifo99.com>\n\n\"tsqllint\" is a lint checker for Transact-SQL scripts. See the project's page\nat GitHub for details:\n\n    https://github.com/tsqllint/tsqllint\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR STYLUS                         *syntastic-checkers-stylus*\n\nThe following checkers are available for Stylus (filetype \"stylus\"):\n\n    1. Stylint..................|syntastic-stylus-stylint|\n\n------------------------------------------------------------------------------\n1. Stylint                                          *syntastic-stylus-stylint*\n\nName:        stylint\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"Stylint\" is a linter for Stylus (http://learnboost.github.io/stylus). See\nthe project's page at GitHub for details:\n\n    https://github.com/SimenB/stylint\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nYou might also find useful the \"vim-stylus\" plugin:\n\n    https://github.com/wavded/vim-stylus\n\n==============================================================================\nSYNTAX CHECKERS FOR SVG                               *syntastic-checkers-svg*\n\nThe following checkers are available for SVG (filetype \"svg\"):\n\n    1. Validator................|syntastic-svg-validator|\n    2. W3.......................|syntastic-svg-w3|\n\n------------------------------------------------------------------------------\n1. Validator                                         *syntastic-svg-validator*\n\nName:        validator\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"Validator\" is a non-DTD-based HTML linter.  See the project's page for\ndetails:\n\n    http://validator.github.io/validator/\n\nAs a syntastic linter, you can validate your files against the online service\n(see https://validator.nu/), or you can install \"vnu.jar\":\n\n    https://github.com/validator/validator/releases/latest\n\nthen run it as a HTTP server: >\n    $ java -Xss512k -cp /path/to/vnu.jar nu.validator.servlet.Main 8888\n<\nRequirement~\n\nThis checker uses cURL:\n\n    http://curl.haxx.se/\n\nChecker options~\n\n                                             *'g:syntastic_svg_validator_api'*\nType: string\nDefault: \"http://validator.nu/\"\nURL of the service to use for checking. Leave it to the default to run the\nchecks against \"https://validator.nu/\", or set it to \"http://localhost:8888/\"\nif you have \"vnu.jar\" installed, and you're running it as a standalone HTTP\nserver. See:\n\n    http://validator.github.io/validator/#standalone\n\n                                          *'g:syntastic_svg_validator_parser'*\nType: string\nDefault: empty\nParser to use. Legal values are: \"xml\", \"xmldtd\", \"html\", \"html5\", \"html4\",\nand \"html4tr\". References:\n\n    https://wiki.whatwg.org/wiki/Validator.nu_Common_Input_Parameters#parser\n\n                                        *'g:syntastic_svg_validator_nsfilter'*\nType: string\nDefault: empty\nSets the \"nsfilter\" for the parser. See:\n\n    https://wiki.whatwg.org/wiki/Validator.nu_Common_Input_Parameters#nsfilter\n\n                                          *'g:syntastic_svg_validator_schema'*\nType: string\nDefault: empty\nSets the \"schema\" for the parser. See:\n\n    https://wiki.whatwg.org/wiki/Validator.nu_Common_Input_Parameters#schema\n\n                                            *'g:syntastic_svg_validator_exec'*\nType: string\nDefault: \"curl\"\nPath to the \"cURL\" executable. Override it with a full path if your \"cURL\" is\nnot installed in a standard location.\n\nThis checker doesn't call the \"makeprgBuild()\" function, and thus it ignores\nthe usual 'g:syntastic_svg_validator_<option>' variables. The only exception\nis 'g:syntastic_svg_validator_exec', which can be used to override the path\nto the \"cURL\" executable.\n\nNote~\n\nNon-zero exit codes from \"cURL\" are typically network errors, and are signaled\nby syntastic with messages such as: >\n    syntastic: error: checker svg/validator returned abnormal status 26\n<\nYou can lookup the meaning of these codes in cURL's manual:\n    \n    http://curl.haxx.se/docs/manpage.html#EXIT\n\nExample~\n>\n    let g:syntastic_svg_validator_parser = 'xml'\n    let g:syntastic_svg_validator_schema = \n        \\ 'http://s.validator.nu/svg-xhtml5-rdf-mathml.rnc ' .\n        \\ 'http://s.validator.nu/html5/assertions.sch ' .\n        \\ 'http://c.validator.nu/all/'\n<\nSee also: |syntastic-html-validator|, |syntastic-xhtml-validator|.\n\n------------------------------------------------------------------------------\n2. W3                                                      *syntastic-svg-w3*\n\nName:        w3\nMaintainer:  Kevin Locke <kevin@kevinlocke.name>\n\n\"W3\" is the W3C Markup Validator for SVG.  See the project's page for\ndetails:\n\n    https://validator.w3.org/source/\n\nAs a syntastic linter, you can validate your files against the online service\n(see https://validator.w3.org/), or you can install it from sources and run it\nas a local service:\n\n    https://github.com/w3c/markup-validator/\n\nRequirement~\n\nThis checker uses cURL:\n\n    http://curl.haxx.se/\n\nChecker options~\n\n                                                   *'g:syntastic_svg_w3_api'*\nType: string\nDefault: \"https://validator.w3.org/check\"\nURL of the service to use for checking. Leave it to the default to\nrun the checks against \"https://validator.w3.org/\", or set it to\n\"http://localhost/w3c-validator/check\" if you're running a local service.\n\n                                                *'g:syntastic_svg_w3_doctype'*\nType: string\nDefault: \"SVG 1.1\"\nName of the document type definition to use for checking. Currently supported\nvalues for SVG:\n\n  - SVG 1.0\n  - SVG 1.1\n  - SVG 1.1 Tiny\n  - SVG 1.1 Basic\n\nReferences:\n\n    https://github.com/w3c/markup-validator/blob/master/htdocs/doctype-select.html\n    https://github.com/w3c/markup-validator/blob/master/htdocs/config/types.conf\n\n                                                  *'g:syntastic_svg_w3_exec'*\nType: string\nDefault: \"curl\"\nPath to the \"cURL\" executable. Override it with a full path if your \"cURL\" is\nnot installed in a standard location.\n\nThis checker doesn't call the \"makeprgBuild()\" function, and thus it ignores\nthe usual 'g:syntastic_svg_w3_<option>' variables. The only exception is\n'g:syntastic_svg_w3_exec', which can be used to override the path to the\n\"cURL\" executable.\n\nNote~\n\nNon-zero exit codes from \"cURL\" are typically network errors, and are signaled\nby syntastic with messages such as: >\n    syntastic: error: checker svg/w3 returned abnormal status 26\n<\nYou can lookup the meaning of these codes in cURL's manual:\n    \n    http://curl.haxx.se/docs/manpage.svg#EXIT\n\nSee also: |syntastic-html-w3|, |syntastic-xhtml-w3|.\n\n==============================================================================\nSYNTAX CHECKERS FOR TCL                               *syntastic-checkers-tcl*\n\nThe following checkers are available for Tcl (filetype \"tcl\"):\n\n    1. nagelfar.................|syntastic-tcl-nagelfar|\n\n------------------------------------------------------------------------------\n1. nagelfar                                           *syntastic-tcl-nagelfar*\n\nName:        nagelfar\nMaintainer:  James Pickard <james.pickard@gmail.com>\n\n\"Nagelfar\" is a syntax linter for Tcl. See the project's page for details:\n\n    http://nagelfar.sourceforge.net/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR TEX                               *syntastic-checkers-tex*\n\nThe following checkers are available for TeX (filetype \"tex\"):\n\n    1. ChkTeX...................|syntastic-tex-chktex|\n    2. lacheck..................|syntastic-tex-lacheck|\n    3. proselint................|syntastic-tex-proselint|\n\n------------------------------------------------------------------------------\n1. ChkTeX                                               *syntastic-tex-chktex*\n\nName:        chktex\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"ChkTeX\" is a linter for TeX and LaTeX. See the project's page for details:\n\n    http://baruch.ev-en.org/proj/chktex/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                                           *'g:syntastic_tex_chktex_showmsgs'*\nType: boolean\nDefault: 1\nWhether to show informational messages (\"chktex\" option \"-m\"). By default\ninformational messages are shown as warnings.\n\nNotes~\n\nIf you're checking files containing tab characters, then Vim's 'tabstop'\nmust match \"ChkTeX\"'s idea of tabstop, otherwise column numbers will be\nshifted. At the time of this writing, \"ChkTeX\"'s tabstop is hardcoded to 8,\nso you should probably add something like this to your vimrc: >\n    set tabstop=8\n<\nNote also that because of the way \"ChkTeX\" handles error formats column\nnumbers are not available on Windows when running under \"cmd.exe\".\n\n------------------------------------------------------------------------------\n2. lacheck                                             *syntastic-tex-lacheck*\n\nName:        lacheck\nMaintainer:  Martin Grenfell <martin.grenfell@gmail.com>\n\n\"lacheck\" is a style linter for LaTeX documents. See the project's page for\ndetails:\n\n    http://www.ctan.org/tex-archive/support/lacheck\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nLimitations~\n\nAt the time of this writing \"lacheck\" can't expand \"\\def\" commands. As a\nresult, most \"\\input\" commands using macros are signaled as errors.\n\n------------------------------------------------------------------------------\n3. proselint                                         *syntastic-tex-proselint*\n\nName:        proselint\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"proselint\" is a linter for prose. See the page for details:\n\n    http://proselint.com/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nSee also: |syntastic-asciidoc-proselint|, |syntastic-help-proselint|,\n|syntastic-html-proselint|, |syntastic-markdown-proselint|,\n|syntastic-nroff-proselint|, |syntastic-pod-proselint|,\n|syntastic-rst-proselint|, |syntastic-texinfo-proselint|,\n|syntastic-text-proselint|, |syntastic-xhtml-proselint|.\n\n==============================================================================\nSYNTAX CHECKERS FOR TEXINFO                       *syntastic-checkers-texinfo*\n\nThe following checkers are available for Texinfo (filetype \"texinfo\"):\n\n    1. Makeinfo.................|syntastic-texinfo-makeinfo|\n    2. proselint................|syntastic-texinfo-proselint|\n\n------------------------------------------------------------------------------\n1. Makeinfo                                       *syntastic-texinfo-makeinfo*\n\nName:        makeinfo\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"Makeinfo\" is a converter for Texinfo files. It is distributed together with\nthe GNU package \"texinfo\":\n\n    http://www.gnu.org/software/texinfo/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n2. proselint                                     *syntastic-texinfo-proselint*\n\nName:        proselint\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"proselint\" is a linter for prose. See the page for details:\n\n    http://proselint.com/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nSee also: |syntastic-asciidoc-proselint|, |syntastic-help-proselint|,\n|syntastic-html-proselint|, |syntastic-markdown-proselint|,\n|syntastic-nroff-proselint|, |syntastic-pod-proselint|,\n|syntastic-rst-proselint|, |syntastic-tex-proselint|,\n|syntastic-text-proselint|, |syntastic-xhtml-proselint|.\n\n==============================================================================\nSYNTAX CHECKERS FOR TEXT                             *syntastic-checkers-text*\n\nThe following checkers are available for plain text (filetype \"text\"):\n\n    1. atdtool..................|syntastic-text-atdtool|\n    2. Igor.....................|syntastic-text-igor|\n    3. language-check...........|syntastic-text-language_check|\n    4. proselint................|syntastic-text-proselint|\n    5. textlint.................|syntastic-text-textlint|\n\n------------------------------------------------------------------------------\n1. atdtool                                            *syntastic-text-atdtool*\n\nName:        atdtool\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"atdtool\" is a script that runs a text file through the \"After the Deadline\"\nlanguage service (http://www.afterthedeadline.com/) and returns a list of\nspelling, style, and grammar errors. See the project's page for details:\n\n    https://github.com/lpenz/atdtool\n\nSee also the list of features of \"After the Deadline\":\n\n    http://www.afterthedeadline.com/features.slp\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n2. Igor                                                  *syntastic-text-igor*\n\nName:        igor\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"Igor\" is a proofreader for DocBook SGML, man pages, and text files used by\nthe FreeBSD (https://www.freebsd.org/). See the author's presentation for\ndetails:\n\n    http://www.youtube.com/watch?v=sczHqUPygZY\n\nThe latest version can be obtained from Glen Barber's repository:\n\n    http://docscripts.glenbarber.us/tags/igor/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nSee also: |syntastic-docbk-igor|, |syntastic-nroff-igor|.\n\n------------------------------------------------------------------------------\n3. language-check                              *syntastic-text-language_check*\n\nName:        language_check\nMaintainer:  Steven Myint <git@stevenmyint.com>\n\n\"language-check\" is a wrapper for the LanguageTool grammar linter\n(https://www.languagetool.org/). See the project's page for details:\n\n    https://github.com/myint/language-check\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n4. proselint                                        *syntastic-text-proselint*\n\nName:        proselint\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"proselint\" is a linter for prose. See the page for details:\n\n    http://proselint.com/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nSee also: |syntastic-asciidoc-proselint|, |syntastic-help-proselint|,\n|syntastic-html-proselint|, |syntastic-markdown-proselint|,\n|syntastic-nroff-proselint|, |syntastic-pod-proselint|,\n|syntastic-rst-proselint|, |syntastic-tex-proselint|,\n|syntastic-texinfo-proselint|, |syntastic-xhtml-proselint|.\n\n------------------------------------------------------------------------------\n5. textlint                                          *syntastic-text-textlint*\n\nName:        textlint\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"textlint\" is a natural language linter for text, Markdown, and HTML files.\nSee the project's page for details:\n\n    https://textlint.github.io/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nSee also: |syntastic-html-textlint|, |syntastic-markdown-textlint|.\n\n==============================================================================\nSYNTAX CHECKERS FOR TRIG                             *syntastic-checkers-trig*\n\nThe following checkers are available for TriG (filetype \"trig\"):\n\n    1. rapper...................|syntastic-trig-rapper|\n\n------------------------------------------------------------------------------\n1. rapper                                              *syntastic-trig-rapper*\n\nName:        rapper\nMaintainer:  Sebastian Tramp <mail@sebastian.tramp.name>\n\n\"rapper\" is an RDF parsing and serializing utility. See the project's page for\ndetails:\n\n    http://librdf.org/raptor/rapper.html\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nYou probably also need a plugin to set |filetype| for TriG files, such as\n\"Vim-RDF\":\n\n    https://github.com/niklasl/vim-rdf\n\nSee also: |syntastic-turtle-rapper|.\n\n==============================================================================\nSYNTAX CHECKERS FOR TURTLE                         *syntastic-checkers-turtle*\n\nThe following checkers are available for Turtle (filetype \"turtle\"):\n\n    1. rapper...................|syntastic-turtle-rapper|\n    2. ttl......................|syntastic-turtle-ttl|\n\n------------------------------------------------------------------------------\n1. rapper                                            *syntastic-turtle-rapper*\n\nName:        rapper\nMaintainer:  Sebastian Tramp <mail@sebastian.tramp.name>\n\n\"rapper\" is an RDF parsing and serializing utility. See the project's page\nfor details:\n\n    http://librdf.org/raptor/rapper.html\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nYou probably also need a plugin to set |filetype| for Turtle files, such as\n\"Vim-RDF\":\n\n    https://github.com/niklasl/vim-rdf\n\nSee also: |syntastic-trig-rapper|.\n\n------------------------------------------------------------------------------\n2. ttl                                                  *syntastic-turtle-ttl*\n\nName:        ttl\nMaintainer:  Antoine Reilles <tonio@NetBSD.org>\n\n\"ttl\" is an RDF validator. See the project's page at GitHub for details:\n\n    https://github.com/mmlab/TurtleValidator\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nYou probably also need a plugin to set |filetype| for Turtle files, such as\n\"Vim-RDF\":\n\n    https://github.com/niklasl/vim-rdf\n\n==============================================================================\nSYNTAX CHECKERS FOR TWIG                             *syntastic-checkers-twig*\n\nThe following checkers are available for Twig (filetype \"twig\"):\n\n    1. twig-lint................|syntastic-twig-twiglint|\n    2. twigcs...................|syntastic-twig-twigcs|\n\n------------------------------------------------------------------------------\n1. twig-lint                                         *syntastic-twig-twiglint*\n\nName:        twiglint\nMaintainer:  Alexander <iam.asm89@gmail.com>\n\n\"twig-lint\" is a lint tool for Twig templates. See the project's page at\nGitHub for details:\n\n    https://github.com/asm89/twig-lint\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNotes~\n\nFor the standalone executable, add the following to your vimrc file: >\n    let g:syntastic_twig_twiglint_exec = \"php\"\n    let g:syntastic_twig_twiglint_exe = \"php /path/to/twig-lint.phar\"\n<\nFor the \"Composer\" (https://getcomposer.org/) dependency \"twig-lint\" must be\nin your \"$PATH\". No further configuration is needed.\n\n------------------------------------------------------------------------------\n2. twigcs                                              *syntastic-twig-twigcs*\n\nName:        twigcs\nMaintainer:  Ciloe <escrichjimmy@yahoo.fr>\n\n\"twigcs\" is a lint tool for Twig templates. See the project's page at\nGitHub for details:\n\n    https://github.com/friendsoftwig/twigcs\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR TYPESCRIPT                 *syntastic-checkers-typescript*\n\nThe following checkers are available for TypeScript (filetype \"typescript\"):\n\n    1. ESLint...................|syntastic-typescript-eslint|\n    2. Lynt.....................|syntastic-typescript-lynt|\n    3. TSLint...................|syntastic-typescript-tslint|\n\n------------------------------------------------------------------------------\n1. ESLint                                        *syntastic-typescript-eslint*\n\nName:        eslint\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"ESLint\" is a tool for identifying and reporting on patterns found\nin ECMAScript/JavaScript code. With the \"babel-eslint\" plugin\n(https://github.com/babel/babel-eslint) \"ESLint\" can also be\nused to check TypeScript files. See the project's page for details:\n\n    https://github.com/nzakas/eslint\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nYou probably also need a plugin to set |filetype| for TypeScript files, such\nas \"typescript-vim\":\n\n    https://github.com/leafgarland/typescript-vim\n\nSee also: |syntastic-html-eslint|, |syntastic-javascript-eslint|,\n|syntastic-vue-eslint|.\n\n------------------------------------------------------------------------------\n2. Lynt                                            *syntastic-typescript-lynt*\n\nName:        lynt\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"Lynt\" is a JavaScript linter with support for TypeScript, Flow, and React.\nSee the project's page for more information:\n\n    https://github.com/saadq/lynt\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nAutomatically fixing errors (option \"--fix\") is not supported.\n\nSee also: |syntastic-javascript-lynt|.\n\n------------------------------------------------------------------------------\n3. TSLint                                        *syntastic-typescript-tslint*\n\nName:        tslint\nMaintainer:  Seon-Wook Park <seon.wook@swook.net>\n\n\"TSLint\" is a lint checker for TypeScript. See the project's page for\ndetails:\n\n    https://github.com/palantir/tslint\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nYou probably also need a plugin to set |filetype| for TypeScript files, such\nas \"typescript-vim\":\n\n    https://github.com/leafgarland/typescript-vim\n\n==============================================================================\nSYNTAX CHECKERS FOR VERILOG                       *syntastic-checkers-verilog*\n\nThe following checkers are available for Verilog (filetype \"verilog\"):\n\n    1. Icarus Verilog...........|syntastic-verilog-iverilog|\n    2. Verilator................|syntastic-verilog-verilator|\n\n------------------------------------------------------------------------------\n1. Icarus Verilog                                 *syntastic-verilog-iverilog*\n\nName:        iverilog\nMaintainer:  Psidium <psiidium@gmail.com>\n\n\"Icarus Verilog\" is a Verilog simulation and synthesis tool. See the\nproject's page for details:\n\n    http://iverilog.icarus.com/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n2. Verilator                                     *syntastic-verilog-verilator*\n\nName:        verilator\nMaintainer:  Kocha <kocha.lsifrontend@gmail.com>\n\nChecker options~\n\n                                              *'g:syntastic_verilog_compiler'*\nType: string\nDefault: \"verilator\"\nCompiler executable.\n\n                                           *'g:syntastic_verilog_errorformat'*\nType: string\nDefault: unset\nOverride for the default |'errorformat'|.\n\n                                 *'g:syntastic_verilog_remove_include_errors'*\nType: boolean\nDefault: 0\nBy default, errors in files included from the file being checked are shown.\nSet this variable to 1 to remove messages about errors in included files.\nPlease note that this means syntastic will silently abort checks if there are\nfatal errors in one of the included files.\n\n                                      *'g:syntastic_verilog_compiler_options'*\nType: string\nDefault: unset\nCompilation flags (such as defines or include directories) to be passed to the\nlinter.\n\n                                           *'g:syntastic_verilog_config_file'*\nType: string\nDefault: unset\nFile containing additional compilation flags to be passed to the linter, one\noption per line (cf. |syntastic-config-files|).\n\n                                          *'g:syntastic_verilog_include_dirs'*\nType: array of strings\nDefault: []\nInclude directories to be passed to the linter, in addition to the\nabove compilation flags. You can set it like this: >\n    let g:syntastic_verilog_include_dirs = [\"includes\", \"headers\"]\n<\nand the corresponding \"-Iincludes -Iheaders\" will be added to the compilation\nflags.\n\n                                                *'b:syntastic_verilog_cflags'*\nType: string\nDefault: unset\nBuffer-local variable. Additional compilation flags specific to the current\nbuffer.\n\nNote~\n\nThis checker doesn't call the \"makeprgBuild()\" function, and thus it ignores\nthe usual 'g:syntastic_verilog_verilator_<option>' variables. The only\nexception is 'g:syntastic_verilog_verilator_exec', which can still be used to\noverride the linter's executable.\n\n==============================================================================\nSYNTAX CHECKERS FOR VHDL                             *syntastic-checkers-vhdl*\n\nThe following checkers are available for VHDL (filetype \"vhdl\"):\n\n    1. GHDL.....................|syntastic-vhdl-ghdl|\n    2. vcom.....................|syntastic-vhdl-vcom|\n\n------------------------------------------------------------------------------\n1. GHDL                                                  *syntastic-vhdl-ghdl*\n\nName:        ghdl\nMaintainer:  Jan Wagner <jaydyou@janidom.de>\n\n\"GHDL\" is a VHDL simulator. See the project's page for details:\n\n    http://gna.org/projects/ghdl/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n2. vcom                                                  *syntastic-vhdl-vcom*\n\nName:        vcom\nMaintainer:  Jim Vogel <jim.e.vogel@gmail.com>\n\n\"vcom\" is compiler for VHDL files distributed with the \"ModelSim\" HDL\nsimulation environment:\n\n    https://www.mentor.com/products/fpga/model/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR VIM HELP                         *syntastic-checkers-help*\n\nThe following checkers are available for Vim help (filetype \"help\"):\n\n    1. proselint................|syntastic-help-proselint|\n\n------------------------------------------------------------------------------\n1. proselint                                        *syntastic-help-proselint*\n\nName:        proselint\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"proselint\" is a linter for prose. See the page for details:\n\n    http://proselint.com/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nSee also: |syntastic-asciidoc-proselint|, |syntastic-html-proselint|,\n|syntastic-markdown-proselint|, |syntastic-nroff-proselint|,\n|syntastic-pod-proselint|, |syntastic-rst-proselint|,\n|syntastic-tex-proselint|, |syntastic-texinfo-proselint|,\n|syntastic-text-proselint|, |syntastic-xhtml-proselint|.\n\n==============================================================================\nSYNTAX CHECKERS FOR VIML                              *syntastic-checkers-vim*\n\nThe following checkers are available for VimL (filetype \"vim\"):\n\n    1. Vimlint..................|syntastic-vim-vimlint|\n    2. Vint.....................|syntastic-vim-vint|\n\n------------------------------------------------------------------------------\n1. Vimlint                                             *syntastic-vim-vimlint*\n\nName:        vimlint\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"Vimlint\" is a lint checker for VimL written in pure VimL, based on Yukihiro\nNakadaira's \"vimlparser\" (https://github.com/ynkdir/vim-vimlparser/). See the\nproject's page for details:\n\n    https://github.com/syngan/vim-vimlint/\n\nInstallation~\n\nYou need to install the Vim plugins \"vim-vimlint\" and \"vim-vimlparser\"\nmentioned above.\n\nChecker Options~\n\n                                               *'g:syntastic_vimlint_options'*\nType: dictionary\nDefault: |EVL102|, |EVL103|, |EVL104|, |EVL105|, |EVL106|, |EVL201|, |EVL204|, and |EVL205|\n    are warnings.\nDictionary of \"Vimlint\" options, with the same syntax as |g:vimlint#config|.\nSee |g:vimlint#config| and |vimlint-errorcode| for more details.\n\n\"Vimlint\" does not call the \"makeprgBuild()\" function, and thus ignores the\nusual 'g:syntastic_vim_vimlint_<option>' variables.\n\nNote~\n\nThe values of |'g:syntastic_vimlint_options'| useful for syntastic are those\nthat ignore or change the severity of some \"EVLxxx\" messages.  For example\nto ignore warnings about unused arguments: >\n    let g:syntastic_vimlint_options = { \"EVL103\": 1 }\n<\nLimitation~\n\nCertain error messages can't be turned off by |'g:syntastic_vimlint_options'|.\nThis is a misfeature of \"Vimlint\" rather than a limitation of syntastic. You\ncan still ignore these messages using the standard mechanism of\n|'syntastic_quiet_messages'|: >\n    let g:syntastic_vim_vimlint_quiet_messages = { \"regex\": '\\v\\[EVL%(105|205)\\]' }\n<\nAt the time of this writing the messages that can't be turned off by setting\n|'g:syntastic_vimlint_options'| are:\n\n    |EVL105| - global variable defined without 'g:'\n    |EVL202| - missing call\n    |EVL203| - parse error in command\n    |EVL205| - missing 'scriptencoding'\n    |EVL901| - unknown type\n    |EVL902| - assert error.\n\n------------------------------------------------------------------------------\n2. Vint                                                   *syntastic-vim-vint*\n\nName:        vint\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"Vint\" is a lint checker for VimL. See the project's page at GitHub for\ndetails:\n\n    https://github.com/Kuniwak/vint\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR VUE.JS                            *syntastic-checkers-vue*\n\nThe following checkers are available for Vue.js (filetype \"vue\"):\n\n    1. ESLint...................|syntastic-vue-eslint|\n    2. pug_lint_vue.............|syntastic-vue-pug_lint_vue|\n    3. stylelint................|syntastic-vue-stylelint|\n\n------------------------------------------------------------------------------\n1. ESLint                                               *syntastic-vue-eslint*\n\nName:        eslint\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"ESLint\" is a tool for identifying and reporting on patterns found in\nECMAScript/JavaScript code. It can also detect problems in JavaScript\ncomponents of Vue.js files. See the project's page for details:\n\n    https://github.com/nzakas/eslint\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNotes~\n\nAutomatically fixing errors (option \"--fix\") is not supported.\n\nYou can also use \"eslint_d\" (https://github.com/mantoni/eslint_d.js), version\n2.1.0 or later, instead of \"ESLint\". Just point 'g:syntastic_vue_eslint_exec'\nto it:\n\n    https://github.com/mantoni/eslint_d.js#editor-integration\n\nSee also: |syntastic-html-eslint|, |syntastic-javascript-eslint|,\n|syntastic-typescript-eslint|.\n\n------------------------------------------------------------------------------\n2. pug_lint_vue                                   *syntastic-vue-pug_lint_vue*\n\nName:        pug_lint_vue\nMaintainer:  Tim Carry <tim@pixelastic.com>\n\n\"pug-lint-vue\" is a linter for Pug templates inside of Vue.js components. See\nthe project's page at GitHub for details:\n\n    https://github.com/sourceboat/pug-lint-vue\n\nInstallation~\n\nInstall it with: >\n    npm install -g pug-lint-vue\n<\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nYou probably also need a plugin to set |filetype| for Vue.js files, such as\n\"vim-vue\":\n\n    https://github.com/posva/vim-vue\n\n------------------------------------------------------------------------------\n3. stylelint                                         *syntastic-vue-stylelint*\n\nName:        stylelint\nMaintainer:  Tim Carry <tim@pixelastic.com>\n\n\"stylelint\" is a style linter for Cascading Stylesheets. See the project's\npage for more information:\n\n    http://stylelint.io/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nSee also: |syntastic-css-stylelint|, |syntastic-html-stylelint|.\n\n==============================================================================\nSYNTAX CHECKERS FOR XHTML                           *syntastic-checkers-xhtml*\n\nThe following checkers are available for xHTML (filetype \"xhtml\"):\n\n    1. HTML Tidy................|syntastic-xhtml-tidy|\n    2. jshint...................|syntastic-xhtml-jshint|\n    3. proselint................|syntastic-xhtml-proselint|\n    4. Validator................|syntastic-xhtml-validator|\n    5. W3.......................|syntastic-xhtml-w3|\n\n------------------------------------------------------------------------------\n1. HTML tidy                                            *syntastic-xhtml-tidy*\n\nName:        tidy\nMaintainer:  Martin Grenfell <martin.grenfell@gmail.com>\n\n\"HTML Tidy\" is a syntax linter and formatter for HTML. See the HTML Tidy\nLibrary Project for more information:\n\n    http://tidy.sourceforge.net/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                                      *'g:syntastic_xhtml_tidy_ignore_errors'*\nType: array of strings\nDefault: []\nList of errors to ignore. Case-sensitive patterns matched as substrings\n(not regular expressions) against the error messages. See also\n|'syntastic_quiet_messages'|.\n\nSee also: |syntastic-html-tidy|.\n\n------------------------------------------------------------------------------\n2. jshint                                             *syntastic-xhtml-jshint*\n\nName:        JSHint\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"JSHint\" can detect JavaScript errors and potential problems in HTML\nfiles. See the project's page for details:\n\n    http://jshint.com/\n\nSyntastic requires \"JSHint\" version 2.4.0 or later.\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nIf you're checking files containing tab characters then \"JSHint\"'s idea of\ntabstop must match Vim's 'tabstop', otherwise syntastic will highlight the\nerrors at shifted positions. By default \"JSHint\"'s tabstop is 4, while Vim's\ndefault 'tabstop' is 8.\n\nIn order to change \"JSHint\"'s tabstop you have to change its \"indent\" config\noption (cf. http://jshint.com/docs/options/#indent). One way to do that is\nto put it in a file named \".jshintrc\" in the current directory, the parent\ndirectories, or your home directory. The file is supposed to be in JSON\nformat. For example: >\n    {\n        \"indent\": 8\n    }\n<\nSee JSHint documentation for more details:\n\n    http://jshint.com/docs/\n\nPlease note however that setting \"indent\" also triggers the indentation checks\nin \"JSHint\". If that is undesirable, your only other option is to leave\n\"JSHint\"'s tabstop alone, and change Vim's 'tabstop' to 4. To change Vim's\n'tabstop', you can add this to your vimrc: >\n    set tabstop=4\n<\nSee also: |syntastic-html-jshint|, |syntastic-javascript-jshint|.\n\n------------------------------------------------------------------------------\n3. proselint                                       *syntastic-xhtml-proselint*\n\nName:        proselint\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"proselint\" is a linter for prose. See the page for details:\n\n    http://proselint.com/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nSee also: |syntastic-asciidoc-proselint|, |syntastic-help-proselint|,\n|syntastic-html-proselint|, |syntastic-markdown-proselint|,\n|syntastic-nroff-proselint|, |syntastic-pod-proselint|,\n|syntastic-rst-proselint|, |syntastic-tex-proselint|,\n|syntastic-texinfo-proselint|, |syntastic-text-proselint|.\n\n------------------------------------------------------------------------------\n4. Validator                                       *syntastic-xhtml-validator*\n\nName:        validator\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"Validator\" is a non-DTD-based HTML linter.  See the project's page for\ndetails:\n\n    http://validator.github.io/validator/\n\nAs a syntastic linter, you can validate your files against the online service\n(see https://validator.nu/), or you can install \"vnu.jar\":\n\n    https://github.com/validator/validator/releases/latest\n\nthen run it as a HTTP server: >\n    $ java -Xss512k -cp /path/to/vnu.jar nu.validator.servlet.Main 8888\n<\nRequirement~\n\nThis checker uses cURL:\n\n    http://curl.haxx.se/\n\nChecker options~\n\n                                           *'g:syntastic_xhtml_validator_api'*\nType: string\nDefault: \"http://validator.nu/\"\nURL of the service to use for checking. Leave it to the default to run the\nchecks against \"https://validator.nu/\", or set it to \"http://localhost:8888/\"\nif you have \"vnu.jar\" installed, and you're running it as a standalone HTTP\nserver. See:\n\n    http://validator.github.io/validator/#standalone\n\n                                        *'g:syntastic_xhtml_validator_parser'*\nType: string\nDefault: empty\nParser to use. Legal values are: \"xml\", \"xmldtd\", \"html\", \"html5\", \"html4\",\nand \"html4tr\". References:\n\n    https://wiki.whatwg.org/wiki/Validator.nu_Common_Input_Parameters#parser\n\n                                      *'g:syntastic_xhtml_validator_nsfilter'*\nType: string\nDefault: empty\nSets the \"nsfilter\" for the parser. See:\n\n    https://wiki.whatwg.org/wiki/Validator.nu_Common_Input_Parameters#nsfilter\n\n                                        *'g:syntastic_xhtml_validator_schema'*\nType: string\nDefault: empty\nSets the \"schema\" for the parser. See:\n\n    https://wiki.whatwg.org/wiki/Validator.nu_Common_Input_Parameters#schema\n\n                                          *'g:syntastic_xhtml_validator_exec'*\nType: string\nDefault: \"curl\"\nPath to the \"cURL\" executable. Override it with a full path if your \"cURL\" is\nnot installed in a standard location.\n\nThis checker doesn't call the \"makeprgBuild()\" function, and thus it ignores\nthe usual 'g:syntastic_xhtml_validator_<option>' variables. The only exception\nis 'g:syntastic_xhtml_validator_exec', which can be used to override the path\nto the \"cURL\" executable.\n\nNote~\n\nNon-zero exit codes from \"cURL\" are typically network errors, and are signaled\nby syntastic with messages such as: >\n    syntastic: error: checker xhtml/validator returned abnormal status 26\n<\nYou can lookup the meaning of these codes in cURL's manual:\n    \n    http://curl.haxx.se/docs/manpage.html#EXIT\n\nExample~\n>\n    let g:syntastic_xhtml_validator_parser = 'xmldtd'\n    let g:syntastic_xhtml_validator_schema = \n        \\ 'http://s.validator.nu/xhtml5.rnc ' .\n        \\ 'http://s.validator.nu/html5/assertions.sch ' .\n        \\ 'http://c.validator.nu/all/\n<\nSee also: |syntastic-html-validator|, |syntastic-svg-validator|.\n\n------------------------------------------------------------------------------\n5. W3                                                     *syntastic-xhtml-w3*\n\nName:        w3\nMaintainer:  Kevin Locke <kevin@kevinlocke.name>\n\n\"W3\" is the W3C Markup Validator for XHTML.  See the project's page for\ndetails:\n\n    https://validator.w3.org/source/\n\nAs a syntastic linter, you can validate your files against the online service\n(see https://validator.w3.org/), or you can install it from sources and run it\nas a local service:\n\n    https://github.com/w3c/markup-validator/\n\nRequirement~\n\nThis checker uses cURL:\n\n    https://curl.haxx.se/\n\nChecker options~\n\n                                                   *'g:syntastic_xhtml_w3_api'*\nType: string\nDefault: \"https://validator.w3.org/check\"\nURL of the service to use for checking. Leave it to the default to\nrun the checks against \"https://validator.w3.org/\", or set it to\n\"http://localhost/w3c-validator/check\" if you're running a local service.\n\n                                              *'g:syntastic_xhtml_w3_doctype'*\nType: string\nDefault: \"XHTML 1.1\"\nName of the document type definition to use for checking.  If unspecified, the\ntype is detected from the file content.  Currently supported values for XHTML:\n\n  - XHTML 1.0 Strict\n  - XHTML 1.0 Transitional\n  - XHTML 1.0 Frameset\n  - XHTML 1.1\n  - XHTML + RDFa\n  - XHTML Basic 1.0\n  - XHTML Basic 1.1\n  - XHTML Mobile Profile 1.2\n  - XHTML-Print 1.0\n  - XHTML 1.1 plus MathML 2.0\n  - XHTML 1.1 plus MathML 2.0 plus SVG 1.1\n\nReferences:\n\n    https://github.com/w3c/markup-validator/blob/master/htdocs/doctype-select.html\n    https://github.com/w3c/markup-validator/blob/master/htdocs/config/types.conf\n\n                                                  *'g:syntastic_xhtml_w3_exec'*\nType: string\nDefault: \"curl\"\nPath to the \"cURL\" executable. Override it with a full path if your \"cURL\" is\nnot installed in a standard location.\n\nThis checker doesn't call the \"makeprgBuild()\" function, and thus it ignores\nthe usual 'g:syntastic_xhtml_w3_<option>' variables. The only exception is\n'g:syntastic_xhtml_w3_exec', which can be used to override the path to the\n\"cURL\" executable.\n\nNote~\n\nNon-zero exit codes from \"cURL\" are typically network errors, and are signaled\nby syntastic with messages such as: >\n    syntastic: error: checker xhtml/w3 returned abnormal status 26\n<\nYou can lookup the meaning of these codes in cURL's manual:\n    \n    https://curl.haxx.se/docs/manpage.xhtml#EXIT\n\nSee also: |syntastic-html-w3|, |syntastic-svg-w3|.\n\n==============================================================================\nSYNTAX CHECKERS FOR XML                               *syntastic-checkers-xml*\n\nThe following checkers are available for XML (filetype \"xml\"):\n\n    1. plutil...................|syntastic-xml-plutil|\n    2. xmllint..................|syntastic-xml-xmllint|\n\n------------------------------------------------------------------------------\n1. plutil                                               *syntastic-xml-plutil*\n\nName:        plutil\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"plutil\" is a linter for OS X and iOS property list files. See the \"plist(5)\"\nand \"plutil(1)\" manual pages for details:\n\n    https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man5/plist.5.html\n    https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/plutil.1.html\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n2. xmllint                                             *syntastic-xml-xmllint*\n\nName:        xmllint\nMaintainer:  Sebastian Kusnier <sebastian@kusnier.net>\n\n\"xmllint\" is a linter and transformer tool for XML files, distributed with\nthe \"libxml\" package (http://www.xmlsoft.org/). See the tool's manual for more\ninformation:\n\n    http://xmlsoft.org/xmllint.html\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nYou can use a local installation of DTDs to significantly speed up validation\nand allow you to validate XML data without network access. See the\n\"xmlcatalog\" manual, and the catalog documentation for more information:\n\n    http://www.xmlsoft.org/xmlcatalog_man.html\n    http://www.xmlsoft.org/catalog.html\n\nFor an example of a DTD catalog see f.i. \"XMLCatalog\":\n\n    https://github.com/darcyparker/XMLCatalog\n\nIn order to use it with syntastic you'll have to clone it to a local\ndirectory, and point the environment variable \"XML_CATALOG_FILES\" to the file\n\"catalog.xml\" in the said directory: >\n    XML_CATALOG_FILES=/some/path/XMLCatalog/catalog.xml\n    export XML_CATALOG_FILES\n<\nOtherwise \"xmllint\" will try to load XML catalogs from \"/etc/xml/catalog\".\n\nSee also: |syntastic-docbk-xmllint|, |syntastic-xslt-xmllint|.\n\n==============================================================================\nSYNTAX CHECKERS FOR XQUERY                         *syntastic-checkers-xquery*\n\nThe following checkers are available for XQuery (filetype \"xquery\"):\n\n    1. BaseX....................|syntastic-xquery-basex|\n\n------------------------------------------------------------------------------\n1. BaseX                                              *syntastic-xquery-basex*\n\nName:        basex\nMaintainer:  James Wright <james.jw@hotmail.com>\n\n\"BaseX\" is an XML database engine and XPath`/`XQuery processor. See the\nproject's page for details:\n\n    http://basex.org/\n\nInstallation~\n\n1. Install \"BaseX\"\n2. Add the \"basex/bin\" folder to your \"$PATH\".\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR XSLT                             *syntastic-checkers-xslt*\n\nThe following checkers are available for XSLT (filetype \"xslt\"):\n\n    1. xmllint..................|syntastic-xslt-xmllint|\n\n------------------------------------------------------------------------------\n1. xmllint                                            *syntastic-xslt-xmllint*\n\nName:        xmllint\nMaintainer:  Sebastian Kusnier <sebastian@kusnier.net>\n\n\"xmllint\" is a linter and transformer tool for XML files, distributed with\nthe \"libxml\" package (http://www.xmlsoft.org/). See the tool's manual for more\ninformation:\n\n    http://xmlsoft.org/xmllint.html\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nSee also: |syntastic-docbk-xmllint|, |syntastic-xml-xmllint|.\n\n==============================================================================\nSYNTAX CHECKERS FOR YACC                             *syntastic-checkers-yacc*\n\nThe following checkers are available for YACC (filetype \"yacc\"):\n\n    1. Bison....................|syntastic-yacc-bison|\n\n------------------------------------------------------------------------------\n1. Bison                                                *syntastic-yacc-bison*\n\nName:        bison\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\n\"Bison\" is the GNU implementation of the standard UNIX parser generator\n\"yacc\" (http://en.wikipedia.org/wiki/Yacc). See the project's page for more\ninformation:\n\n    http://www.gnu.org/software/bison/\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR YAML                             *syntastic-checkers-yaml*\n\nThe following checkers are available for YAML (filetype \"yaml\"):\n\n    1. JavaScript YAML..........|syntastic-yaml-jsyaml|\n    2. yamllint.................|syntastic-yaml-yamllint|\n    3. YAML::XS.................|syntastic-yaml-yamlxs|\n\n------------------------------------------------------------------------------\n1. JavaScript YAML                                     *syntastic-yaml-jsyaml*\n\nName:        jsyaml\nMaintainer:  Martin Grenfell <martin.grenfell@gmail.com>\n\n\"JavaScript YAML\" is a parser for YAML. See the project's page at GitHub for\ndetails:\n\n    https://github.com/nodeca/js-yaml\n\nInstallation~\n\nInstall it with \"npm\": >\n    npm install -g js-yaml\n<\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n------------------------------------------------------------------------------\n2. yamllint                                          *syntastic-yaml-yamllint*\n\nName:        yamllint\nMaintainer:  Adrien VergĂŠ\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n\"yamllint\" is a linter and style checker for YAML.\nSee the project's page at GitHub for details:\n\n    https://github.com/adrienverge/yamllint\n\nInstallation~\n\nInstall it with \"pip\": >\n    pip install yamllint\n<\n------------------------------------------------------------------------------\n3. YAML::XS                                            *syntastic-yaml-yamlxs*\n\nName:        yamlxs\nMaintainer:  LCD 47 <lcd047@gmail.com>\n\nThis is a syntax checker for YAML 1.1 using the Perl module \"YAML::XS\":\n\n    https://metacpan.org/pod/YAML::XS\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nAdditionally:\n\n                                              'g:syntastic_perl_interpreter'\nType: string\nDefault: \"perl\"\nThe perl interpreter to use.\n\n                                                 'g:syntastic_perl_lib_path'\nType: list\nDefault: []\nList of include directories to be added to the perl command line. Example: >\n    let g:syntastic_perl_lib_path = [ \"/usr/local/lib/perl5/auto\" ]\n<\nNote~\n\nThe variable |'g:syntastic_perl_interpreter'| is shared with the \"perl\" checker\n(cf. |syntastic-perl-perl|). If for some reasons you don't want to use the same\ninterpreter for both checkers, you can override it locally by setting\n'g:syntastic_yaml_yamlxs_exec'.\n\n==============================================================================\nSYNTAX CHECKERS FOR YANG                             *syntastic-checkers-yang*\n\nThe following checkers are available for YANG data models (filetype \"yang\"):\n\n    1. pyang....................|syntastic-yang-pyang|\n\n------------------------------------------------------------------------------\n1. pyang                                                *syntastic-yang-pyang*\n\nName:        pyang\nMaintainer:  Joshua Downer <joshua.downer@gmail.com>\n\n\"pyang\" is a validator for YANG data models (http://www.yang-central.org/).\nSee the project's page at GitHub for more information:\n\n    https://github.com/mbj4668/pyang\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nYou probably also need a plugin to set |filetype| for YANG files, such as\n\"yang.vim\":\n\n    https://github.com/nathanalderson/yang.vim\n\n==============================================================================\nSYNTAX CHECKERS FOR YARA                             *syntastic-checkers-yara*\n\nThe following checkers are available for YARA rule files (filetype \"yara\"):\n\n    1. yarac....................|syntastic-yara-yarac|\n\n------------------------------------------------------------------------------\n1. yarac                                                *syntastic-yara-yarac*\n\nName:        yarac\nMaintainer:  Albert Song <albb@teamt5.org>\n\n\"yarac\" is the official compiler for YARA rule files. See the project's page\nat GitHub for more information:\n\n    https://github.com/VirusTotal/yara\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nYou probably also need a plugin to set |filetype| for YARA rule files, such as\n\"vim-yara\":\n\n    https://github.com/yaunj/vim-yara\n\n==============================================================================\nSYNTAX CHECKERS FOR Z80                               *syntastic-checkers-z80*\n\nThe following checkers are available for Z80 (filetype \"z80\"):\n\n    1. Z80syntaxchecker.........|syntastic-z80-z80syntaxchecker|\n\n------------------------------------------------------------------------------\n1. Z80syntaxchecker                           *syntastic-z80-z80syntaxchecker*\n\nName:        z80syntaxchecker\nMaintainer:  Romain Giot <giot.romain@gmail.com>\n\n\"Z80syntaxchecker\" is a syntax linter for Z80 assembly files.\n\nInstallation~\n\nTo install \"Z80syntaxchecker\" either install \"pycpcdemotools\"\n(https://github.com/cpcsdk/pycpcdemotools), or copy the following script to a\ndirectory in your \"$PATH\":\n\n    https://raw.githubusercontent.com/rgiot/pycpcdemotools/master/cpcdemotools/source_checker/z80_syntax_checker.py\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nSYNTAX CHECKERS FOR ZOPE PAGE TEMPLATES               *syntastic-checkers-zpt*\n\nThe following checkers are available for Zope Page Templates (filetype \"zpt\"):\n\n    1. zptlint..................|syntastic-zpt-zptlint|\n\n------------------------------------------------------------------------------\n1. zptlint                                             *syntastic-zpt-zptlint*\n\nName:        zptlint\nMaintainer:  claytron <robots@claytron.com>\n\n\"zptlint\" is a linter for Zope Page Templates. See the project's README for\nmore information:\n\n    https://trac.bubblenet.be/browser/bubblenet/pythoncode/zptlint/trunk/README.txt?format=txt\n\nInstallation~\n\nInstall it with \"pip\": >\n    pip install zptlint\n<\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\nNote~\n\nYou probably also need to set |filetype| for Zope Page Templates to \"zpt\".\nYou can do that with an `:autocmd`: >\n    autocmd BufNewFile,BufRead *.pt,*.cpt,*.zpt set filetype=zpt syntax=xml\n<\n==============================================================================\nSYNTAX CHECKERS FOR ZSH                               *syntastic-checkers-zsh*\n\nThe following checkers are available for Zsh (filetype \"zsh\"):\n\n    1. zsh......................|syntastic-zsh-zsh|\n\n------------------------------------------------------------------------------\n1. zsh                                                     *syntastic-zsh-zsh*\n\nName:        zsh\nMaintainer:  Martin Grenfell <martin.grenfell@gmail.com>\n\nChecker options~\n\nThis checker is initialised using the \"makeprgBuild()\" function and thus it\naccepts the standard options described at |syntastic-config-makeprg|.\n\n==============================================================================\nCONFIGURATION FILES                                   *syntastic-config-files*\n\n    Supported checkers..........|syntastic-config-checkers|\n    Naming......................|syntastic-config-naming|\n    Location....................|syntastic-config-location|\n    Format......................|syntastic-config-format|\n\n                                                   *syntastic-config-checkers*\nCurrently, the following checkers can read some of their options from\nsyntastic-specific configuration files:\n\n    ADA~\n        GCC (|syntastic-ada-gcc|)\n\n    Assembly Languages~\n        GCC (|syntastic-asm-gcc|)\n\n    C~\n        AVR-GCC (|syntastic-c-avrgcc|)\n        ClangCheck (|syntastic-c-clang_check|)\n        Clang-Tidy (|syntastic-c-clang_tidy|)\n        Cppcheck (|syntastic-c-cppcheck|)\n        GCC (|syntastic-c-gcc|)\n        OCLint (|syntastic-c-oclint|)\n        Sparse (|syntastic-c-sparse|)\n        Splint (|syntastic-c-splint|)\n\n    COBOL~\n        OpenCOBOL (|syntastic-cobol-cobc|)\n\n    C++~\n        AVR-GCC (|syntastic-cpp-avrgcc|)\n        ClangCheck (|syntastic-cpp-clang_check|)\n        Clang-Tidy (|syntastic-cpp-clang_tidy|)\n        Cppcheck (|syntastic-cpp-cppcheck|)\n        GCC (|syntastic-cpp-gcc|)\n        OCLint (|syntastic-cpp-oclint|)\n        Vera++ (|syntastic-cpp-verapp|)\n\n    D~\n        DMD (|syntastic-d-dmd|)\n\n    Fortran~\n        GNU Fortran (|syntastic-fortran-gfortran|)\n\n    Objective-C~\n        GCC (|syntastic-objc-gcc|)\n        OCLint (|syntastic-objc-oclint|)\n\n    Objective-C++~\n        GCC (|syntastic-objcpp-gcc|)\n        OCLint (|syntastic-objcpp-oclint|)\n\n    Verilog~\n        Verilator (|syntastic-verilog-verilator|)\n\n                                                     *syntastic-config-naming*\nNaming~\n\nDepending on checker, the filename of the corresponding configuration file\ncan be specified by setting either 'g:syntastic_<filetype>_config_file' or\n'g:syntastic_<checker>_config_file'. Refer to the docs for the particular\ncheckers above for the exact names.\n                                                   *syntastic-config-location*\nLocation~\n\nA configuration file is looked up in the directory of the file being checked,\nthen upwards in parent directories.  The search stops either when a file with\nthe right name is found, or when the root of the filesystem is reached.\n\nConsequently, you would normally put a configuration file in the top directory\nof your project, and you would override it when needed with other configuration\nfiles placed in subdirectories.\n                                                     *syntastic-config-format*\nFormat~\n\nThe file is expected to contain one option per line.  Empty lines and lines\nstarting with `#` are removed.  On each line, leading and trailing spaces are\nalso removed.  Each option is then escaped, so you don't have to worry about\nspecial characters.\n\nLines starting with `-I` are assumed to be include paths, and are handled\nspecially.  If the path following an `-I` is relative, it's treated as\nbeing relative to the current configuration file, and is replaced by the\ncorresponding absolute path.  If the path is absolute to begin with, it is\nleft unchanged.\n\nPlease note that, aside from `-I`, syntastic doesn't try to keep track of\noptions with arguments.  If you need to pass f.i. `-aux-info filename` to your\ncompiler you have to write `-aux-info` and `filename` on separate lines in the\nconfiguration file, otherwise syntastic will quote the space and merge them in\na single string, which is probably not what you mean: >\n    -aux-info\n    filename\n<\nIn the same vein, `=` in options not special in any way.  As stated\nabove, everything on a line (except lines starting with `-I`, as noted)\nis considered an \"option\" and escaped.\n\n vim:tw=78:sw=4:ft=help:norl:\n"
  },
  {
    "path": "doc/syntastic.txt",
    "content": "*syntastic.txt*   Syntax checking on the fly has never been so pimp.\n*syntastic*\n\n\n                    It's a bird! It's a plane! ZOMG It's ... ~\n\n                   _____             __             __  _      ~\n                  / ___/__  ______  / /_____ ______/ /_(_)____ ~\n                  \\__ \\/ / / / __ \\/ __/ __ `/ ___/ __/ / ___/ ~\n                 ___/ / /_/ / / / / /_/ /_/ (__  ) /_/ / /__   ~\n                /____/\\__, /_/ /_/\\__/\\__,_/____/\\__/_/\\___/   ~\n                     /____/                                    ~\n\n\n\n                              Reference Manual~\n\n\n==============================================================================\nCONTENTS                                                  *syntastic-contents*\n\n    1.Intro........................................|syntastic-intro|\n        1.1.Quick start............................|syntastic-quickstart|\n        1.2.Recommended settings...................|syntastic-recommended|\n    2.Functionality provided.......................|syntastic-functionality|\n        2.1.The statusline flag....................|syntastic-statusline-flag|\n        2.2.Error signs............................|syntastic-error-signs|\n        2.3.Error window...........................|syntastic-error-window|\n        2.4.Error highlighting.....................|syntastic-highlighting|\n        2.5.Aggregating errors.....................|syntastic-aggregating-errors|\n        2.6.Filtering errors.......................|syntastic-filtering-errors|\n    3.Commands.....................................|syntastic-commands|\n    4.Global Options...............................|syntastic-global-options|\n    5.Checker Options..............................|syntastic-checker-options|\n        5.1.Choosing which checkers to use.........|syntastic-filetype-checkers|\n        5.2.Choosing the executable................|syntastic-config-exec|\n        5.3.Configuring specific checkers..........|syntastic-config-makeprg|\n        5.4.Sorting errors.........................|syntastic-config-sort|\n        5.5.Filtering errors.......................|syntastic-config-filtering|\n        5.6.Debugging..............................|syntastic-config-debug|\n        5.7.Profiling..............................|syntastic-profiling|\n    6.Notes........................................|syntastic-notes|\n        6.1.Handling of composite filetypes........|syntastic-composite|\n        6.2.Editing files over network.............|syntastic-netrw|\n        6.3.The 'shellslash' option................|syntastic-shellslash|\n        6.4.Saving Vim sessions....................|syntastic-sessions|\n        6.5.The location list callback.............|syntastic-loclist-callback|\n    7.Compatibility with other software............|syntastic-compatibility|\n        7.1.airline................................|syntastic-airline|\n        7.2.The csh and tcsh shells................|syntastic-csh|\n        7.3.EasyGrep...............................|syntastic-easygrep|\n        7.4.Eclim..................................|syntastic-eclim|\n        7.5.ferret.................................|syntastic-ferret|\n        7.6.The fish shell.........................|syntastic-fish|\n        7.7.The fizsh shell........................|syntastic-fizsh|\n        7.8.flagship...............................|syntastic-flagship|\n        7.9.powerline..............................|syntastic-powerline|\n        7.10.The PowerShell shell..................|syntastic-powershell|\n        7.11.python-mode...........................|syntastic-pymode|\n        7.12.vim-auto-save.........................|syntastic-vim-auto-save|\n        7.13.vim-go................................|syntastic-vim-go|\n        7.14.vim-virtualenv........................|syntastic-vim-virtualenv|\n        7.15.YouCompleteMe.........................|syntastic-ycm|\n        7.16.The zsh shell and MacVim..............|syntastic-zsh|\n    8.About........................................|syntastic-about|\n    9.License......................................|syntastic-license|\n\n\n==============================================================================\n1. Intro                                                     *syntastic-intro*\n\nSyntastic is a syntax checking plugin that runs files through external syntax\nlinters. This can be done on demand, or automatically as files are saved\nand opened. If syntax errors are detected, the user is notified and is happy\nbecause they didn't have to compile their code or execute their script to find\nthem.\n\nSyntastic comes in two parts: the syntax checker plugins, and the core. The\nsyntax checker plugins are defined on a per-filetype basis where each one wraps\nup an external syntax checking program. The core script delegates off to these\nplugins and uses their output to provide the syntastic functionality.\n\nTake a look at the list of supported filetypes and checkers: |syntastic-checkers|.\n\nNote: This doc only deals with using syntastic. To learn how to write syntax\nchecker integrations see the guide on the GitHub wiki:\n\n    https://github.com/vim-syntastic/syntastic/wiki/Syntax-Checker-Guide\n\n------------------------------------------------------------------------------\n1.1. Quick start                                        *syntastic-quickstart*\n\nSyntastic comes preconfigured with a default list of enabled checkers per\n|filetype|. This list is kept reasonably short to prevent slowing down Vim or\ntrying to use conflicting checkers.\n\nYou can see the list of checkers available for the current filetype with the\n`:SyntasticInfo` command.\n\nYou probably want to override the configured list of checkers for the\nfiletypes you use, and also change the arguments passed to specific linters\nto suit your needs. See |syntastic-checker-options| below for details.\n\nUse `:SyntasticCheck` to manually check right now. Use `:Errors` to open the\n|location-list| window, and `:lclose` to close it. You can clear the error\nlist with `:SyntasticReset`, and you can use `:SyntasticToggleMode` to switch\nbetween active (checking on writing the buffer) and passive (manual) checking.\n\nYou don't have to switch focus to the |location-list| window to jump to the\ndifferent errors. Vim provides several built-in commands for this, for\nexample `:lnext` and `:lprevious`. You may want to add shortcut mappings for\nthese commands, or perhaps install a plugin such as Tim Pope's \"unimpaired\"\n(see https://github.com/tpope/vim-unimpaired) that provides such mappings.\n\n------------------------------------------------------------------------------\n1.2. Recommended settings                              *syntastic-recommended*\n\nSyntastic has numerous options that can be configured, and the defaults are\nnot particularly well suitable for new users. It is recommended that you start\nby adding the following lines to your vimrc, and return to them later as\nneeded: >\n    set statusline+=%#warningmsg#\n    set statusline+=%{SyntasticStatuslineFlag()}\n    set statusline+=%*\n\n    let g:syntastic_always_populate_loc_list = 1\n    let g:syntastic_auto_loc_list = 1\n    let g:syntastic_check_on_open = 1\n    let g:syntastic_check_on_wq = 0\n<\n==============================================================================\n2. Functionality provided                            *syntastic-functionality*\n\nSyntax checking can be done automatically or on demand (see\n|'syntastic_mode_map'| and `:SyntasticToggleMode` for configuring this).\n\nWhen syntax checking is done, the features below can be used to notify the\nuser of errors. See |syntastic-global-options| for how to configure and\nactivate/deactivate these features.\n\n    * A statusline flag\n    * Signs beside lines with errors\n    * The |location-list| can be populated with the errors for the associated\n      buffer\n    * Erroneous parts of lines can be highlighted (this functionality is only\n      provided by some checkers)\n    * Balloons (if the |+balloon_eval| feature is compiled in) can be used to\n      display error messages for erroneous lines when hovering the mouse over\n      them\n    * Error messages from multiple checkers can be aggregated in a single list\n\n------------------------------------------------------------------------------\n2.1. The statusline flag                           *syntastic-statusline-flag*\n\nTo use the statusline flag, this must appear in your |'statusline'| setting >\n    %{SyntasticStatuslineFlag()}\n<\nSomething like this could be more useful: >\n    set statusline+=%#warningmsg#\n    set statusline+=%{SyntasticStatuslineFlag()}\n    set statusline+=%*\n<\nWhen syntax errors are detected a flag will be shown. The content of the flag\nis derived from the |'syntastic_stl_format'| option.\n\nPlease note that these settings might conflict with other Vim plugins that\nchange the way 'statusline' works. Refer to the |syntastic-compatibility| notes\nbelow and to the respective plugins' documentation for possible solutions.\n\nIn particular see |syntastic-airline| below if you're using the \"airline\" Vim\nplugin (https://github.com/vim-airline/vim-airline). See |syntastic-flagship|\nif you're using \"flagship\" (https://github.com/tpope/vim-flagship). See also\n|syntastic-powerline| if you're using the \"powerline\" Vim plugin\n(https://github.com/powerline/powerline).\n\n------------------------------------------------------------------------------\n2.2. Error signs                                       *syntastic-error-signs*\n\nSyntastic uses the `:sign` commands (provided that the |+signs| feature is\ncompiled in) to mark lines with errors and warnings in the sign column. To\nenable this feature, use the |'syntastic_enable_signs'| option.\n\nSigns are colored using the Error and Todo syntax highlight groups by default\n(see |group-name|). If you wish to customize the colors for the signs, you\ncan use the following groups:\n    SyntasticErrorSign - For syntax errors, links to \"error\" by default\n    SyntasticWarningSign - For syntax warnings, links to \"todo\" by default\n    SyntasticStyleErrorSign - For style errors, links to \"SyntasticErrorSign\"\n                              by default\n    SyntasticStyleWarningSign - For style warnings, links to\n                                \"SyntasticWarningSign\" by default\n\nExample: >\n    highlight SyntasticErrorSign guifg=white guibg=red\n<\nTo set up highlighting for the line where a sign resides, you can use the\nfollowing highlight groups:\n    SyntasticErrorLine\n    SyntasticWarningLine\n    SyntasticStyleErrorLine - Links to \"SyntasticErrorLine\" by default\n    SyntasticStyleWarningLine - Links to \"SyntasticWarningLine\" by default\n\nExample: >\n    highlight SyntasticErrorLine guibg=#2f0000\n<\nWith Vim 8.0 or later you can ask Vim not to turn off the sign column when no\nerrors are found, by setting 'signcolumn' to \"yes\": >\n    set signcolumn=yes\n<\n------------------------------------------------------------------------------\n2.3. The error window                                   *syntastic-error-window*\n\nYou can use the `:Errors` command to display the errors for the current buffer\nin the |location-list|.\n\nBy default syntastic doesn't fill the |location-list| with the errors found by\nthe checkers, in order to reduce clashes with other plugins. Consequently, if\nyou run `:lopen` or `:lwindow` rather than `:Errors` to open the error window\nyou wouldn't see syntastic's list of errors. If you insist on using `:lopen`\nor `:lwindow` you should either run `:SyntasticSetLoclist` after running the\nchecks, or set |'syntastic_always_populate_loc_list'| which tells syntastic to\nupdate the |location-list| automatically.\n\n------------------------------------------------------------------------------\n2.4. Error highlighting                               *syntastic-highlighting*\n\nSome linters provide enough information for syntastic to be able to highlight\nerrors. By default the SpellBad syntax highlight group is used to color errors,\nand the SpellCap group is used for warnings. If you wish to customize the\ncolors for highlighting you can use the following groups:\n    SyntasticError - Links to \"SpellBad\" by default (see |hl-SpellBad|)\n    SyntasticWarning - Links to \"SpellCap\" by default (see |hl-SpellCap|)\n    SyntasticStyleError - Links to \"SyntasticError\" by default\n    SyntasticStyleWarning - Links to \"SyntasticWarning\" by default\n\nExample: >\n    highlight SyntasticError guibg=#2f0000\n<\n------------------------------------------------------------------------------\n2.5. Aggregating errors                         *syntastic-aggregating-errors*\n\nBy default, namely if |'syntastic_aggregate_errors'| is unset, syntastic runs\nin turn the checkers corresponding to the filetype of the current file (see\n|syntastic-filetype-checkers|), and stops as soon as a checker reports any\nerrors. It then notifies you of the errors using the notification mechanisms\nabove. In this mode error lists are always produced by a single checker, and,\nif you open the error window, the name of the checker that generated the errors\nis shown on the statusline of the error window.\n\nIf |'syntastic_aggregate_errors'| is set, syntastic runs all checkers that\napply (still cf. |syntastic-filetype-checkers|), then aggregates errors found\nby all checkers in a single list, and notifies you. In this mode each error\nmessage is labeled with the name of the checker that generated it, but you can\ndisable generation of these labels by turning off |'syntastic_id_checkers'|.\n\nIf |'syntastic_sort_aggregated_errors'| is set (which is the default), messages\nin the aggregated list are grouped by file, then sorted by line number, then\ntype, then column number. Otherwise messages produced by the same checker are\ngrouped together, and sorting within each group is decided by the variables\n|'syntastic_<filetype>_<checker>_sort'|.\n\n------------------------------------------------------------------------------\n2.6. Filtering errors                             *syntastic-filtering-errors*\n\nYou can selectively disable some of the errors found by checkers either\nusing |'syntastic_quiet_messages'|, or by specifying a list of patterns in\n|'syntastic_ignore_files'|.\n\nSee also: |'syntastic_<filetype>_<checker>_quiet_messages'| and\n|'b:syntastic_skip_checks'|.\n\n==============================================================================\n3. Commands                                               *syntastic-commands*\n\n:Errors                                                              *:Errors*\n\nWhen errors have been detected, use this command to pop up the |location-list|\nand display the error messages.\n\nPlease note that the `:Errors` command overwrites the current location list with\nsyntastic's own location list.\n\n:SyntasticToggleMode                                    *:SyntasticToggleMode*\n\nToggles syntastic between active and passive mode. See |'syntastic_mode_map'|\nfor more info.\n\n:SyntasticCheck                                              *:SyntasticCheck*\n\nManually cause a syntax check to be done. By default the checkers in the\n|'g:syntastic_<filetype>_checkers'| or |'b:syntastic_checkers'| lists are run,\ncf. |syntastic-filetype-checkers|. If |'syntastic_aggregate_errors'| is unset\n(which is the default), checking stops the first time a checker reports any\nerrors; if |'syntastic_aggregate_errors'| is set, all checkers that apply are\nrun in turn, and all errors found are aggregated in a single list.\n\nThe command may be followed by a (space separated) list of checkers. In this\ncase |'g:syntastic_<filetype>_checkers'| and |'b:syntastic_checkers'| are\nignored, and the checkers named by the command's arguments are run instead, in\nthe order specified. The set by |'syntastic_aggregate_errors'| still apply.\n\nExample: >\n    :SyntasticCheck flake8 pylint\n<\nYou can also run checkers for filetypes different from the current filetype\nby qualifying their names with their respective filetypes, like this:\n\"<filetype>/<checker>\".\n\nExample: >\n    :SyntasticCheck lacheck text/language_check\n<\n:SyntasticInfo                                                *:SyntasticInfo*\n\nThe command takes an optional argument, and outputs information about the\ncheckers available for the filetype named by said argument, or for the current\nfiletype if no argument was provided.\n\nExample: >\n    :SyntasticInfo python\n<\n:SyntasticReset                                              *:SyntasticReset*\n\nResets the list of errors and turns off all error notifiers.\n\n:SyntasticSetLoclist                                    *:SyntasticSetLoclist*\n\nIf |'syntastic_always_populate_loc_list'| is not set, the |location-list| is\nnot filled in automatically with the list of errors detected by the checkers.\nThis is useful if you run syntastic along with other plugins that use location\nlists. The `:SyntasticSetLoclist` command allows you to stick the errors into\nthe location list explicitly.\n\n==============================================================================\n4. Global Options                                   *syntastic-global-options*\n\n                                                   *'syntastic_check_on_open'*\nType: boolean\nDefault: 0\nIf this variable is enabled, syntastic in active mode will run syntax checks\nwhen buffers are first loaded, as well as on saving: >\n    let g:syntastic_check_on_open = 1\n<\n                                                     *'syntastic_check_on_wq'*\nType: boolean\nDefault: 1\nIn active mode syntax checks are normally run whenever buffers are written to\ndisk, even when the writes happen just before quitting Vim. If you want to\nskip checks when you issue `:wq`, `:x`, and `:ZZ`, set this variable to 0: >\n    let g:syntastic_check_on_wq = 0\n<\n                                                *'syntastic_aggregate_errors'*\nType: boolean\nDefault: 0\nWhen enabled, syntastic runs all checkers that apply to the current filetype,\nthen aggregates errors found by all checkers and displays them. When disabled,\nsyntastic runs each checker in turn, and stops to display the results the first\ntime a checker finds any errors. >\n    let g:syntastic_aggregate_errors = 1\n<\n                                                     *'syntastic_id_checkers'*\nType: boolean\nDefault: 1\nWhen results from multiple checkers are aggregated in a single error list\n(that is either when |'syntastic_aggregate_errors'| is enabled, or when\nchecking a file with a composite filetype, cf. |syntastic-composite|), it\nmight not be immediately obvious which checker has produced a given error\nmessage. This variable instructs syntastic to label error messages with the\nnames of the checkers that created them. >\n    let g:syntastic_id_checkers = 0\n<\n                                          *'syntastic_sort_aggregated_errors'*\nType: boolean\nDefault: 1\nBy default, when results from multiple checkers are aggregated in a single\nerror list (that is either when |'syntastic_aggregate_errors'| is enabled, or\nwhen checking a file with a composite filetype, cf. |syntastic-composite|),\nerrors are grouped by file, then sorted by line number, then grouped by type\n(namely errors take precedence over warnings), then they are sorted by column\nnumber. If you want to leave messages grouped by checker output, set this\nvariable to 0: >\n    let g:syntastic_sort_aggregated_errors = 0\n<\n                                              *'syntastic_echo_current_error'*\nType: boolean\nDefault: 1\nIf enabled, syntastic will echo current error to the command window. If\nmultiple errors are found on the same line, |'syntastic_cursor_columns'| is\nused to decide which one is shown. >\n    let g:syntastic_echo_current_error = 1\n<\n                                                  *'syntastic_cursor_columns'*\nType: boolean\nDefault: 1\nThis option controls which errors are echoed to the command window if\n|'syntastic_echo_current_error'| is set and multiple errors are found on the\nsame line. When the option is enabled, the first error corresponding to the\ncurrent column is shown. Otherwise, the first error on the current line is\nechoed, regardless of the cursor position on the current line.\n\nWhen dealing with very large lists of errors, disabling this option can speed\nup navigation significantly: >\n    let g:syntastic_cursor_column = 0\n<\n                                                    *'syntastic_enable_signs'*\nType: boolean\nDefault: 1\nUse this option to tell syntastic whether to use the `:sign` interface to mark\nsyntax errors: >\n    let g:syntastic_enable_signs = 1\n<\n                     *'syntastic_error_symbol'* *'syntastic_style_error_symbol'*\n                 *'syntastic_warning_symbol'* *'syntastic_style_warning_symbol'*\nType: string\nUse these options to control what the syntastic `:sign` text contains. Several\nerror symbols can be customized:\n    syntastic_error_symbol - For syntax errors, defaults to \">>\"\n    syntastic_style_error_symbol - For style errors, defaults to \"S>\"\n    syntastic_warning_symbol - For syntax warnings, defaults to \">>\"\n    syntastic_style_warning_symbol - For style warnings, defaults to \"S>\"\n\nExample: >\n    let g:syntastic_error_symbol = \"\\u2717\"\n    let g:syntastic_warning_symbol = \"\\u26A0\"\n<\n                                                 *'syntastic_enable_balloons'*\nType: boolean\nDefault: 1\nUse this option to tell syntastic whether to display error messages in balloons\nwhen the mouse is hovered over erroneous lines: >\n    let g:syntastic_enable_balloons = 1\n<\nNote that Vim must be compiled with |+balloon_eval|.\n\n                                             *'syntastic_enable_highlighting'*\nType: boolean\nDefault: 1\nUse this option to tell syntastic whether to use syntax highlighting to mark\nerrors (where possible). Highlighting can be turned off with the following >\n    let g:syntastic_enable_highlighting = 0\n<\n                                        *'syntastic_always_populate_loc_list'*\nType: boolean\nDefault: 0\nBy default syntastic doesn't fill the |location-list| with the errors found\nby the checkers, in order to reduce clashes with other plugins. Enable this\noption to tell syntastic to always stick any detected errors into the\n|location-list|: >\n    let g:syntastic_always_populate_loc_list = 1\n<\nPlease note that if |'syntastic_auto_jump'| is set to a non-zero value the\nlocation list is overwritten with Syntastic's own list when taking a jump,\nregardless of the value of |'syntastic_always_populate_loc_list'|. The\nlocation list is also overwritten when running the `:Errors` command.\n\n                                                       *'syntastic_auto_jump'*\nType: integer\nDefault: 0\nEnable this option if you want the cursor to jump to the first detected issue\nwhen saving or opening a file.\n\nWhen set to 0 the cursor won't jump automatically. >\n    let g:syntastic_auto_jump = 0\n<\nWhen set to 1 the cursor will always jump to the first issue detected,\nregardless of type. >\n    let g:syntastic_auto_jump = 1\n<\nWhen set to 2 the cursor will jump to the first issue detected, but only if\nthis issue is an error. >\n    let g:syntastic_auto_jump = 2\n<\nWhen set to 3 the cursor will jump to the first error detected, if any. If\nall issues detected are warnings, the cursor won't jump. >\n    let g:syntastic_auto_jump = 3\n<\nPlease note that in either situation taking the jump also has the side effect\nof the location list being overwritten with Syntastic's own location list,\nregardless of the value of |'syntastic_always_populate_loc_list'|.\n\n                                                   *'syntastic_auto_loc_list'*\nType: integer\nDefault: 2\nUse this option to tell syntastic to automatically open and/or close the\n|location-list| (see |syntastic-error-window|).\n\nWhen set to 0 the error window will be neither opened nor closed\nautomatically. >\n    let g:syntastic_auto_loc_list = 0\n<\nWhen set to 1 the error window will be automatically opened when errors are\ndetected, and closed when none are detected. >\n    let g:syntastic_auto_loc_list = 1\n<\nWhen set to 2 the error window will be automatically closed when no errors are\ndetected, but not opened automatically. >\n    let g:syntastic_auto_loc_list = 2\n<\nWhen set to 3 the error window will be automatically opened when errors are\ndetected, but not closed automatically. >\n    let g:syntastic_auto_loc_list = 3\n<\n                                                 *'syntastic_loc_list_height'*\nType: integer\nDefault: 10\nUse this option to specify the height of the location lists that syntastic\nopens. >\n    let g:syntastic_loc_list_height = 5\n<\n                                                    *'syntastic_ignore_files'*\nType: list of strings\nDefault: []\nUse this option to specify files that syntastic should never check. It's a\nlist of |regular-expression| patterns. The full paths of files (see |::p|) are\nmatched against these patterns, and the matches are case-sensitive. Use |\\c|\nto specify case-insensitive patterns. Example: >\n    let g:syntastic_ignore_files = ['\\m^/usr/include/', '\\m\\c\\.h$']\n<\n                                                    *'syntastic_filetype_map'*\nType: dictionary\nDefault: {}\nUse this option to map non-standard filetypes to standard ones.  Corresponding\ncheckers are mapped accordingly, which allows syntastic to check files with\nnon-standard filetypes: >\n    let g:syntastic_filetype_map = {\n        \\ \"plaintex\": \"tex\",\n        \\ \"gentoo-metadata\": \"xml\" }\n<\nComposite filetypes (cf. |syntastic-composite|) can also be mapped to simple\ntypes, which disables the default behaviour of running both checkers against\nthe input file: >\n    let g:syntastic_filetype_map = { \"handlebars.html\": \"handlebars\" }\n<\n                                                        *'syntastic_mode_map'*\nType: dictionary\nDefault: { \"mode\": \"active\",\n           \"active_filetypes\": [],\n           \"passive_filetypes\": [] }\nUse this option to fine tune when automatic syntax checking is done (or not\ndone).\n\nThe option should be set to something like: >\n    let g:syntastic_mode_map = {\n        \\ \"mode\": \"active\",\n        \\ \"active_filetypes\": [\"ruby\", \"php\"],\n        \\ \"passive_filetypes\": [\"puppet\"] }\n<\n\"mode\" can be mapped to one of two values - \"active\" or \"passive\". When set\nto \"active\", syntastic does automatic checking whenever a buffer is saved or\ninitially opened. When set to \"passive\" syntastic only checks when the user\ncalls `:SyntasticCheck`.\n\nThe exceptions to these rules are defined with \"active_filetypes\" and\n\"passive_filetypes\". In passive mode, automatic checks are still done for\nfiletypes in the \"active_filetypes\" array (and \"passive_filetypes\" is\nignored). In active mode, automatic checks are not done for any filetypes in\nthe \"passive_filetypes\" array (\"active_filetypes\" is ignored).\n\nIf any of \"mode\", \"active_filetypes\", or \"passive_filetypes\" are left\nunspecified, they default to values above.\n\nIf local variable |'b:syntastic_mode'| is defined its value takes precedence\nover all calculations involving |'syntastic_mode_map'| for the corresponding\nbuffer.\n\nAt runtime, the `:SyntasticToggleMode` command can be used to switch between\nactive and passive modes.\n\n                                                          *'b:syntastic_mode'*\nType: string\nDefault: unset\nOnly the local form |'b:syntastic_mode'| is used. When set to either \"active\"\nor \"passive\", it takes precedence over |'syntastic_mode_map'| when deciding\nwhether the corresponding buffer should be checked automatically.\n\n                                                  *'syntastic_quiet_messages'*\nType: dictionary\nDefault: {}\nUse this option to filter out some of the messages produced by checkers. The\noption should be set to something like: >\n    let g:syntastic_quiet_messages = {\n        \\ \"!level\":  \"errors\",\n        \\ \"type\":    \"style\",\n        \\ \"regex\":   '\\m\\[C03\\d\\d\\]',\n        \\ \"file:p\":  ['\\m^/usr/include/', '\\m\\c\\.h$'] }\n<\nEach element turns off messages matching the patterns specified by the\ncorresponding value. Values are lists, but if a list consists of a single\nelement you may omit the brackets (e.g. you may write \"style\" instead of\n[\"style\"]). Elements with values [] or \"\" are ignored (this is useful for\noverriding filters, cf. |filter-overrides|).\n\n    \"level\" - takes one of two values, \"warnings\" or \"errors\"\n    \"type\"  - can be either \"syntax\" or \"style\"\n    \"regex\" - each item in list is matched against the messages' text as a\n              case-insensitive |regular-expression|\n    \"file\"  - each item in list is matched against the filenames the messages\n              refer to, as a case-sensitive |regular-expression|.\n\nIf a key is prefixed by an exclamation mark \"!\", the corresponding filter is\nnegated (i.e. the above example silences all messages that are NOT errors).\n\nThe \"file\" key may be followed by one or more filename modifiers (see\n|filename-modifiers|). The modifiers are applied to the filenames the messages\nrefer to before matching against the value (i.e. in the above example the full\npath of the issues are matched against '\\m^/usr/include/' and '\\m\\c\\.h$').\n\nIf |'syntastic_id_checkers'| is set, filters are applied before error messages\nare labeled with the names of the checkers that created them.\n\nThere are also checker-specific variants of this option, providing finer\ncontrol. They are named |'syntastic_<filetype>_<checker>_quiet_messages'|.\n\nFor a particular checker, if both a |'syntastic_quiet_messages'| filter and\na checker-specific filter are present, they are both applied to the list of\nerrors produced by the said checker. In case of conflicting values for the\nsame keys, the values of the checker-specific filters take precedence.\n\n                                                            *filter-overrides*\nSince filter elements with values [] or \"\" are ignored, you can disable global\nfilters for particular checkers, by setting the values of the corresponding\nelements in |'syntastic_<filetype>_<checker>_quiet_messages'| to [] or \"\". For\nexample, the following setting will silence all warnings, except for the\nones produced by \"pylint\": >\n    let g:syntastic_quiet_messages = { \"level\": \"warnings\" }\n    let g:syntastic_python_pylint_quiet_messages = { \"level\" : [] }\n<\n                                                      *'syntastic_stl_format'*\nType: string\nDefault: \"[Syntax: line:%F (%t)]\"\nUse this option to control what the syntastic statusline text contains. Several\nmagic flags are available to insert information:\n    %e  - number of errors\n    %w  - number of warnings\n    %t  - total number of warnings and errors\n    %ne - filename of file containing first error\n    %nw - filename of file containing first warning\n    %N  - filename of file containing first warning or error\n    %pe - filename with path of file containing first error\n    %pw - filename with path of file containing first warning\n    %P  - filename with path of file containing first warning or error\n    %fe - line number of first error\n    %fw - line number of first warning\n    %F  - line number of first warning or error\n\nThese flags accept width and alignment controls similar to the ones used by\n|'statusline'| flags:\n    %-0{minwid}.{maxwid}{flag}\n\nAll fields except {flag} are optional. A single percent sign can be given as\n\"%%\".\n\nSeveral additional flags are available to hide text under certain conditions:\n    %E{...} - hide the text in the brackets unless there are errors\n    %W{...} - hide the text in the brackets unless there are warnings\n    %B{...} - hide the text in the brackets unless there are both warnings AND\n              errors\nThese flags can't be nested.\n\nExample: >\n    let g:syntastic_stl_format = \"[%E{Err: %fe #%e}%B{, }%W{Warn: %fw #%w}]\"\n<\nIf this format is used and the current buffer has 5 errors and 1 warning\nstarting on lines 20 and 10 respectively then this would appear on the\nstatusline: >\n    [Err: 20 #5, Warn: 10 #1]\n<\nIf the buffer had 2 warnings, starting on line 5 then this would appear: >\n    [Warn: 5 #2]\n<\n                                                   *'b:syntastic_skip_checks'*\nType: boolean\nDefault: unset\nOnly the local form |'b:syntastic_skip_checks'| is used. When set to a true\nvalue, no checks are run against the corresponding buffer. Example: >\n    let b:syntastic_skip_checks = 1\n<\n                                                    *'syntastic_full_redraws'*\nType: boolean\nDefault: 0 in GUI Vim and MacVim, 1 otherwise\nControls whether syntastic calls `:redraw` or `:redraw!` for screen redraws.\nChanging it can in principle make screen redraws smoother, but it can also\ncause screen to flicker, or cause ghost characters. Leaving it to the default\nshould be safe.\n\n                                                     *'syntastic_exit_checks'*\nType: boolean\nDefault: 0 when running under \"cmd.exe\" on Windows, 1 otherwise\nSyntastic attempts to catch abnormal termination conditions from linters by\nlooking at their exit codes. The \"cmd.exe\" shell on Windows make these checks\nmeaningless, by returning 1 to Vim when the linters exit with non-zero codes.\nThe above variable can be used to disable exit code checks in syntastic.\n\n                                                           *'syntastic_shell'*\nType: string\nDefault: Vim's 'shell'\nThis is the (full path to) the shell syntastic will use to run the linters.\nOn UNIX and Mac OS-X this shell must accept Bourne-compatible syntax for\nfile \"stdout\" and \"stderr\" redirections \">file\" and \"2>file\". Examples of\ncompatible shells are \"zsh\", \"bash\", \"ksh\", and of course the original Bourne\n\"sh\".\n\nThis shell is independent of Vim's 'shell', and it isn't used for interactive\noperations. It must take care to initialize all environment variables needed\nby the linters you're using. Example: >\n    let g:syntastic_shell = \"/bin/sh\"\n<\n                                             *'syntastic_nested_autocommands'*\nType: boolean\nDefault: 0\nControls whether syntastic's autocommands |BufReadPost| and |BufWritePost|\nare called from other |BufReadPost| and |BufWritePost| autocommands (see\n|autocmd-nested|). This is known to trigger interoperability problems with\nother plugins, so only enable it if you actually need that functionality.\n\n                                                           *'syntastic_debug'*\nType: integer\nDefault: 0\nSet this to the sum of one or more of the following flags to enable\ndebugging:\n\n     1 - trace general workflow\n     2 - dump location lists\n     4 - trace notifiers\n     8 - trace autocommands\n    16 - dump options\n    32 - trace running of specific checkers\n\nExample: >\n    let g:syntastic_debug = 1\n<\nSyntastic will then add debugging messages to Vim's |message-history|. You can\nexamine these messages with `:mes`.\n\n                                                      *'syntastic_debug_file'*\nType: string\nDefault: unset\nWhen set, debugging messages are written to the file named by its value, in\naddition to being added to Vim's |message-history|: >\n    let g:syntastic_debug_file = \"~/syntastic.log\"\n<\n                                                 *'syntastic_extra_filetypes'*\nType: list of strings\nDefault: []\nList of filetypes handled by checkers external to syntastic. If you have a Vim\nplugin that adds a checker for syntastic, and if the said checker deals with a\nfiletype that is unknown to syntastic, you might consider adding that filetype\nto this list: >\n    let g:syntastic_extra_filetypes = [ \"make\", \"gitcommit\" ]\n<\nThis will allow `:SyntasticInfo` to do proper tab completion for the new\nfiletypes.\n\n==============================================================================\n5. Checker Options                                 *syntastic-checker-options*\n\n------------------------------------------------------------------------------\n5.1. Choosing which checkers to use              *syntastic-filetype-checkers*\n\n                                           *'g:syntastic_<filetype>_checkers'*\nYou can tell syntastic which checkers to run for a given filetype by setting a\nvariable 'g:syntastic_<filetype>_checkers' to a list of checkers, e.g. >\n    let g:syntastic_php_checkers = [\"php\", \"phpcs\", \"phpmd\"]\n<\n                                                      *'b:syntastic_checkers'*\nThere is also a per-buffer version of this setting, |'b:syntastic_checkers'|.\nWhen set, it takes precedence over |'g:syntastic_<filetype>_checkers'|. You can\nuse this in an autocmd to configure specific checkers for particular paths: >\n    autocmd FileType python if stridx(expand(\"%:p\"), \"/some/path/\") == 0 |\n        \\ let b:syntastic_checkers = [\"pylint\"] | endif\n<\nIf neither |'g:syntastic_<filetype>_checkers'| nor |'b:syntastic_checkers'|\nis set a default list of checkers is used. Beware however that this list is\ndeliberately kept minimal, for performance reasons.\n\nYou can specify checkers for other filetypes anywhere in these lists, by\nqualifying their names with their respective filetypes: >\n    let g:syntastic_tex_checkers = [\"lacheck\", \"text/language_check\"]\n<\nTake a look elsewhere in this manual to find out what checkers and filetypes\nare supported by syntastic: |syntastic-checkers|.\n\nUse `:SyntasticInfo` to see which checkers are available for a given filetype.\n\n------------------------------------------------------------------------------\n5.2. Choosing the executable                           *syntastic-config-exec*\n\n                                       *'syntastic_<filetype>_<checker>_exec'*\nThe executable run by a checker is normally defined automatically, when the\nchecker is registered. You can however override it, by setting the variable\n'g:syntastic_<filetype>_<checker>_exec': >\n    let g:syntastic_ruby_mri_exec = \"~/bin/ruby2\"\n<\nThis variable has a local version, 'b:syntastic_<filetype>_<checker>_exec',\nwhich takes precedence over the global one in the corresponding buffer.\n\n                                                *'b:syntastic_<checker>_exec'*\nThere is also a local variable named 'b:syntastic_<checker>_exec', which\ntakes precedence over both 'b:syntastic_<filetype>_<checker>_exec' and\n'g:syntastic_<filetype>_<checker>_exec' in the buffers where it is defined.\n\n------------------------------------------------------------------------------\n5.3. Configuring specific checkers                  *syntastic-config-makeprg*\n\nLinters are run by constructing a command line and by passing it to a shell\n(see |'shell'| and |'syntastic_shell'|). In most cases this command line is\nbuilt using an internal function named \"makeprgBuild()\", which provides a\nnumber of options that allow you to customise every part of the command that\ngets called.\n\n                                   *'syntastic_<filetype>_<checker>_<option>'*\nCheckers that use \"makeprgBuild()\" construct the corresponding command line\nlike this: >\n    let makeprg = self.makeprgBuild({\n                \\ \"exe\": self.getExec(),\n                \\ \"args\": \"-a -b -c\",\n                \\ \"fname\": shellescape(expand(\"%\", 1)),\n                \\ \"post_args\": \"--more --args\",\n                \\ \"tail\": \"2>/dev/null\" })\n<\nThe result is a command line of the form: >\n    <exe> <args> <fname> <post_args> <tail>\n<\nAll fields above are optional, and can be overridden by setting global\nvariables 'g:syntastic_<filetype>_<checker-name>_<option-name>' - even\nparameters not specified in the call to \"makeprgBuild()\". For example to\noverride the arguments and the tail: >\n    let g:syntastic_c_pc_lint_args = \"-w5 -Iz:/usr/include/linux\"\n    let g:syntastic_c_pc_lint_tail = \"2>/dev/null\"\n<\nThese variables also have buffer-local versions named\n'b:syntastic_<filetype>_<checker-name>_<option-name>', which takes precedence\nover the global ones in the corresponding buffers.\n\nYou can see the final outcome of setting these variables in the debug logs\n(cf. |syntastic-config-debug|).\n\nSpecial characters need to be escaped, so that they can survive shell\nexpansions. Vim function |shellescape()| can help you with escaping: >\n    let g:syntastic_c_cppcheck_args =\n        \\ \"-DBUILD_BASENAME=my-module \" . shellescape(\"-DBUILD_STR(s)=#s\")\n<\nAlternatively, you can tell syntastic to escape special characters by turning\nthe value into a list: >\n    let g:syntastic_c_cppcheck_args =\n        \\ [\"-DBUILD_BASENAME=my-module\", \"-DBUILD_STR(s)=#s\"]\n<\nEach element of this list is then escaped as needed, and turned into a\nseparate argument for the shell.\n\n                                                      *syntastic-config-empty*\nIf one of the above variables has a non-empty default and you want it to be\nempty, you can set it to an empty string, e.g.: >\n    let g:syntastic_javascript_jslint_args = \"\"\n<\n                                        *'syntastic_<filetype>_<checker>_exe'*\nThe 'exe' option is special. Normally it is the same as the 'exec' attribute\ndescribed above, but you can use it to add environment variables to the\ncommand line, or to change the way the linter is run. For example this setup\nallows you to run PC-Lint on Linux, under Wine emulation: >\n    let  g:syntastic_c_pc_lint_exec = \"wine\"\n    let  g:syntastic_c_pc_lint_exe = \"wine c:/path/to/lint-nt.exe\"\n<\n                                      *'syntastic_<filetype>_<checker>_fname'*\n\nThe 'fname' option is also special. Normally it is automatically set by\nsyntastic to the name of the current file, but you can change that as needed.\nFor example you can tell the SML/NJ compiler to use Compilation Manager by\nomitting the filename from the command line: >\n    let g:syntastic_sml_smlnj_fname = \"\"\n<\n                                            *syntastic-config-no-makeprgbuild*\nFor checkers that do not use the \"makeprgBuild()\" function any specific\noptions that can be set should be documented in this manual (see\n|syntastic-checkers|).\n\n------------------------------------------------------------------------------\n5.4. Sorting errors                                    *syntastic-config-sort*\n\n                                       *'syntastic_<filetype>_<checker>_sort'*\nSyntastic may decide to group the errors produced by some checkers by file,\nthen sort them by line number, then by type, then by column number. If you'd\nprefer to see the errors in the order in which they are output by the external\nchecker you can set the variable |'g:syntastic_<filetype>_<checker>_sort'| to 0.\n\nAlternatively, if syntastic doesn't reorder the errors produced by a checker\nbut you'd like it to sort them, you can set the same variable to 1.\n\nThere is also a local version |'b:syntastic_<filetype>_<checker>_sort'| of\nthis variable, that takes precedence over it in the buffers where it is\ndefined.\n\nFor aggregated lists (see |syntastic-aggregating-errors|) these variables are\nignored if |'syntastic_sort_aggregated_errors'| is set (which is the default).\n\n------------------------------------------------------------------------------\n5.5. Filtering errors                             *syntastic-config-filtering*\n\n                             *'syntastic_<filetype>_<checker>_quiet_messages'*\nFinally, variables 'g:syntastic_<filetype>_<checker-name>_quiet_messages' can\nbe used to filter out some of the messages produced by specific checkers. The\neffect is identical to that of |syntastic_quiet_messages|, except only messages\nfrom the corresponding checkers are filtered. Example: >\n    let g:syntastic_python_pylama_quiet_messages = {\n        \\ \"type\":  \"style\",\n        \\ \"regex\": '\\m\\[C03\\d\\d\\]' }\n<\nThe syntax is of course identical to that of |syntastic_quiet_messages|.\n\n------------------------------------------------------------------------------\n5.6. Debugging                                        *syntastic-config-debug*\n                                                             *syntastic-debug*\n\nSyntastic can log a trace of its working to Vim's |message-history|. To verify\nthe command line constructed by syntastic to run a linter, set the variable\n|'syntastic_debug'| to a non-zero value, run the checker, then run `:mes` to\ndisplay the messages, and look for \"makeprg\" in the output.\n\nFrom a user's perspective, the useful values for |'syntastic_debug'| are 1, 3,\nand 33:\n\n     1 - logs syntastic's workflow\n     3 - logs workflow, linter's output, and |location-list| manipulations\n    33 - logs workflow and checker-specific details (such as version checks).\n\nDebug logs can be saved to a file; see |'syntastic_debug_file'| for details.\n\nSetting |'syntastic_debug'| to 0 turns off logging.\n\n------------------------------------------------------------------------------\n5.7. Profiling                                           *syntastic-profiling*\n\nA very useful tool for debugging performance problems is Vim's built-in\n|profiler|. In order to enable profiling for syntastic you need to add two lines\nto your vimrc (not to gvimrc): >\n    profile start syntastic.log\n    profile! file */syntastic/*\n<\n(assuming your copy of syntastic lives in a directory creatively named\n\"syntastic\"). These lines must be executed before syntastic is loaded, so you\nneed to put them before package managers such as \"pathogen\" or \"Vundle\", and\n(in newer Vim versions) before any commands related to |packages|.\n\nA log file is created in the current directory, and is updated when you quit\nVim.\n\n==============================================================================\n6. Notes                                                     *syntastic-notes*\n\n------------------------------------------------------------------------------\n6.1. Handling of composite filetypes                     *syntastic-composite*\n\nSome Vim plugins use composite filetypes, such as \"django.python\" or\n\"handlebars.html\". Normally syntastic deals with this situation by splitting\nthe filetype in its simple components, and calling all checkers that apply.\nIf this behaviour is not desirable, you can disable it by mapping the\ncomposite filetypes to simple ones using |'syntastic_filetype_map'|, e.g.: >\n    let g:syntastic_filetype_map = { \"handlebars.html\": \"handlebars\" }\n<\n------------------------------------------------------------------------------\n6.2. Editing files over network                              *syntastic-netrw*\n\nThe standard plugin |netrw| allows Vim to transparently edit files over\nnetwork and inside archives. Currently syntastic doesn't support this mode\nof operation. It can only check files that can be accessed directly by local\nlinters, without any translation or conversion.\n\n------------------------------------------------------------------------------\n6.3. The 'shellslash' option                            *syntastic-shellslash*\n\nThe 'shellslash' option is relevant only on Windows systems. This option\ndetermines (among other things) the rules for quoting command lines, and there\nis no easy way for syntastic to make sure its state is appropriate for your\nshell. It should be turned off if your 'shell' (or |'syntastic_shell'|) is\n\"cmd.exe\", and on for shells that expect an UNIX-like syntax, such as Cygwin's\n\"sh\". Most checkers will stop working if 'shellslash' is set to the wrong\nvalue.\n\n------------------------------------------------------------------------------\n6.4. Saving Vim sessions                                  *syntastic-sessions*\n\nIf you use `:mksession` to save Vim sessions you should probably make sure to\nremove option \"blank\" from 'sessionoptions': >\n    set sessionoptions-=blank\n<\nThis will prevent `:mksession` from saving |syntastic-error-window| as empty\nquickfix windows.\n\n------------------------------------------------------------------------------\n6.5. The location list callback                   *syntastic-loclist-callback*\n\n                                                        *SyntasticCheckHook()*\nSyntastic also gives you direct access to the list of errors.  A function\nnamed |SyntasticCheckHook()| is called by syntastic (if it exists) right\nbefore populating the |location-list| and enabling the notifiers. The function\ntakes exactly one argument, the list of errors in |location-list| format (see\n|getqflist()| for details). format. You can do essentially anything with this\nlist, as long as you don't change its format, and you don't add or remove\nelements.\n\nFor example the following function will make the error window smaller if fewer\nthan 10 errors are found: >\n    function! SyntasticCheckHook(errors)\n        if !empty(a:errors)\n            let g:syntastic_loc_list_height = min([len(a:errors), 10])\n        endif\n    endfunction\n<\n(Please keep in mind however that Vim options |winheight| and |winminheight|\nalso affect window sizes.)\n\n==============================================================================\n7. Compatibility with other software                 *syntastic-compatibility*\n\n------------------------------------------------------------------------------\n7.1. airline                                               *syntastic-airline*\n\nThe \"airline\" Vim plugin (https://github.com/vim-airline/vim-airline) comes\nwith an extension for showing syntastic-related flags on the |'statusline'|.\n\n\"airline\" versions v0.8 and earlier use |'syntastic_stl_format'| to format the\n|'statusline'| flags. Newer versions ignore |'syntastic_stl_format'|, and require\nyou to set variables 'airline#extensions#syntastic#stl_format_err' and\n'airline#extensions#syntastic#stl_format_warn' separately for errors and\nwarnings (with the same syntax as |'syntastic_stl_format'|) if you want to\nchange the flags from the defaults.\n\nWhen using \"airline\" you should NOT follow the recommendation outlined in\nthe |syntastic-statusline-flag| section above to modify your |'statusline'|.\n\"airline\" shall make all necessary changes automatically.\n\n------------------------------------------------------------------------------\n7.2. The csh and tcsh shells                                   *syntastic-csh*\n\nThe \"csh\" and \"tcsh\" shells are mostly compatible with syntastic. However,\nsome checkers assume Bourne shell syntax for redirecting \"stderr\". For this\nreason, you should point |'syntastic_shell'| to a Bourne-compatible shell,\nsuch as \"zsh\", \"bash\", \"ksh\", or even the original Bourne \"sh\": >\n    let g:syntastic_shell = \"/bin/sh\"\n<\n------------------------------------------------------------------------------\n7.3. EasyGrep                                             *syntastic-easygrep*\n\nThe \"EasyGrep\" Vim plugin (https://github.com/dkprice/vim-easygrep) can use\neither |quickfix| lists, or location lists (see |location-list|). Syntastic can\nbe run along with \"EasyGrep\" provided that the latter is configured to use\n|quickfix| lists (which is the default at the time of this writing): >\n    let g:EasyGrepWindow = 0\n<\n------------------------------------------------------------------------------\n7.4. Eclim                                                   *syntastic-eclim*\n\nSyntastic can be used together with \"Eclim\" (see http://eclim.org/). However,\nby default Eclim disables syntastic's checks for the filetypes it supports, in\norder to run its own validation. If you'd prefer to use Eclim but still run\nsyntastic's checks, set |g:EclimFileTypeValidate| to 0: >\n    let g:EclimFileTypeValidate = 0\n<\nIt is also possible to re-enable syntastic checks only for some filetypes, and\nrun Eclim's validation for others. Please consult Eclim's documentation for\ndetails.\n\n------------------------------------------------------------------------------\n7.5. ferret                                                 *syntastic-ferret*\n\nAt the time of this writing syntastic conflicts with the \"ferret\" Vim plugin\n(https://github.com/wincent/ferret). The \"ferret\" plugin assumes control over\nloclist windows even when configured to use |quickfix| lists. This interferes\nwith syntastic's functioning.\n\n------------------------------------------------------------------------------\n7.6. The fish shell                                           *syntastic-fish*\n\nAt the time of this writing the \"fish\" shell (see http://fishshell.com/)\ndoesn't support the standard UNIX syntax for file redirections, and thus it\ncan't be used together with syntastic. You can however set |'syntastic_shell'|\nto a more traditional shell, such as \"zsh\", \"bash\", \"ksh\", or even the\noriginal Bourne \"sh\": >\n    let g:syntastic_shell = \"/bin/sh\"\n<\n------------------------------------------------------------------------------\n7.7. The fizsh shell                                         *syntastic-fizsh*\n\nUsing syntastic with the \"fizsh\" shell (see https://github.com/zsh-users/fizsh)\nis possible, but potentially problematic. In order to do it you'll need to set\n'shellredir' like this: >\n    set shellredir=>%s\\ 2>&1\n<\nPlease keep in mind however that Vim can't take advantage of any of the\ninteractive features of \"fizsh\". Using a more traditional shell such as \"zsh\",\n\"bash\", \"ksh\", or the original Bourne \"sh\" might be a better choice: >\n    let g:syntastic_shell = \"/bin/sh\"\n<\n------------------------------------------------------------------------------\n7.8. flagship                                             *syntastic-flagship*\n\nThe \"flagship\" Vim plugin (https://github.com/tpope/vim-flagship) has its\nown mechanism of showing flags on the |'statusline'|. To allow \"flagship\"\nto manage syntastic's statusline flag add the following |autocommand| to\nyour vimrc, rather than explicitly adding the flag to your |'statusline'| as\ndescribed in the |syntastic-statusline-flag| section above: >\n    autocmd User Flags call Hoist(\"window\", \"SyntasticStatuslineFlag\")\n<\n------------------------------------------------------------------------------\n7.9. powerline                                           *syntastic-powerline*\n\nThe \"powerline\" Vim plugin (https://github.com/powerline/powerline) comes\npackaged with a syntastic segment. To customize this segment create a file\n\"~/.config/powerline/themes/vim/default.json\", with a content like this: >\n    {\n        \"segment_data\" : {\n            \"powerline.segments.vim.plugin.syntastic.syntastic\" : {\n                \"args\" : {\n                    \"err_format\" : \"Err: {first_line} #{num} \",\n                    \"warn_format\" : \"Warn: {first_line} #{num} \"\n                }\n            }\n        }\n    }\n<\n------------------------------------------------------------------------------\n7.10. The PowerShell shell                              *syntastic-powershell*\n\nAt the time of this writing syntastic is not compatible with using\n\"PowerShell\" (https://msdn.microsoft.com/en-us/powershell) as Vim's 'shell'.\nYou may still run Vim from \"PowerShell\", but you do have to point Vim's\n'shell' to a more traditional program, such as \"cmd.exe\" on Windows, or\n\"/bin/sh\" on UNIX: >\n    set shell=c:\\Windows\\system32\\cmd.exe\n    set shell=/bin/sh\n<\n------------------------------------------------------------------------------\n7.11. python-mode                                           *syntastic-pymode*\n\nSyntastic can be used along with the \"python-mode\" Vim plugin (see\nhttps://github.com/klen/python-mode). However, they both run syntax checks by\ndefault when you save buffers to disk, and this is probably not what you want.\nTo avoid both plugins opening error windows, you can either set passive mode\nfor python in syntastic (see |'syntastic_mode_map'|), or disable lint checks in\n\"python-mode\", by setting |pymode_lint_on_write| to 0. E.g.: >\n    let g:pymode_lint_on_write = 0\n<\n------------------------------------------------------------------------------\n7.12. vim-auto-save                                  *syntastic-vim-auto-save*\n\nSyntastic can be used together with the \"vim-auto-save\" Vim plugin (see\nhttps://github.com/907th/vim-auto-save). However, syntastic checks in active\nmode only work with \"vim-auto-save\" version 0.1.7 or later.\n\n------------------------------------------------------------------------------\n7.13. vim-go                                                *syntastic-vim-go*\n\nSyntastic can be used along with the \"vim-go\" Vim plugin (see\nhttps://github.com/fatih/vim-go). However, both \"vim-go\" and syntastic run\nsyntax checks by default when you save buffers to disk. To avoid conflicts,\nyou have to either set passive mode in syntastic for the \"go\" filetype (see\n|syntastic_mode_map|), or prevent \"vim-go\" from showing a quickfix window when\n|g:go_fmt_command| fails, by setting |g:go_fmt_fail_silently| to 1. E.g.: >\n    let g:go_fmt_fail_silently = 1\n<\n\"vim-go\" version 1.4 and earlier always uses |quickfix| lists. Starting with\nversion 1.5, \"vim-go\" can also use location lists (see |location-list|). To\navoid conflicts with syntastic, you probably want to configure \"vim-go\" to\nstick with |quickfix| lists: >\n    let g:go_list_type = \"quickfix\"\n<\n------------------------------------------------------------------------------\n7.14. vim-virtualenv                                *syntastic-vim-virtualenv*\n\nAt the time of this writing, syntastic can't run linters installed\nin Python virtual environments activated by \"vim-virtualenv\" (see\nhttps://github.com/jmcantrell/vim-virtualenv). This is a limitation of\n\"vim-virtualenv\".\n\n------------------------------------------------------------------------------\n7.15. YouCompleteMe                                            *syntastic-ycm*\n\nSyntastic can be used together with the \"YouCompleteMe\" Vim plugin (see\nhttps://github.com/ycm-core/YouCompleteMe). However, by default \"YouCompleteMe\"\ndisables syntastic's checkers for the \"c\", \"cpp\", \"objc\", and \"objcpp\"\nfiletypes, in order to allow its own checkers to run. If you want to use YCM's\nidentifier completer but still run syntastic's checkers for those filetypes you\nhave to set |g:ycm_show_diagnostics_ui| to 0. E.g.: >\n    let g:ycm_show_diagnostics_ui = 0\n<\n------------------------------------------------------------------------------\n7.16. The zsh shell and MacVim                                 *syntastic-zsh*\n\nIf you're running MacVim together with the \"zsh\" shell (http://www.zsh.org/)\nyou need to be aware that MacVim does not source your .zshrc file, but will\nsource a .zshenv file. Consequently you have to move any setup steps relevant\nto the linters you're using from .zshrc to .zshenv, otherwise your linters\nwill misbehave when run by syntastic. This is particularly important for\nprograms such as \"rvm\" (https://rvm.io/) or \"rbenv\" (http://rbenv.org/), that\nrely on setting environment variables.\n\n==============================================================================\n8. About                                                     *syntastic-about*\n\nThe core maintainers of syntastic are:\n    Martin Grenfell (GitHub: scrooloose)\n    Gregor Uhlenheuer (GitHub: kongo2002)\n    LCD 047 (GitHub: lcd047)\n\nFind the latest version of syntastic at:\n\n    http://github.com/vim-syntastic/syntastic\n\n==============================================================================\n9. License                                                 *syntastic-license*\n\nSyntastic is released under the WTFPL.\nSee http://sam.zoy.org/wtfpl/COPYING.\n\n vim:tw=78:sw=4:ft=help:norl:\n"
  },
  {
    "path": "plugin/syntastic/autoloclist.vim",
    "content": "if exists('g:loaded_syntastic_notifier_autoloclist') || !exists('g:loaded_syntastic_plugin')\n    finish\nendif\nlet g:loaded_syntastic_notifier_autoloclist = 1\n\nlet g:SyntasticAutoloclistNotifier = {}\n\n\" Public methods {{{1\n\"\nfunction! g:SyntasticAutoloclistNotifier.New() abort \" {{{2\n    let newObj = copy(self)\n    return newObj\nendfunction \" }}}2\n\nfunction! g:SyntasticAutoloclistNotifier.refresh(loclist) abort \" {{{2\n    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'autoloclist: refresh')\n    call g:SyntasticAutoloclistNotifier.AutoToggle(a:loclist)\nendfunction \" }}}2\n\nfunction! g:SyntasticAutoloclistNotifier.AutoToggle(loclist) abort \" {{{2\n    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'autoloclist: toggle')\n    let auto_loc_list = syntastic#util#var('auto_loc_list')\n    if !a:loclist.isEmpty()\n        if auto_loc_list == 1 || auto_loc_list == 3\n            call a:loclist.show()\n        endif\n    else\n        if (auto_loc_list == 1 || auto_loc_list == 2) && !empty(get(w:, 'syntastic_loclist_set', []))\n            try\n                \" Vim 7.4.2200 or later\n                let title = get(getloclist(0, { 'title': 1 }), 'title', ':SyntasticCheck ')\n            catch /\\m^Vim\\%((\\a\\+)\\)\\=:E\\%(118\\|731\\)/\n                let title = ':SyntasticCheck '\n            endtry\n\n            if strpart(title, 0, 16) ==# ':SyntasticCheck '\n                \" TODO: this will close the loc list window if one was opened\n                \" by something other than syntastic\n                call SyntasticLoclistHide()\n\n                try\n                    \" Vim 7.4.2200 or later\n                    call setloclist(0, [], 'r', { 'title': '' })\n                catch /\\m^Vim\\%((\\a\\+)\\)\\=:E\\%(118\\|731\\)/\n                    \" do nothing\n                endtry\n                let w:syntastic_loclist_set = []\n            endif\n        endif\n    endif\nendfunction \" }}}2\n\n\" }}}1\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "plugin/syntastic/balloons.vim",
    "content": "if exists('g:loaded_syntastic_notifier_balloons') || !exists('g:loaded_syntastic_plugin')\n    finish\nendif\nlet g:loaded_syntastic_notifier_balloons = 1\n\nif !has('balloon_eval')\n    let g:syntastic_enable_balloons = 0\nendif\n\nlet g:SyntasticBalloonsNotifier = {}\n\n\" Public methods {{{1\n\nfunction! g:SyntasticBalloonsNotifier.New() abort \" {{{2\n    let newObj = copy(self)\n    return newObj\nendfunction \" }}}2\n\nfunction! g:SyntasticBalloonsNotifier.enabled() abort \" {{{2\n    return has('balloon_eval') && syntastic#util#var('enable_balloons')\nendfunction \" }}}2\n\n\" Update the error balloons\nfunction! g:SyntasticBalloonsNotifier.refresh(loclist) abort \" {{{2\n    unlet! b:syntastic_private_balloons\n    if self.enabled() && !a:loclist.isEmpty()\n        let b:syntastic_private_balloons = a:loclist.balloons()\n        if !empty(b:syntastic_private_balloons)\n            set ballooneval balloonexpr=SyntasticBalloonsExprNotifier()\n        endif\n    endif\nendfunction \" }}}2\n\n\" Reset the error balloons\n\" @vimlint(EVL103, 1, a:loclist)\nfunction! g:SyntasticBalloonsNotifier.reset(loclist) abort \" {{{2\n    if has('balloon_eval') && !empty(get(b:, 'syntastic_private_balloons', {}))\n        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'balloons: reset')\n        set noballooneval\n    endif\n    unlet! b:syntastic_private_balloons\nendfunction \" }}}2\n\" @vimlint(EVL103, 0, a:loclist)\n\n\" }}}1\n\n\" Private functions {{{1\n\nfunction! SyntasticBalloonsExprNotifier() abort \" {{{2\n    if !exists('b:syntastic_private_balloons')\n        return ''\n    endif\n    return get(b:syntastic_private_balloons, v:beval_lnum, '')\nendfunction \" }}}2\n\n\" }}}1\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "plugin/syntastic/checker.vim",
    "content": "if exists('g:loaded_syntastic_checker') || !exists('g:loaded_syntastic_plugin')\n    finish\nendif\nlet g:loaded_syntastic_checker = 1\n\nlet g:SyntasticChecker = {}\n\n\" Public methods {{{1\n\nfunction! g:SyntasticChecker.New(args, ...) abort \" {{{2\n    let newObj = copy(self)\n\n    let newObj._filetype = a:args['filetype']\n    let newObj._name = a:args['name']\n\n    if a:0\n        \" redirected checker\n        let newObj._exec_default = get(a:args, 'exec', a:1['_exec_default'])\n\n        let filetype = a:1['_filetype']\n        let name = a:1['_name']\n        let prefix = 'SyntaxCheckers_' . filetype . '_' . name . '_'\n\n        if exists('g:syntastic_' . filetype . '_' . name . '_sort') && !exists('g:syntastic_' . newObj._filetype . '_' . newObj._name . '_sort')\n            let g:syntastic_{newObj._filetype}_{newObj._name}_sort = g:syntastic_{filetype}_{name}_sort\n        endif\n\n        if has_key(a:args, 'enable')\n            let newObj._enable = a:args['enable']\n        elseif has_key(a:1, '_enable')\n            let newObj._enable = a:1['_enable']\n        endif\n    else\n        let newObj._exec_default = get(a:args, 'exec', newObj._name)\n        if newObj._exec_default ==# ''\n            let newObj._exec_default = '<dummy>'\n        endif\n        let prefix = 'SyntaxCheckers_' . newObj._filetype . '_' . newObj._name . '_'\n\n        if has_key(a:args, 'enable')\n            let newObj._enable = a:args['enable']\n        endif\n    endif\n\n    let newObj._locListFunc = function(prefix . 'GetLocList')\n\n    if exists('*' . prefix . 'IsAvailable')\n        let newObj._isAvailableFunc = function(prefix . 'IsAvailable')\n    else\n        let newObj._isAvailableFunc = function('s:_isAvailableDefault')\n    endif\n\n    if exists('*' . prefix . 'GetHighlightRegex')\n        let newObj._highlightRegexFunc = function(prefix . 'GetHighlightRegex')\n    endif\n\n    return newObj\nendfunction \" }}}2\n\nfunction! g:SyntasticChecker.getFiletype() abort \" {{{2\n    return self._filetype\nendfunction \" }}}2\n\nfunction! g:SyntasticChecker.getName() abort \" {{{2\n    return self._name\nendfunction \" }}}2\n\nfunction! g:SyntasticChecker.getCName() abort \" {{{2\n    return self._filetype . '/' . self._name\nendfunction \" }}}2\n\n\" Synchronise _exec with user's setting.  Force re-validation if needed.\n\"\n\" XXX: This function must be called at least once before calling either\n\" getExec() or getExecEscaped().  Normally isAvailable() does that for you\n\" automatically, but you should keep still this in mind if you change the\n\" current checker workflow.\nfunction! g:SyntasticChecker.syncExec(...) abort \" {{{2\n    if a:0\n        let self._exec = a:1\n    else\n        let suffix = self._name . '_exec'\n        let self._exec = expand(\n            \\ syntastic#util#var(self._filetype . '_' . suffix,\n            \\ syntastic#util#var(suffix, self._exec_default)), 1 )\n    endif\nendfunction \" }}}2\n\nfunction! g:SyntasticChecker.getExec() abort \" {{{2\n    return self._exec\nendfunction \" }}}2\n\nfunction! g:SyntasticChecker.getExecEscaped() abort \" {{{2\n    return syntastic#util#shescape(self._exec)\nendfunction \" }}}2\n\nfunction! g:SyntasticChecker.getLocListRaw() abort \" {{{2\n    let checker_start = reltime()\n    let name = self.getCName()\n\n    if has_key(self, '_enable')\n        let status = syntastic#util#var(self._enable, -1)\n        if type(status) != type(0)\n            call syntastic#log#error('checker ' . name . ': invalid value ' . strtrans(string(status)) .\n                \\ ' for g:syntastic_' . self._enable . '; try 0 or 1 instead')\n            return []\n        endif\n        if status < 0\n            call syntastic#log#error('checker ' . name . ': checks disabled for security reasons; ' .\n                \\ 'set g:syntastic_' . self._enable . ' to 1 to override')\n        endif\n        if status <= 0\n            call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'getLocList: checker ' . name . ' enabled but not forced')\n            return []\n        else\n            call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'getLocList: checker ' . name . ' forced')\n        endif\n    endif\n\n    try\n        let list = self._locListFunc()\n        if self._exec !=# ''\n            call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'getLocList: checker ' . name . ' returned ' . v:shell_error)\n        endif\n    catch /\\m\\C^Syntastic: checker error$/\n        let list = []\n        if self._exec !=# ''\n            call syntastic#log#error('checker ' . name . ' returned abnormal status ' . v:shell_error)\n        else\n            call syntastic#log#error('checker ' . name . ' aborted')\n        endif\n    endtry\n    call self._populateHighlightRegexes(list)\n    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, name . ' raw:', list)\n    call self._quietMessages(list)\n    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE,\n        \\ 'getLocList: checker ' . name . ' run in ' . split(reltimestr(reltime(checker_start)))[0] . 's')\n    return list\nendfunction \" }}}2\n\nfunction! g:SyntasticChecker.getLocList() abort \" {{{2\n    return g:SyntasticLoclist.New(self.getLocListRaw())\nendfunction \" }}}2\n\nfunction! g:SyntasticChecker.getVersion(...) abort \" {{{2\n    if !exists('self._version')\n        let command = a:0 ? a:1 : self.getExecEscaped() . ' --version'\n        let version_output = syntastic#util#system(command)\n        call self.log('getVersion: ' . string(command) . ': ' .\n            \\ string(split(version_output, \"\\n\", 1)) .\n            \\ (v:shell_error ? ' (exit code ' . v:shell_error . ')' : '') )\n        let parsed_ver = syntastic#util#parseVersion(version_output)\n        if len(parsed_ver)\n            call self.setVersion(parsed_ver)\n        else\n            call syntastic#log#ndebug(g:_SYNTASTIC_DEBUG_LOCLIST, 'checker output:', split(version_output, \"\\n\", 1))\n            call syntastic#log#error(\"checker \" . self.getCName() . \": can't parse version string (abnormal termination?)\")\n        endif\n    endif\n    return get(self, '_version', [])\nendfunction \" }}}2\n\nfunction! g:SyntasticChecker.setVersion(version) abort \" {{{2\n    if len(a:version)\n        let self._version = copy(a:version)\n        call self.log(self.getExec() . ' version =', a:version)\n    endif\nendfunction \" }}}2\n\nfunction! g:SyntasticChecker.log(msg, ...) abort \" {{{2\n    let leader = self.getCName() . ': '\n    if a:0\n        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_CHECKERS, leader . a:msg, a:1)\n    else\n        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_CHECKERS, leader . a:msg)\n    endif\nendfunction \" }}}2\n\nfunction! g:SyntasticChecker.makeprgBuild(opts) abort \" {{{2\n    let basename = self._filetype . '_' . self._name . '_'\n\n    let parts = []\n    call extend(parts, self._getOpt(a:opts, basename, 'exe', self.getExecEscaped()))\n    call extend(parts, self._getOpt(a:opts, basename, 'args', ''))\n    call extend(parts, self._getOpt(a:opts, basename, 'fname', syntastic#util#shexpand('%')))\n    call extend(parts, self._getOpt(a:opts, basename, 'post_args', ''))\n    call extend(parts, self._getOpt(a:opts, basename, 'tail', ''))\n\n    return join(parts)\nendfunction \" }}}2\n\nfunction! g:SyntasticChecker.isAvailable() abort \" {{{2\n    call self.syncExec()\n\n    if !has_key(self, '_available')\n        let self._available = {}\n    endif\n    if !has_key(self._available, self._exec)\n        let self._available[self._exec] = self._isAvailableFunc()\n    endif\n\n    return self._available[self._exec]\nendfunction \" }}}2\n\nfunction! g:SyntasticChecker.isDisabled() abort \" {{{2\n    return has_key(self, '_enable') && syntastic#util#var(self._enable, -1) <= 0\nendfunction \" }}}2\n\nfunction! g:SyntasticChecker.wantSort() abort \" {{{2\n    return syntastic#util#var(self._filetype . '_' . self._name . '_sort', 0)\nendfunction \" }}}2\n\n\" This method is no longer used by syntastic.  It's here only to maintain\n\" backwards compatibility with external checkers which might depend on it.\nfunction! g:SyntasticChecker.setWantSort(val) abort \" {{{2\n    if !exists('g:syntastic_' . self._filetype . '_' . self._name . '_sort')\n        let g:syntastic_{self._filetype}_{self._name}_sort = a:val\n    endif\nendfunction \" }}}2\n\n\" }}}1\n\n\" Private methods {{{1\n\nfunction! g:SyntasticChecker._quietMessages(errors) abort \" {{{2\n    \" wildcard quiet_messages\n    let quiet_filters = copy(syntastic#util#var('quiet_messages', {}))\n    if type(quiet_filters) != type({})\n        call syntastic#log#warn('ignoring invalid syntastic_quiet_messages')\n        unlet quiet_filters\n        let quiet_filters = {}\n    endif\n\n    \" per checker quiet_messages\n    let name = self._filetype . '_' . self._name\n    try\n        call extend( quiet_filters, copy(syntastic#util#var(name . '_quiet_messages', {})), 'force' )\n    catch /\\m^Vim\\%((\\a\\+)\\)\\=:E712/\n        call syntastic#log#warn('ignoring invalid syntastic_' . name . '_quiet_messages')\n    endtry\n\n    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'quiet_messages filter:', quiet_filters)\n\n    if !empty(quiet_filters)\n        call syntastic#util#dictFilter(a:errors, quiet_filters)\n        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'filtered by quiet_messages:', a:errors)\n    endif\nendfunction \" }}}2\n\nfunction! g:SyntasticChecker._populateHighlightRegexes(errors) abort \" {{{2\n    if has_key(self, '_highlightRegexFunc')\n        for e in a:errors\n            if e['valid']\n                let term = self._highlightRegexFunc(e)\n                if term !=# ''\n                    let e['hl'] = term\n                endif\n            endif\n        endfor\n    endif\nendfunction \" }}}2\n\nfunction! g:SyntasticChecker._getOpt(opts, basename, name, default) abort \" {{{2\n    let ret = []\n    call extend( ret, syntastic#util#argsescape(get(a:opts, a:name . '_before', '')) )\n    call extend( ret, syntastic#util#argsescape(syntastic#util#var( a:basename . a:name, get(a:opts, a:name, a:default) )) )\n    call extend( ret, syntastic#util#argsescape(get(a:opts, a:name . '_after', '')) )\n\n    return ret\nendfunction \" }}}2\n\n\" }}}1\n\n\" Private functions {{{1\n\nfunction! s:_isAvailableDefault() dict \" {{{2\n    return executable(self.getExec())\nendfunction \" }}}2\n\n\" }}}1\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "plugin/syntastic/cursor.vim",
    "content": "if exists('g:loaded_syntastic_notifier_cursor') || !exists('g:loaded_syntastic_plugin')\n    finish\nendif\nlet g:loaded_syntastic_notifier_cursor = 1\n\nlet g:SyntasticCursorNotifier = {}\n\n\" Public methods {{{1\n\nfunction! g:SyntasticCursorNotifier.New() abort \" {{{2\n    let newObj = copy(self)\n    return newObj\nendfunction \" }}}2\n\nfunction! g:SyntasticCursorNotifier.enabled() abort \" {{{2\n    return syntastic#util#var('echo_current_error')\nendfunction \" }}}2\n\nfunction! g:SyntasticCursorNotifier.refresh(loclist) abort \" {{{2\n    if self.enabled() && !a:loclist.isEmpty()\n        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'cursor: refresh')\n        let b:syntastic_private_messages = copy(a:loclist.messages(bufnr('')))\n        let b:syntastic_private_line = -1\n        let b:syntastic_cursor_columns = a:loclist.getCursorColumns()\n        autocmd! syntastic CursorMoved\n        autocmd syntastic CursorMoved * call SyntasticRefreshCursor()\n    endif\nendfunction \" }}}2\n\n\" @vimlint(EVL103, 1, a:loclist)\nfunction! g:SyntasticCursorNotifier.reset(loclist) abort \" {{{2\n    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'cursor: reset')\n    autocmd! syntastic CursorMoved\n    unlet! b:syntastic_private_messages\n    let b:syntastic_private_line = -1\nendfunction \" }}}2\n\" @vimlint(EVL103, 0, a:loclist)\n\n\" }}}1\n\n\" Private functions {{{1\n\nfunction! SyntasticRefreshCursor() abort \" {{{2\n    if !exists('b:syntastic_private_messages') || empty(b:syntastic_private_messages)\n        \" file not checked\n        return\n    endif\n\n    if !exists('b:syntastic_private_line')\n        let b:syntastic_private_line = -1\n    endif\n    let l = line('.')\n    let current_messages = get(b:syntastic_private_messages, l, {})\n\n    if !exists('b:syntastic_cursor_columns')\n        let b:syntastic_cursor_columns = g:syntastic_cursor_columns\n    endif\n\n    if b:syntastic_cursor_columns\n        let c = virtcol('.')\n        if !exists('b:syntastic_private_idx')\n            let b:syntastic_private_idx = -1\n        endif\n\n        if s:_is_same_index(l, b:syntastic_private_line, c, b:syntastic_private_idx, current_messages)\n            return\n        else\n            let b:syntastic_private_line = l\n        endif\n\n        if !empty(current_messages)\n            let b:syntastic_private_idx = s:_find_index(c, current_messages)\n            call syntastic#util#wideMsg(current_messages[b:syntastic_private_idx].text)\n        else\n            let b:syntastic_private_idx = -1\n            echo\n        endif\n    else\n        if l == b:syntastic_private_line\n            return\n        endif\n        let b:syntastic_private_line = l\n\n        if !empty(current_messages)\n            call syntastic#util#wideMsg(current_messages[0].text)\n        else\n            echo\n        endif\n    endif\nendfunction \" }}}2\n\n\" }}}1\n\n\" Utilities {{{1\n\nfunction! s:_is_same_index(line, old_line, column, idx, messages) abort \" {{{2\n    if a:old_line >= 0 && a:line == a:old_line && a:idx >= 0\n        if len(a:messages) <= 1\n            return 1\n        endif\n\n        if a:messages[a:idx].scol <= a:column || a:idx == 0\n            if a:idx == len(a:messages) - 1 || a:column < a:messages[a:idx + 1].scol\n                return 1\n            else\n                return 0\n            endif\n        else\n            return 0\n        endif\n    else\n        return 0\n    endif\nendfunction \" }}}2\n\nfunction! s:_find_index(column, messages) abort \" {{{2\n    let max = len(a:messages) - 1\n    if max == 0\n        return 0\n    endif\n    let min = 0\n\n    \" modified binary search: assign index 0 to columns to the left of the first error\n    while min < max - 1\n        let mid = (min + max) / 2\n        if a:column < a:messages[mid].scol\n            let max = mid\n        else\n            let min = mid\n        endif\n    endwhile\n\n    return a:column < a:messages[max].scol ? min : max\nendfunction \" }}}2\n\n\" }}}1\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "plugin/syntastic/highlighting.vim",
    "content": "if exists('g:loaded_syntastic_notifier_highlighting') || !exists('g:loaded_syntastic_plugin')\n    finish\nendif\nlet g:loaded_syntastic_notifier_highlighting = 1\n\n\" Highlighting requires getmatches introduced in 7.1.040\nlet s:has_highlighting = v:version > 701 || (v:version == 701 && has('patch040'))\nlockvar s:has_highlighting\n\nlet g:SyntasticHighlightingNotifier = {}\n\nlet s:setup_done = 0\n\n\" Public methods {{{1\n\nfunction! g:SyntasticHighlightingNotifier.New() abort \" {{{2\n    let newObj = copy(self)\n\n    if !s:setup_done\n        call self._setup()\n        let s:setup_done = 1\n        lockvar s:setup_done\n    endif\n\n    return newObj\nendfunction \" }}}2\n\nfunction! g:SyntasticHighlightingNotifier.enabled() abort \" {{{2\n    return s:has_highlighting && syntastic#util#var('enable_highlighting')\nendfunction \" }}}2\n\n\" Sets error highlights in the current window\nfunction! g:SyntasticHighlightingNotifier.refresh(loclist) abort \" {{{2\n    if self.enabled()\n        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'highlighting: refresh')\n        call self._reset()\n        let buf = bufnr('')\n        let issues = filter(a:loclist.copyRaw(), 'v:val[\"bufnr\"] == buf')\n        for item in issues\n            let group = 'Syntastic' . get(item, 'subtype', '') . ( item['type'] ==? 'E' ? 'Error' : 'Warning' )\n\n            \" The function `Syntastic_{filetype}_{checker}_GetHighlightRegex` is\n            \" used to override default highlighting.\n            if has_key(item, 'hl')\n                call matchadd(group, '\\%' . item['lnum'] . 'l' . item['hl'])\n            elseif get(item, 'col', 0)\n                if get(item, 'vcol', 0)\n                    let lastcol = virtcol([item['lnum'], '$'])\n                    let coltype = 'v'\n                else\n                    let lastcol = col([item['lnum'], '$'])\n                    let coltype = 'c'\n                endif\n                let lcol = min([lastcol, item['col']])\n\n                call matchadd(group, '\\%' . item['lnum'] . 'l\\%' . lcol . coltype)\n            endif\n        endfor\n    endif\nendfunction \" }}}2\n\n\" Remove all error highlights from the window\n\" @vimlint(EVL103, 1, a:loclist)\nfunction! g:SyntasticHighlightingNotifier.reset(loclist) abort \" {{{2\n    if s:has_highlighting\n        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'highlighting: reset')\n        call self._reset()\n    endif\nendfunction \" }}}2\n\" @vimlint(EVL103, 0, a:loclist)\n\n\" }}}1\n\n\" Private methods {{{1\n\n\" One time setup: define our own highlighting\nfunction! g:SyntasticHighlightingNotifier._setup() abort \" {{{2\n    if s:has_highlighting\n        if !hlexists('SyntasticError')\n            highlight link SyntasticError SpellBad\n        endif\n        if !hlexists('SyntasticWarning')\n            highlight link SyntasticWarning SpellCap\n        endif\n        if !hlexists('SyntasticStyleError')\n            highlight link SyntasticStyleError SyntasticError\n        endif\n        if !hlexists('SyntasticStyleWarning')\n            highlight link SyntasticStyleWarning SyntasticWarning\n        endif\n    endif\nendfunction \" }}}2\n\nfunction! g:SyntasticHighlightingNotifier._reset() abort \" {{{2\n    for match in getmatches()\n        if stridx(match['group'], 'Syntastic') == 0\n            call matchdelete(match['id'])\n        endif\n    endfor\nendfunction \" }}}2\n\n\" }}}1\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "plugin/syntastic/loclist.vim",
    "content": "if exists('g:loaded_syntastic_loclist') || !exists('g:loaded_syntastic_plugin')\n    finish\nendif\nlet g:loaded_syntastic_loclist = 1\n\nlet g:SyntasticLoclist = {}\n\n\" Public methods {{{1\n\nfunction! g:SyntasticLoclist.New(rawLoclist) abort \" {{{2\n    let newObj = copy(self)\n\n    let llist = filter(copy(a:rawLoclist), 'v:val[\"valid\"]')\n\n    for e in llist\n        if get(e, 'type', '') ==# ''\n            let e['type'] = 'E'\n        endif\n    endfor\n\n    let newObj._rawLoclist = llist\n    let newObj._name = ''\n    let newObj._owner = bufnr('')\n    let newObj._sorted = 0\n    let newObj._columns = g:syntastic_cursor_columns\n\n    return newObj\nendfunction \" }}}2\n\nfunction! g:SyntasticLoclist.current(...) abort \" {{{2\n    let buf = a:0 ? a:1 : bufnr('')\n    let loclist = syntastic#util#getbufvar(buf, 'syntastic_loclist', {})\n    if type(loclist) != type({}) || empty(loclist)\n        unlet! loclist\n        let loclist = g:SyntasticLoclist.New([])\n    endif\n    return loclist\nendfunction \" }}}2\n\nfunction! g:SyntasticLoclist.extend(other) abort \" {{{2\n    call extend(self._rawLoclist, a:other.copyRaw())\nendfunction \" }}}2\n\nfunction! g:SyntasticLoclist.sort() abort \" {{{2\n    if !self._sorted\n        for e in self._rawLoclist\n            call s:_set_screen_column(e)\n        endfor\n\n        call sort(self._rawLoclist, self._columns ? 's:_compare_error_items_by_columns' : 's:_compare_error_items_by_lines')\n\n        let self._sorted = 1\n    endif\nendfunction \" }}}2\n\nfunction! g:SyntasticLoclist.isEmpty() abort \" {{{2\n    return empty(self._rawLoclist)\nendfunction \" }}}2\n\nfunction! g:SyntasticLoclist.isNewerThan(stamp) abort \" {{{2\n    if !exists('self._stamp')\n        let self._stamp = []\n        return 0\n    endif\n    return syntastic#util#compareLexi(self._stamp, a:stamp) > 0\nendfunction \" }}}2\n\nfunction! g:SyntasticLoclist.copyRaw() abort \" {{{2\n    return copy(self._rawLoclist)\nendfunction \" }}}2\n\nfunction! g:SyntasticLoclist.getRaw() abort \" {{{2\n    return self._rawLoclist\nendfunction \" }}}2\n\nfunction! g:SyntasticLoclist.getBuffers() abort \" {{{2\n    return syntastic#util#unique(map(copy(self._rawLoclist), 'str2nr(v:val[\"bufnr\"])') + [self._owner])\nendfunction \" }}}2\n\nfunction! g:SyntasticLoclist.getCursorColumns() abort \" {{{2\n    return self._columns\nendfunction \" }}}2\n\nfunction! g:SyntasticLoclist.getStatuslineFlag() abort \" {{{2\n    if !exists('self._stl_format')\n        let self._stl_format = ''\n    endif\n    if !exists('self._stl_flag')\n        let self._stl_flag = ''\n    endif\n\n    if g:syntastic_stl_format !=# self._stl_format\n        let self._stl_format = g:syntastic_stl_format\n\n        if !empty(self._rawLoclist)\n            let errors = self.errors()\n            let warnings = self.warnings()\n\n            let num_errors = len(errors)\n            let num_warnings = len(warnings)\n            let num_issues = len(self._rawLoclist)\n\n            let output = self._stl_format\n\n            \"hide stuff wrapped in %E(...) unless there are errors\n            let output = substitute(output, '\\m\\C%E{\\([^}]*\\)}', num_errors ? '\\1' : '' , 'g')\n\n            \"hide stuff wrapped in %W(...) unless there are warnings\n            let output = substitute(output, '\\m\\C%W{\\([^}]*\\)}', num_warnings ? '\\1' : '' , 'g')\n\n            \"hide stuff wrapped in %B(...) unless there are both errors and warnings\n            let output = substitute(output, '\\m\\C%B{\\([^}]*\\)}', (num_warnings && num_errors) ? '\\1' : '' , 'g')\n\n            let flags = {\n                \\ '%':  '%',\n                \\ 't':  num_issues,\n                \\ 'e':  num_errors,\n                \\ 'w':  num_warnings,\n                \\ 'N':  (num_issues ? fnamemodify( bufname(self._rawLoclist[0]['bufnr']), ':t') : ''),\n                \\ 'P':  (num_issues ? fnamemodify( bufname(self._rawLoclist[0]['bufnr']), ':p:~:.') : ''),\n                \\ 'F':  (num_issues ? self._rawLoclist[0]['lnum'] : ''),\n                \\ 'ne': (num_errors ? fnamemodify( bufname(errors[0]['bufnr']), ':t') : ''),\n                \\ 'pe': (num_errors ? fnamemodify( bufname(errors[0]['bufnr']), ':p:~:.') : ''),\n                \\ 'fe': (num_errors ? errors[0]['lnum'] : ''),\n                \\ 'nw': (num_warnings ? fnamemodify( bufname(warnings[0]['bufnr']), ':t') : ''),\n                \\ 'pw': (num_warnings ? fnamemodify( bufname(warnings[0]['bufnr']), ':p:~:.') : ''),\n                \\ 'fw': (num_warnings ? warnings[0]['lnum'] : '') }\n            let output = substitute(output, '\\v\\C\\%(-?\\d*%(\\.\\d+)?)([npf][ew]|[NPFtew%])', '\\=syntastic#util#wformat(submatch(1), flags[submatch(2)])', 'g')\n\n            let self._stl_flag = output\n        else\n            let self._stl_flag = ''\n        endif\n    endif\n\n    return self._stl_flag\nendfunction \" }}}2\n\nfunction! g:SyntasticLoclist.getFirstError(...) abort \" {{{2\n    let max_issues = len(self._rawLoclist)\n    if a:0 && a:1 < max_issues\n        let max_issues = a:1\n    endif\n\n    for idx in range(max_issues)\n        if get(self._rawLoclist[idx], 'type', '') ==? 'E'\n            return idx + 1\n        endif\n    endfor\n\n    return 0\nendfunction \" }}}2\n\nfunction! g:SyntasticLoclist.getName() abort \" {{{2\n    return len(self._name)\nendfunction \" }}}2\n\nfunction! g:SyntasticLoclist.setName(name) abort \" {{{2\n    let self._name = a:name\nendfunction \" }}}2\n\nfunction! g:SyntasticLoclist.getOwner() abort \" {{{2\n    return self._owner\nendfunction \" }}}2\n\nfunction! g:SyntasticLoclist.setOwner(buffer) abort \" {{{2\n    let self._owner = type(a:buffer) == type(0) ? a:buffer : str2nr(a:buffer)\nendfunction \" }}}2\n\nfunction! g:SyntasticLoclist.deploy() abort \" {{{2\n    let self._stamp = syntastic#util#stamp()\n    for buf in self.getBuffers()\n        call setbufvar(buf, 'syntastic_loclist', self)\n    endfor\nendfunction \" }}}2\n\nfunction! g:SyntasticLoclist.destroy() abort \" {{{2\n    for buf in self.getBuffers()\n        call setbufvar(buf, 'syntastic_loclist', {})\n    endfor\nendfunction \" }}}2\n\nfunction! g:SyntasticLoclist.decorate(tag) abort \" {{{2\n    for e in self._rawLoclist\n        let e['text'] .= ' [' . a:tag . ']'\n    endfor\nendfunction \" }}}2\n\nfunction! g:SyntasticLoclist.balloons() abort \" {{{2\n    if !exists('self._cachedBalloons')\n        let sep = has('balloon_multiline') ? \"\\n\" : ' | '\n\n        let self._cachedBalloons = {}\n        for e in self._rawLoclist\n            let buf = e['bufnr']\n\n            if !has_key(self._cachedBalloons, buf)\n                let self._cachedBalloons[buf] = {}\n            endif\n\n            if has_key(self._cachedBalloons[buf], e['lnum'])\n                let self._cachedBalloons[buf][e['lnum']] .= sep . e['text']\n            else\n                let self._cachedBalloons[buf][e['lnum']] = e['text']\n            endif\n        endfor\n    endif\n\n    return get(self._cachedBalloons, bufnr(''), {})\nendfunction \" }}}2\n\nfunction! g:SyntasticLoclist.errors() abort \" {{{2\n    if !exists('self._cachedErrors')\n        let self._cachedErrors = self.filter({'type': 'E'})\n    endif\n    return self._cachedErrors\nendfunction \" }}}2\n\nfunction! g:SyntasticLoclist.warnings() abort \" {{{2\n    if !exists('self._cachedWarnings')\n        let self._cachedWarnings = self.filter({'type': 'W'})\n    endif\n    return self._cachedWarnings\nendfunction \" }}}2\n\n\" Legacy function.  Syntastic no longer calls it, but we keep it\n\" around because other plugins (f.i. powerline) depend on it.\nfunction! g:SyntasticLoclist.hasErrorsOrWarningsToDisplay() abort \" {{{2\n    return !self.isEmpty()\nendfunction \" }}}2\n\n\" cache used by EchoCurrentError()\nfunction! g:SyntasticLoclist.messages(buf) abort \" {{{2\n    if !exists('self._cachedMessages')\n        let self._cachedMessages = {}\n\n        let errors = self.errors() + self.warnings()\n        for e in errors\n            let b = e['bufnr']\n            let l = e['lnum']\n\n            if !has_key(self._cachedMessages, b)\n                let self._cachedMessages[b] = {}\n            endif\n\n            if !has_key(self._cachedMessages[b], l)\n                let self._cachedMessages[b][l] = [e]\n            elseif self._columns\n                call add(self._cachedMessages[b][l], e)\n            endif\n        endfor\n\n        if self._columns\n            if !self._sorted\n                for b in keys(self._cachedMessages)\n                    for l in keys(self._cachedMessages[b])\n                        if len(self._cachedMessages[b][l]) > 1\n                            for e in self._cachedMessages[b][l]\n                                call s:_set_screen_column(e)\n                            endfor\n                            call sort(self._cachedMessages[b][l], 's:_compare_error_items_by_columns')\n                        endif\n                    endfor\n                endfor\n            endif\n\n            for b in keys(self._cachedMessages)\n                for l in keys(self._cachedMessages[b])\n                    call s:_remove_shadowed_items(self._cachedMessages[b][l])\n                endfor\n            endfor\n        endif\n    endif\n\n    return get(self._cachedMessages, a:buf, {})\nendfunction \" }}}2\n\n\"Filter the list and return new native loclist\n\"e.g.\n\"  .filter({'bufnr': 10, 'type': 'e'})\n\"\n\"would return all errors for buffer 10.\n\"\n\"Note that all string comparisons are done with ==?\nfunction! g:SyntasticLoclist.filter(filters) abort \" {{{2\n    let conditions = values(map(copy(a:filters), 's:_translate(v:key, v:val)'))\n    let filter = len(conditions) == 1 ?\n        \\ conditions[0] : join(map(conditions, '\"(\" . v:val . \")\"'), ' && ')\n    return filter(copy(self._rawLoclist), filter)\nendfunction \" }}}2\n\nfunction! g:SyntasticLoclist.setloclist(new) abort \" {{{2\n    if !exists('w:syntastic_loclist_set')\n        let w:syntastic_loclist_set = []\n    endif\n    if a:new || empty(w:syntastic_loclist_set) || w:syntastic_loclist_set != [self._owner, getbufvar(self._owner, 'changedtick')]\n        let replace = !a:new && g:syntastic_reuse_loc_lists && !empty(w:syntastic_loclist_set)\n        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'loclist: setloclist ' . (replace ? '(replace)' : '(new)'))\n        call setloclist(0, self.getRaw(), replace ? 'r' : ' ')\n        try\n            \" Vim 7.4.2200 or later\n            call setloclist(0, [], 'r', { 'title': ':SyntasticCheck ' . self._name })\n        catch /\\m^Vim\\%((\\a\\+)\\)\\=:E\\%(118\\|731\\)/\n            \" do nothing\n        endtry\n        call syntastic#util#setLastTick(self._owner)\n        let w:syntastic_loclist_set = [self._owner, getbufvar(self._owner, 'syntastic_lasttick')]\n    endif\nendfunction \" }}}2\n\n\"display the cached errors for this buf in the location list\nfunction! g:SyntasticLoclist.show() abort \" {{{2\n    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'loclist: show')\n    call self.setloclist(0)\n\n    if !&previewwindow && !self.isEmpty()\n        let num = winnr()\n        execute 'lopen ' . syntastic#util#var('loc_list_height')\n        if num != winnr()\n            execute num . 'wincmd w'\n        endif\n\n        \" try to find the loclist window and set w:quickfix_title\n        let errors = getloclist(0)\n        for buf in tabpagebuflist()\n            if buflisted(buf) && bufloaded(buf) && getbufvar(buf, '&buftype') ==# 'quickfix'\n                let win = bufwinnr(buf)\n                let title = getwinvar(win, 'quickfix_title')\n\n                \" TODO: try to make sure we actually own this window; sadly,\n                \" errors == getloclist(0) is the only somewhat safe way to\n                \" achieve that\n                if strpart(title, 0, 16) ==# ':SyntasticCheck ' ||\n                            \\ ( (title ==# '' || title ==# ':setloclist()') && errors == getloclist(0) )\n                    call setwinvar(win, 'quickfix_title', ':SyntasticCheck ' . self._name)\n                    call setbufvar(buf, 'syntastic_owner_buffer', self._owner)\n                endif\n            endif\n        endfor\n    endif\nendfunction \" }}}2\n\n\" }}}1\n\n\" Public functions {{{1\n\nfunction! SyntasticLoclistHide() abort \" {{{2\n    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'loclist: hide')\n    silent! lclose\nendfunction \" }}}2\n\n\" }}}1\n\n\" Utilities {{{1\n\nfunction! s:_translate(key, val) abort \" {{{2\n    return 'get(v:val, ' . string(a:key) . ', \"\") ==? ' . string(a:val)\nendfunction \" }}}2\n\nfunction! s:_set_screen_column(item) abort \" {{{2\n    if !has_key(a:item, 'scol')\n        let col = get(a:item, 'col', 0)\n        if col != 0 && get(a:item, 'vcol', 0) == 0\n            let buf = str2nr(a:item['bufnr'])\n            try\n                let line = getbufline(buf, a:item['lnum'])[0]\n            catch  /\\m^Vim\\%((\\a\\+)\\)\\=:E684/\n                let line = ''\n            endtry\n            let a:item['scol'] = syntastic#util#screenWidth(strpart(line, 0, col), getbufvar(buf, '&tabstop'))\n        else\n            let a:item['scol'] = col\n        endif\n    endif\nendfunction \" }}}2\n\nfunction! s:_remove_shadowed_items(errors) abort \" {{{2\n    \" keep only the first message at a given column\n    let i = 0\n    while i < len(a:errors) - 1\n        let j = i + 1\n        let dupes = 0\n        while j < len(a:errors) && a:errors[j].scol == a:errors[i].scol\n            let dupes = 1\n            let j += 1\n        endwhile\n        if dupes\n            call remove(a:errors, i + 1, j - 1)\n        endif\n        let i += 1\n    endwhile\n\n    \" merge messages with the same text\n    let i = 0\n    while i < len(a:errors) - 1\n        let j = i + 1\n        let dupes = 0\n        while j < len(a:errors) && a:errors[j].text == a:errors[i].text\n            let dupes = 1\n            let j += 1\n        endwhile\n        if dupes\n            call remove(a:errors, i + 1, j - 1)\n        endif\n        let i += 1\n    endwhile\nendfunction \" }}}2\n\nfunction! s:_compare_error_items_by_columns(a, b) abort \" {{{2\n    if a:a['bufnr'] != a:b['bufnr']\n        \" group by file\n        return a:a['bufnr'] - a:b['bufnr']\n    elseif a:a['lnum'] != a:b['lnum']\n        \" sort by line\n        return a:a['lnum'] - a:b['lnum']\n    elseif a:a['scol'] != a:b['scol']\n        \" sort by screen column\n        return a:a['scol'] - a:b['scol']\n    elseif a:a['type'] !=? a:b['type']\n        \" errors take precedence over warnings\n        return a:a['type'] ==? 'E' ? -1 : 1\n    else\n        return 0\n    endif\nendfunction \" }}}2\n\nfunction! s:_compare_error_items_by_lines(a, b) abort \" {{{2\n    if a:a['bufnr'] != a:b['bufnr']\n        \" group by file\n        return a:a['bufnr'] - a:b['bufnr']\n    elseif a:a['lnum'] != a:b['lnum']\n        \" sort by line\n        return a:a['lnum'] - a:b['lnum']\n    elseif a:a['type'] !=? a:b['type']\n        \" errors take precedence over warnings\n        return a:a['type'] ==? 'E' ? -1 : 1\n    else\n        \" sort by screen column\n        return a:a['scol'] - a:b['scol']\n    endif\nendfunction \" }}}2\n\n\" }}}1\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "plugin/syntastic/modemap.vim",
    "content": "if exists('g:loaded_syntastic_modemap') || !exists('g:loaded_syntastic_plugin')\n    finish\nendif\nlet g:loaded_syntastic_modemap = 1\n\nlet g:SyntasticModeMap = {}\n\n\" Public methods {{{1\n\nfunction! g:SyntasticModeMap.Instance() abort \" {{{2\n    if !exists('s:SyntasticModeMapInstance')\n        let s:SyntasticModeMapInstance = copy(self)\n        call s:SyntasticModeMapInstance.synch()\n    endif\n\n    return s:SyntasticModeMapInstance\nendfunction \" }}}2\n\nfunction! g:SyntasticModeMap.synch() abort \" {{{2\n    if exists('g:syntastic_mode_map')\n        let self._mode = get(g:syntastic_mode_map, 'mode', 'active')\n        let self._activeFiletypes = copy(get(g:syntastic_mode_map, 'active_filetypes', []))\n        let self._passiveFiletypes = copy(get(g:syntastic_mode_map, 'passive_filetypes', []))\n    else\n        let self._mode = 'active'\n        let self._activeFiletypes = []\n        let self._passiveFiletypes = []\n    endif\nendfunction \" }}}2\n\nfunction! g:SyntasticModeMap.allowsAutoChecking(filetype) abort \" {{{2\n    let registry = g:SyntasticRegistry.Instance()\n    let fts = registry.resolveFiletypes(a:filetype)\n\n    if self.isPassive()\n        return self._isOneFiletypeActive(fts)\n    else\n        return self._noFiletypesArePassive(fts)\n    endif\nendfunction \" }}}2\n\nfunction! g:SyntasticModeMap.doAutoChecking(buf) abort \" {{{2\n    let local_mode = getbufvar(a:buf, 'syntastic_mode')\n    if local_mode ==# 'active' || local_mode ==# 'passive'\n        return local_mode ==# 'active'\n    endif\n\n    return self.allowsAutoChecking(getbufvar(a:buf, '&filetype'))\nendfunction \" }}}2\n\nfunction! g:SyntasticModeMap.isPassive() abort \" {{{2\n    return self._mode ==# 'passive'\nendfunction \" }}}2\n\nfunction! g:SyntasticModeMap.toggleMode() abort \" {{{2\n    call self.synch()\n\n    if self._mode ==# 'active'\n        let self._mode = 'passive'\n    else\n        let self._mode = 'active'\n    endif\n\n    \"XXX Changing a global variable.  Tsk, tsk...\n    if !exists('g:syntastic_mode_map')\n        let g:syntastic_mode_map = {}\n    endif\n    let g:syntastic_mode_map['mode'] = self._mode\nendfunction \" }}}2\n\nfunction! g:SyntasticModeMap.echoMode() abort \" {{{2\n    echo 'Syntastic: ' . self._mode . ' mode enabled'\nendfunction \" }}}2\n\nfunction! g:SyntasticModeMap.modeInfo(filetypes) abort \" {{{2\n    echomsg 'Syntastic version: ' . g:syntastic_version\n    let type = len(a:filetypes) ? a:filetypes[0] : &filetype\n    echomsg 'Info for filetype: ' . type\n\n    call self.synch()\n    echomsg 'Global mode: ' . self._mode\n    if self._mode ==# 'active'\n        if len(self._passiveFiletypes)\n            let plural = len(self._passiveFiletypes) != 1 ? 's' : ''\n            echomsg 'Passive filetype' . plural . ': ' . join(sort(copy(self._passiveFiletypes)))\n        endif\n    else\n        if len(self._activeFiletypes)\n            let plural = len(self._activeFiletypes) != 1 ? 's' : ''\n            echomsg 'Active filetype' . plural . ': ' . join(sort(copy(self._activeFiletypes)))\n        endif\n    endif\n    echomsg 'Filetype ' . type . ' is ' . (self.allowsAutoChecking(type) ? 'active' : 'passive')\n\n    if !len(a:filetypes)\n        if exists('b:syntastic_mode') && (b:syntastic_mode ==# 'active' || b:syntastic_mode ==# 'passive')\n            echomsg 'Local mode: ' . b:syntastic_mode\n        endif\n\n        echomsg 'The current file will ' . (self.doAutoChecking(bufnr('')) ? '' : 'not ') . 'be checked automatically'\n    endif\nendfunction \" }}}2\n\n\" }}}1\n\n\" Private methods {{{1\n\nfunction! g:SyntasticModeMap._isOneFiletypeActive(filetypes) abort \" {{{2\n    return !empty(filter(copy(a:filetypes), 'index(self._activeFiletypes, v:val) != -1'))\nendfunction \" }}}2\n\nfunction! g:SyntasticModeMap._noFiletypesArePassive(filetypes) abort \" {{{2\n    return empty(filter(copy(a:filetypes), 'index(self._passiveFiletypes, v:val) != -1'))\nendfunction \" }}}2\n\n\" }}}1\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "plugin/syntastic/notifiers.vim",
    "content": "if exists('g:loaded_syntastic_notifiers') || !exists('g:loaded_syntastic_plugin')\n    finish\nendif\nlet g:loaded_syntastic_notifiers = 1\n\nlet g:SyntasticNotifiers = {}\n\nlet s:_NOTIFIER_TYPES = ['signs', 'balloons', 'highlighting', 'cursor', 'autoloclist']\nlockvar! s:_NOTIFIER_TYPES\n\nlet s:_PERSISTENT_NOTIFIERS = ['signs', 'balloons']\nlockvar! s:_PERSISTENT_NOTIFIERS\n\n\" Public methods {{{1\n\nfunction! g:SyntasticNotifiers.Instance() abort \" {{{2\n    if !exists('s:SyntasticNotifiersInstance')\n        let s:SyntasticNotifiersInstance = copy(self)\n        call s:SyntasticNotifiersInstance._initNotifiers()\n    endif\n\n    return s:SyntasticNotifiersInstance\nendfunction \" }}}2\n\nfunction! g:SyntasticNotifiers.refresh(loclist) abort \" {{{2\n    if !syntastic#util#bufIsActive(bufnr('')) || (!a:loclist.isEmpty() && !a:loclist.isNewerThan([]))\n        \" loclist not fully constructed yet\n        return\n    endif\n\n    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'notifiers: refresh')\n    for type in self._enabled_types\n        let class = substitute(type, '\\m.*', 'Syntastic\\u&Notifier', '')\n        if !has_key(g:{class}, 'enabled') || self._notifier[type].enabled()\n            if index(s:_PERSISTENT_NOTIFIERS, type) > -1\n                \" refresh only if loclist has changed since last call\n                if !exists('b:syntastic_private_' . type . '_stamp')\n                    let b:syntastic_private_{type}_stamp = []\n                endif\n                if a:loclist.isNewerThan(b:syntastic_private_{type}_stamp) || a:loclist.isEmpty()\n                    call self._notifier[type].refresh(a:loclist)\n                    let b:syntastic_private_{type}_stamp = syntastic#util#stamp()\n                endif\n            else\n                call self._notifier[type].refresh(a:loclist)\n            endif\n        endif\n    endfor\nendfunction \" }}}2\n\nfunction! g:SyntasticNotifiers.reset(loclist) abort \" {{{2\n    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'notifiers: reset')\n    for type in self._enabled_types\n        let class = substitute(type, '\\m.*', 'Syntastic\\u&Notifier', '')\n\n        \" reset notifiers regardless if they are enabled or not, since\n        \" the user might have disabled them since the last refresh();\n        \" notifiers MUST be prepared to deal with reset() when disabled\n        if has_key(g:{class}, 'reset')\n            call self._notifier[type].reset(a:loclist)\n        endif\n\n        \" also reset stamps\n        if index(s:_PERSISTENT_NOTIFIERS, type) > -1\n            let b:syntastic_private_{type}_stamp = []\n        endif\n    endfor\nendfunction \" }}}2\n\n\" }}}1\n\n\" Private methods {{{1\n\nfunction! g:SyntasticNotifiers._initNotifiers() abort \" {{{2\n    let self._notifier = {}\n    for type in s:_NOTIFIER_TYPES\n        let class = substitute(type, '\\m.*', 'Syntastic\\u&Notifier', '')\n        let self._notifier[type] = g:{class}.New()\n    endfor\n\n    let self._enabled_types = copy(s:_NOTIFIER_TYPES)\nendfunction \" }}}2\n\n\" }}}1\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "plugin/syntastic/registry.vim",
    "content": "if exists('g:loaded_syntastic_registry') || !exists('g:loaded_syntastic_plugin')\n    finish\nendif\nlet g:loaded_syntastic_registry = 1\n\n\" Initialisation {{{1\n\nlet s:_DEFAULT_CHECKERS = {\n        \\ 'actionscript':  ['mxmlc'],\n        \\ 'ada':           ['gcc'],\n        \\ 'ansible':       ['ansible_lint'],\n        \\ 'apiblueprint':  ['drafter'],\n        \\ 'applescript':   ['osacompile'],\n        \\ 'asciidoc':      ['asciidoc'],\n        \\ 'asl':           ['iasl'],\n        \\ 'asm':           ['gcc'],\n        \\ 'bro':           ['bro'],\n        \\ 'bemhtml':       ['bemhtmllint'],\n        \\ 'c':             ['gcc'],\n        \\ 'cabal':         ['cabal'],\n        \\ 'chef':          ['foodcritic'],\n        \\ 'cmake':         ['cmakelint'],\n        \\ 'co':            ['coco'],\n        \\ 'cobol':         ['cobc'],\n        \\ 'coffee':        ['coffee', 'coffeelint'],\n        \\ 'coq':           ['coqtop'],\n        \\ 'cpp':           ['gcc'],\n        \\ 'cs':            ['mcs'],\n        \\ 'css':           ['csslint'],\n        \\ 'cucumber':      ['cucumber'],\n        \\ 'cuda':          ['nvcc'],\n        \\ 'd':             ['dmd'],\n        \\ 'dart':          ['dartanalyzer'],\n        \\ 'docbk':         ['xmllint'],\n        \\ 'dockerfile':    ['dockerfile_lint'],\n        \\ 'dustjs':        ['swiffer'],\n        \\ 'elixir':        [],\n        \\ 'erlang':        ['escript'],\n        \\ 'eruby':         ['ruby'],\n        \\ 'fortran':       ['gfortran'],\n        \\ 'glsl':          ['cgc'],\n        \\ 'go':            [],\n        \\ 'haml':          ['haml'],\n        \\ 'handlebars':    ['handlebars'],\n        \\ 'haskell':       ['hdevtools', 'hlint'],\n        \\ 'haxe':          ['haxe'],\n        \\ 'help':          [],\n        \\ 'hss':           ['hss'],\n        \\ 'html':          ['tidy'],\n        \\ 'jade':          ['jade_lint'],\n        \\ 'java':          ['javac'],\n        \\ 'javascript':    ['jshint', 'jslint'],\n        \\ 'json':          ['jsonlint', 'jsonval'],\n        \\ 'less':          ['lessc'],\n        \\ 'lex':           ['flex'],\n        \\ 'limbo':         ['limbo'],\n        \\ 'lisp':          ['clisp'],\n        \\ 'llvm':          ['llvm'],\n        \\ 'lua':           ['luac'],\n        \\ 'markdown':      ['mdl'],\n        \\ 'matlab':        ['mlint'],\n        \\ 'mercury':       ['mmc'],\n        \\ 'nasm':          ['nasm'],\n        \\ 'nix':           ['nix'],\n        \\ 'nroff':         ['mandoc'],\n        \\ 'objc':          ['gcc'],\n        \\ 'objcpp':        ['gcc'],\n        \\ 'ocaml':         ['camlp4o'],\n        \\ 'perl':          ['perlcritic'],\n        \\ 'perl6':         [],\n        \\ 'php':           ['php', 'phpcs', 'phpmd'],\n        \\ 'po':            ['msgfmt'],\n        \\ 'pod':           ['podchecker'],\n        \\ 'puppet':        ['puppet', 'puppetlint'],\n        \\ 'pug':           ['pug_lint'],\n        \\ 'python':        ['python', 'flake8', 'pylint'],\n        \\ 'qml':           ['qmllint'],\n        \\ 'r':             [],\n        \\ 'rmd':           [],\n        \\ 'racket':        ['racket'],\n        \\ 'raku':          [],\n        \\ 'rnc':           ['rnv'],\n        \\ 'rst':           ['rst2pseudoxml'],\n        \\ 'ruby':          ['mri'],\n        \\ 'sass':          ['sass'],\n        \\ 'scala':         ['fsc', 'scalac'],\n        \\ 'scss':          ['sass', 'scss_lint'],\n        \\ 'sh':            ['sh', 'shellcheck'],\n        \\ 'slim':          ['slimrb'],\n        \\ 'sml':           ['smlnj'],\n        \\ 'spec':          ['rpmlint'],\n        \\ 'solidity':      ['solc'],\n        \\ 'sql':           ['sqlint'],\n        \\ 'stylus':        ['stylint'],\n        \\ 'svg':           [],\n        \\ 'tcl':           ['nagelfar'],\n        \\ 'tex':           ['lacheck', 'chktex'],\n        \\ 'texinfo':       ['makeinfo'],\n        \\ 'text':          [],\n        \\ 'trig':          ['rapper'],\n        \\ 'turtle':        ['rapper'],\n        \\ 'twig':          ['twiglint'],\n        \\ 'typescript':    [],\n        \\ 'verilog':       ['verilator'],\n        \\ 'vhdl':          ['ghdl'],\n        \\ 'vim':           ['vimlint'],\n        \\ 'vue':           ['pug_lint_vue', 'eslint'],\n        \\ 'xhtml':         ['tidy'],\n        \\ 'xml':           ['xmllint'],\n        \\ 'xslt':          ['xmllint'],\n        \\ 'xquery':        ['basex'],\n        \\ 'yacc':          ['bison'],\n        \\ 'yaml':          ['jsyaml'],\n        \\ 'yang':          ['pyang'],\n        \\ 'yara':          ['yarac'],\n        \\ 'z80':           ['z80syntaxchecker'],\n        \\ 'zpt':           ['zptlint'],\n        \\ 'zsh':           ['zsh'],\n    \\ }\nlockvar! s:_DEFAULT_CHECKERS\n\nlet s:_DEFAULT_FILETYPE_MAP = {\n        \\ 'gentoo-metadata': 'xml',\n        \\ 'groff': 'nroff',\n        \\ 'lhaskell': 'haskell',\n        \\ 'litcoffee': 'coffee',\n        \\ 'mail': 'text',\n        \\ 'mkd': 'markdown',\n        \\ 'pe-puppet': 'puppet',\n        \\ 'sgml': 'docbk',\n        \\ 'sgmllnx': 'docbk',\n    \\ }\nlockvar! s:_DEFAULT_FILETYPE_MAP\n\nlet s:_ECLIM_TYPES = [\n        \\ 'c',\n        \\ 'cpp',\n        \\ 'html',\n        \\ 'java',\n        \\ 'php',\n        \\ 'python',\n        \\ 'ruby',\n    \\ ]\nlockvar! s:_ECLIM_TYPES\n\nlet s:_YCM_TYPES = [\n        \\ 'c',\n        \\ 'cpp',\n        \\ 'objc',\n        \\ 'objcpp',\n    \\ ]\nlockvar! s:_YCM_TYPES\n\nlet g:SyntasticRegistry = {}\n\n\" }}}1\n\n\" Public methods {{{1\n\n\" Note: Handling of filetype aliases: all public methods take aliases as\n\" parameters, all private methods take normalized filetypes.  Public methods\n\" are thus supposed to normalize filetypes before calling private methods.\n\nfunction! g:SyntasticRegistry.Instance() abort \" {{{2\n    if !exists('s:SyntasticRegistryInstance')\n        let s:SyntasticRegistryInstance = copy(self)\n        let s:SyntasticRegistryInstance._checkerMap = {}\n    endif\n\n    return s:SyntasticRegistryInstance\nendfunction \" }}}2\n\nfunction! g:SyntasticRegistry.CreateAndRegisterChecker(args) abort \" {{{2\n    let registry = g:SyntasticRegistry.Instance()\n\n    if has_key(a:args, 'redirect')\n        let [ft, name] = split(a:args['redirect'], '/')\n        call registry._loadCheckersFor(ft, 1)\n\n        let clone = get(registry._checkerMap[ft], name, {})\n        if empty(clone)\n            throw 'Syntastic: Checker ' . a:args['redirect'] . ' redirects to unregistered checker ' . ft . '/' . name\n        endif\n\n        let checker = g:SyntasticChecker.New(a:args, clone)\n    else\n        let checker = g:SyntasticChecker.New(a:args)\n    endif\n    call registry._registerChecker(checker)\nendfunction \" }}}2\n\n\" Given a list of checker names hints_list, return a map name --> checker.\n\" If hints_list is empty, user settings are are used instead. Checkers are\n\" not checked for availability (that is, the corresponding IsAvailable() are\n\" not run).\nfunction! g:SyntasticRegistry.getCheckers(ftalias, hints_list) abort \" {{{2\n    let ftlist = self.resolveFiletypes(a:ftalias)\n\n    let names =\n        \\ !empty(a:hints_list) ? a:hints_list :\n        \\ exists('b:syntastic_checkers') ? b:syntastic_checkers : []\n\n    let cnames = []\n    if !empty(names)\n        for name in names\n            if name !~# '/'\n                for ft in ftlist\n                    call add(cnames, ft . '/' . name)\n                endfor\n            else\n                call add(cnames, name)\n            endif\n        endfor\n    else\n        for ft in ftlist\n            call self._sanityCheck(ft)\n            let defs =\n                \\ exists('g:syntastic_' . ft . '_checkers') ? g:syntastic_{ft}_checkers :\n                \\ get(s:_DEFAULT_CHECKERS, ft, [])\n            call extend(cnames, map(copy(defs), 'stridx(v:val, \"/\") < 0 ? ft . \"/\" . v:val : v:val' ))\n        endfor\n    endif\n    let cnames = syntastic#util#unique(cnames)\n\n    for ft in syntastic#util#unique(map( copy(cnames), 'v:val[: stridx(v:val, \"/\")-1]' ))\n        call self._loadCheckersFor(ft, 0)\n    endfor\n\n    return self._filterCheckersByName(cnames)\nendfunction \" }}}2\n\n\" Same as getCheckers(), but keep only the available checkers.  This runs the\n\" corresponding IsAvailable() functions for all checkers.\nfunction! g:SyntasticRegistry.getCheckersAvailable(ftalias, hints_list) abort \" {{{2\n    return filter(self.getCheckers(a:ftalias, a:hints_list), 'v:val.isAvailable()')\nendfunction \" }}}2\n\n\" Same as getCheckers(), but keep only the checkers that are available and\n\" disabled.  This runs the corresponding IsAvailable() functions for all checkers.\nfunction! g:SyntasticRegistry.getCheckersDisabled(ftalias, hints_list) abort \" {{{2\n    return filter(self.getCheckers(a:ftalias, a:hints_list), 'v:val.isDisabled() && v:val.isAvailable()')\nendfunction \" }}}2\n\nfunction! g:SyntasticRegistry.getKnownFiletypes() abort \" {{{2\n    let types = keys(s:_DEFAULT_CHECKERS)\n\n    call extend(types, keys(s:_DEFAULT_FILETYPE_MAP))\n\n    if exists('g:syntastic_filetype_map')\n        call extend(types, keys(g:syntastic_filetype_map))\n    endif\n\n    if exists('g:syntastic_extra_filetypes') && type(g:syntastic_extra_filetypes) == type([])\n        call extend(types, g:syntastic_extra_filetypes)\n    endif\n\n    return syntastic#util#unique(types)\nendfunction \" }}}2\n\nfunction! g:SyntasticRegistry.getNamesOfAvailableCheckers(ftalias) abort \" {{{2\n    let ft = s:_normalise_filetype(a:ftalias)\n    call self._loadCheckersFor(ft, 0)\n    return keys(filter( copy(self._checkerMap[ft]), 'v:val.isAvailable()' ))\nendfunction \" }}}2\n\nfunction! g:SyntasticRegistry.resolveFiletypes(ftalias) abort \" {{{2\n    return map(split( get(g:syntastic_filetype_map, a:ftalias, a:ftalias), '\\m\\.' ), 's:_normalise_filetype(v:val)')\nendfunction \" }}}2\n\nfunction! g:SyntasticRegistry.echoInfoFor(ftalias_list) abort \" {{{2\n    let ft_list = syntastic#util#unique(self.resolveFiletypes(empty(a:ftalias_list) ? &filetype : a:ftalias_list[0]))\n    if len(ft_list) != 1\n        let available = []\n        let active = []\n        let disabled = []\n\n        for ft in ft_list\n            call extend(available, map( self.getNamesOfAvailableCheckers(ft), 'ft . \"/\" . v:val' ))\n            call extend(active, map( self.getCheckersAvailable(ft, []), 'ft . \"/\" . v:val.getName()' ))\n            call extend(disabled, map( self.getCheckersDisabled(ft, []), 'ft . \"/\" . v:val.getName()' ))\n        endfor\n    else\n        let ft = ft_list[0]\n        let available = self.getNamesOfAvailableCheckers(ft)\n        let active = map(self.getCheckersAvailable(ft, []), 'ft ==# v:val.getFiletype() ? v:val.getName() : v:val.getCName()')\n        let disabled = map(self.getCheckersDisabled(ft, []), 'ft ==# v:val.getFiletype() ? v:val.getName() : v:val.getCName()')\n    endif\n\n    let cnt = len(available)\n    let plural = cnt != 1 ? 's' : ''\n    let cklist = cnt ? join(sort(available)) : '-'\n    echomsg 'Available checker' . plural . ': ' . cklist\n\n    let cnt = len(active)\n    let plural = cnt != 1 ? 's' : ''\n    let cklist = cnt ? join(active) : '-'\n    echomsg 'Currently enabled checker' . plural . ': ' . cklist\n\n    let cnt = len(disabled)\n    let plural = cnt != 1 ? 's' : ''\n    if len(disabled)\n        let cklist = join(sort(disabled, 's:_compare_checker_names'))\n        echomsg 'Checker' . plural . ' disabled for security reasons: ' . cklist\n    endif\n\n    \" Eclim feels entitled to mess with syntastic's variables {{{3\n    if exists(':EclimValidate') && get(g:, 'EclimFileTypeValidate', 1)\n        let disabled = filter(copy(ft_list), 's:_disabled_by_eclim(v:val)')\n        let cnt = len(disabled)\n        if cnt\n            let plural = cnt != 1 ? 's' : ''\n            let cklist = join(disabled, ', ')\n            echomsg 'Checkers for filetype' . plural . ' ' . cklist . ' possibly disabled by Eclim'\n        endif\n    endif\n    \" }}}3\n\n    \" So does YouCompleteMe {{{3\n    if exists('g:loaded_youcompleteme') && get(g:, 'ycm_show_diagnostics_ui', get(g:, 'ycm_register_as_syntastic_checker', 1))\n        let disabled = filter(copy(ft_list), 's:_disabled_by_ycm(v:val)')\n        let cnt = len(disabled)\n        if cnt\n            let plural = cnt != 1 ? 's' : ''\n            let cklist = join(disabled, ', ')\n            echomsg 'Checkers for filetype' . plural . ' ' . cklist . ' possibly disabled by YouCompleteMe'\n        endif\n    endif\n    \" }}}3\nendfunction \" }}}2\n\n\" }}}1\n\n\" Private methods {{{1\n\nfunction! g:SyntasticRegistry._registerChecker(checker) abort \" {{{2\n    let ft = a:checker.getFiletype()\n    if !has_key(self._checkerMap, ft)\n        let self._checkerMap[ft] = {}\n    endif\n\n    let name = a:checker.getName()\n    if has_key(self._checkerMap[ft], name)\n        throw 'Syntastic: Duplicate syntax checker name: ' . ft . '/' . name\n    endif\n\n    let self._checkerMap[ft][name] = a:checker\nendfunction \" }}}2\n\nfunction! g:SyntasticRegistry._findChecker(cname) abort \" {{{2\n    let sep_idx = stridx(a:cname, '/')\n    if sep_idx > 0\n        let ft = a:cname[: sep_idx-1]\n        let name = a:cname[sep_idx+1 :]\n    else\n        let ft = &filetype\n        let name = a:cname\n    endif\n    return get(self._checkerMap[ft], name, {})\nendfunction \"}}}2\n\nfunction! g:SyntasticRegistry._filterCheckersByName(cnames) abort \" {{{2\n    return filter( map(copy(a:cnames), 'self._findChecker(v:val)'), '!empty(v:val)' )\nendfunction \" }}}2\n\nfunction! g:SyntasticRegistry._loadCheckersFor(filetype, force) abort \" {{{2\n    if !a:force && has_key(self._checkerMap, a:filetype)\n        return\n    endif\n\n    execute 'runtime! syntax_checkers/' . a:filetype . '/*.vim'\n\n    if !has_key(self._checkerMap, a:filetype)\n        let self._checkerMap[a:filetype] = {}\n    endif\nendfunction \" }}}2\n\n\" Check for obsolete variable g:syntastic_<filetype>_checker\nfunction! g:SyntasticRegistry._sanityCheck(filetype) abort \" {{{2\n    if exists('g:syntastic_' . a:filetype . '_checkers') &&\n        \\ type(g:syntastic_{a:filetype}_checkers) != type([])\n\n        unlet! g:syntastic_{a:filetype}_checkers\n        call syntastic#log#error('variable g:syntastic_' . a:filetype . '_checkers has to be a list of strings')\n    endif\n\n    if exists('g:syntastic_' . a:filetype . '_checker') &&\n        \\ !exists('g:syntastic_' . a:filetype . '_checkers') &&\n        \\ type(g:syntastic_{a:filetype}_checker) == type('')\n\n        let g:syntastic_{a:filetype}_checkers = [g:syntastic_{a:filetype}_checker]\n        call syntastic#log#oneTimeWarn('variable g:syntastic_' . a:filetype . '_checker is deprecated')\n    endif\nendfunction \" }}}2\n\n\" }}}1\n\n\" Utilities {{{1\n\n\"resolve filetype aliases, and replace - with _ otherwise we cant name\n\"syntax checker functions legally for filetypes like \"gentoo-metadata\"\nfunction! s:_normalise_filetype(ftalias) abort \" {{{2\n    let ft = get(s:_DEFAULT_FILETYPE_MAP, a:ftalias, a:ftalias)\n    let ft = get(g:syntastic_filetype_map, ft, ft)\n    let ft = substitute(ft, '\\m-', '_', 'g')\n    return ft\nendfunction \" }}}2\n\nfunction! s:_disabled_by_eclim(filetype) abort \" {{{2\n    if index(s:_ECLIM_TYPES, a:filetype) >= 0\n        let lang = toupper(a:filetype[0]) . a:filetype[1:]\n        let ft = a:filetype !=# 'cpp' ? lang : 'C'\n        return get(g:, 'Eclim' . lang . 'Validate', 1) && !get(g:, 'Eclim' . ft . 'SyntasticEnabled', 0)\n    endif\n\n    return 0\nendfunction \" }}}2\n\nfunction! s:_disabled_by_ycm(filetype) abort \" {{{2\n    return index(s:_YCM_TYPES, a:filetype) >= 0\nendfunction \" }}}2\n\nfunction! s:_compare_checker_names(a, b) abort \" {{{2\n    if a:a ==# a:b\n        return 0\n    endif\n\n    if stridx(a:a, '/') < 0\n        if stridx(a:b, '/') < 0\n            return a:a < a:b ? -1 : 1\n        else\n            return -1\n        endif\n    else\n        if stridx(a:b, '/') < 0\n            return 1\n        else\n            return a:a < a:b ? -1 : 1\n        endif\n    endif\nendfunction \" }}}2\n\n\" }}}1\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "plugin/syntastic/signs.vim",
    "content": "if exists('g:loaded_syntastic_notifier_signs') || !exists('g:loaded_syntastic_plugin')\n    finish\nendif\nlet g:loaded_syntastic_notifier_signs = 1\n\n\" Initialisation {{{1\n\n\" start counting sign ids at 5000, start here to hopefully avoid conflicting\n\" with any other code that places signs (not sure if this precaution is\n\" actually needed)\nlet s:first_sign_id = 5000\nlet s:next_sign_id = s:first_sign_id\n\nlet g:SyntasticSignsNotifier = {}\n\nlet s:setup_done = 0\n\n\" }}}1\n\n\" Public methods {{{1\n\nfunction! g:SyntasticSignsNotifier.New() abort \" {{{2\n    let newObj = copy(self)\n    return newObj\nendfunction \" }}}2\n\nfunction! g:SyntasticSignsNotifier.enabled() abort \" {{{2\n    return has('signs') && syntastic#util#var('enable_signs')\nendfunction \" }}}2\n\nfunction! g:SyntasticSignsNotifier.refresh(loclist) abort \" {{{2\n    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'signs: refresh')\n\n    let old_signs = copy(self._bufSignIds())\n    if self.enabled()\n        if !s:setup_done\n            call self._setup()\n            let s:setup_done = 1\n            lockvar s:setup_done\n        endif\n\n        call self._signErrors(a:loclist)\n    endif\n    call self._removeSigns(old_signs)\nendfunction \" }}}2\n\n\" }}}1\n\n\" Private methods {{{1\n\n\" One time setup: define our own sign types and highlighting\nfunction! g:SyntasticSignsNotifier._setup() abort \" {{{2\n    if has('signs')\n        if !hlexists('SyntasticErrorSign')\n            highlight link SyntasticErrorSign error\n        endif\n        if !hlexists('SyntasticWarningSign')\n            highlight link SyntasticWarningSign todo\n        endif\n        if !hlexists('SyntasticStyleErrorSign')\n            highlight link SyntasticStyleErrorSign SyntasticErrorSign\n        endif\n        if !hlexists('SyntasticStyleWarningSign')\n            highlight link SyntasticStyleWarningSign SyntasticWarningSign\n        endif\n        if !hlexists('SyntasticStyleErrorLine')\n            highlight link SyntasticStyleErrorLine SyntasticErrorLine\n        endif\n        if !hlexists('SyntasticStyleWarningLine')\n            highlight link SyntasticStyleWarningLine SyntasticWarningLine\n        endif\n\n        \" define the signs used to display syntax and style errors/warns\n        execute 'sign define SyntasticError text=' . g:syntastic_error_symbol .\n            \\ ' texthl=SyntasticErrorSign linehl=SyntasticErrorLine'\n        execute 'sign define SyntasticWarning text=' . g:syntastic_warning_symbol .\n            \\ ' texthl=SyntasticWarningSign linehl=SyntasticWarningLine'\n        execute 'sign define SyntasticStyleError text=' . g:syntastic_style_error_symbol .\n            \\ ' texthl=SyntasticStyleErrorSign linehl=SyntasticStyleErrorLine'\n        execute 'sign define SyntasticStyleWarning text=' . g:syntastic_style_warning_symbol .\n            \\ ' texthl=SyntasticStyleWarningSign linehl=SyntasticStyleWarningLine'\n    endif\nendfunction \" }}}2\n\n\" Place signs by all syntax errors in the buffer\nfunction! g:SyntasticSignsNotifier._signErrors(loclist) abort \" {{{2\n    let loclist = a:loclist\n    if !loclist.isEmpty()\n\n        let buf = bufnr('')\n        if !bufloaded(buf)\n            \" signs can be placed only in loaded buffers\n            return\n        endif\n\n        \" errors come first, so that they are not masked by warnings\n        let issues = copy(loclist.errors())\n        call extend(issues, loclist.warnings())\n        call filter(issues, 'v:val[\"bufnr\"] == buf')\n        let seen = {}\n\n        for i in issues\n            if i['lnum'] > 0 && !has_key(seen, i['lnum'])\n                let seen[i['lnum']] = 1\n\n                let sign_severity = i['type'] ==? 'W' ? 'Warning' : 'Error'\n                let sign_subtype = get(i, 'subtype', '')\n                let sign_type = 'Syntastic' . sign_subtype . sign_severity\n\n                execute 'sign place ' . s:next_sign_id . ' line=' . i['lnum'] . ' name=' . sign_type . ' buffer=' . i['bufnr']\n                call add(self._bufSignIds(), s:next_sign_id)\n                let s:next_sign_id += 1\n            endif\n        endfor\n    endif\nendfunction \" }}}2\n\n\" Remove the signs with the given ids from this buffer\nfunction! g:SyntasticSignsNotifier._removeSigns(ids) abort \" {{{2\n    if has('signs')\n        for s in reverse(copy(a:ids))\n            execute 'sign unplace ' . s\n            call remove(self._bufSignIds(), index(self._bufSignIds(), s))\n        endfor\n    endif\nendfunction \" }}}2\n\n\" Get all the ids of the SyntaxError signs in the buffer\nfunction! g:SyntasticSignsNotifier._bufSignIds() abort \" {{{2\n    if !exists('b:syntastic_private_sign_ids')\n        let b:syntastic_private_sign_ids = []\n    endif\n    return b:syntastic_private_sign_ids\nendfunction \" }}}2\n\n\" }}}1\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "plugin/syntastic.vim",
    "content": "\"============================================================================\n\"File:        syntastic.vim\n\"Description: Vim plugin for on the fly syntax checking.\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_plugin') || &compatible\n    finish\nendif\nlet g:loaded_syntastic_plugin = 1\n\nif has('reltime')\n    let g:_SYNTASTIC_START = reltime()\n    lockvar! g:_SYNTASTIC_START\nendif\n\nlet g:_SYNTASTIC_VERSION = '3.10.0-36'\nlockvar g:_SYNTASTIC_VERSION\n\n\" Sanity checks {{{1\n\nif v:version < 700 || (v:version == 700 && !has('patch175'))\n    call syntastic#log#error('need Vim version 7.0.175 or later')\n    finish\nendif\n\nfor s:feature in [\n            \\ 'autocmd',\n            \\ 'eval',\n            \\ 'file_in_path',\n            \\ 'modify_fname',\n            \\ 'quickfix',\n            \\ 'reltime',\n            \\ 'statusline',\n            \\ 'user_commands',\n        \\ ]\n    if !has(s:feature)\n        call syntastic#log#error('need Vim compiled with feature ' . s:feature)\n        finish\n    endif\nendfor\n\nlet s:_running_windows = syntastic#util#isRunningWindows()\nlockvar s:_running_windows\n\nif !exists('g:syntastic_shell')\n    let g:syntastic_shell = &shell\nendif\n\nif s:_running_windows\n    let g:_SYNTASTIC_UNAME = 'Windows'\nelseif executable('uname')\n    try\n        let g:_SYNTASTIC_UNAME = split(syntastic#util#system('uname'), \"\\n\")[0]\n    catch /\\m^E145$/\n        call syntastic#log#error(\"can't run in rvim\")\n        finish\n    catch /\\m^E484$/\n        call syntastic#log#error(\"can't run external programs (misconfigured shell options?)\")\n        finish\n    catch /\\m^E684$/\n        let g:_SYNTASTIC_UNAME = 'Unknown'\n    endtry\nelse\n    let g:_SYNTASTIC_UNAME = 'Unknown'\nendif\nlockvar g:_SYNTASTIC_UNAME\n\n\" XXX Ugly hack to make g:_SYNTASTIC_UNAME available to :SyntasticInfo without\n\" polluting session namespaces\nlet g:syntastic_version =\n    \\ g:_SYNTASTIC_VERSION .\n    \\ ' (Vim ' . v:version . (has('nvim') ? ', Neovim' : '') . ', ' .\n    \\ g:_SYNTASTIC_UNAME .\n    \\ (has('gui') ? ', GUI' : '') . ')'\nlockvar g:syntastic_version\n\n\" }}}1\n\n\" Defaults {{{1\n\nlet g:_SYNTASTIC_DEFAULTS = {\n        \\ 'aggregate_errors':         0,\n        \\ 'always_populate_loc_list': 0,\n        \\ 'auto_jump':                0,\n        \\ 'auto_loc_list':            2,\n        \\ 'check_on_open':            0,\n        \\ 'check_on_wq':              1,\n        \\ 'cursor_columns':           1,\n        \\ 'debug':                    0,\n        \\ 'echo_current_error':       1,\n        \\ 'enable_balloons':          1,\n        \\ 'enable_highlighting':      1,\n        \\ 'enable_signs':             1,\n        \\ 'error_symbol':             '>>',\n        \\ 'exit_checks':              !(s:_running_windows && syntastic#util#var('shell', &shell) =~? '\\m\\<cmd\\.exe$'),\n        \\ 'filetype_map':             {},\n        \\ 'full_redraws':             !(has('gui_running') || has('gui_macvim')),\n        \\ 'id_checkers':              1,\n        \\ 'ignore_extensions':        '\\c\\v^([gx]?z|lzma|bz2)$',\n        \\ 'ignore_files':             [],\n        \\ 'loc_list_height':          10,\n        \\ 'nested_autocommands':      0,\n        \\ 'quiet_messages':           {},\n        \\ 'reuse_loc_lists':          1,\n        \\ 'shell':                    &shell,\n        \\ 'sort_aggregated_errors':   1,\n        \\ 'stl_format':               '[Syntax: line:%F (%t)]',\n        \\ 'style_error_symbol':       'S>',\n        \\ 'style_warning_symbol':     'S>',\n        \\ 'warning_symbol':           '>>'\n    \\ }\nlockvar! g:_SYNTASTIC_DEFAULTS\n\nfor s:key in keys(g:_SYNTASTIC_DEFAULTS)\n    if !exists('g:syntastic_' . s:key)\n        let g:syntastic_{s:key} = copy(g:_SYNTASTIC_DEFAULTS[s:key])\n    endif\nendfor\n\nif exists('g:syntastic_quiet_warnings')\n    call syntastic#log#oneTimeWarn(\"variable g:syntastic_quiet_warnings is deprecated, please use let g:syntastic_quiet_messages = {'level': 'warnings'} instead\")\n    if g:syntastic_quiet_warnings\n        let s:quiet_warnings = get(g:syntastic_quiet_messages, 'type', [])\n        if type(s:quiet_warnings) != type([])\n            let s:quiet_warnings = [s:quiet_warnings]\n        endif\n        call add(s:quiet_warnings, 'warnings')\n        let g:syntastic_quiet_messages['type'] = s:quiet_warnings\n    endif\nendif\n\n\" }}}1\n\n\" Debug {{{1\n\nlet g:_SYNTASTIC_SHELL_OPTIONS = [\n        \\ 'shell',\n        \\ 'shellcmdflag',\n        \\ 'shellpipe',\n        \\ 'shellquote',\n        \\ 'shellredir',\n        \\ 'shelltemp',\n        \\ 'shellxquote'\n    \\ ]\nfor s:feature in [\n        \\ 'autochdir',\n        \\ 'shellslash',\n        \\ 'shellxescape',\n    \\ ]\n\n    if exists('+' . s:feature)\n        call add(g:_SYNTASTIC_SHELL_OPTIONS, s:feature)\n    endif\nendfor\nlockvar! g:_SYNTASTIC_SHELL_OPTIONS\n\n\" debug constants\nlet     g:_SYNTASTIC_DEBUG_TRACE         = 1\nlockvar g:_SYNTASTIC_DEBUG_TRACE\nlet     g:_SYNTASTIC_DEBUG_LOCLIST       = 2\nlockvar g:_SYNTASTIC_DEBUG_LOCLIST\nlet     g:_SYNTASTIC_DEBUG_NOTIFICATIONS = 4\nlockvar g:_SYNTASTIC_DEBUG_NOTIFICATIONS\nlet     g:_SYNTASTIC_DEBUG_AUTOCOMMANDS  = 8\nlockvar g:_SYNTASTIC_DEBUG_AUTOCOMMANDS\nlet     g:_SYNTASTIC_DEBUG_VARIABLES     = 16\nlockvar g:_SYNTASTIC_DEBUG_VARIABLES\nlet     g:_SYNTASTIC_DEBUG_CHECKERS      = 32\nlockvar g:_SYNTASTIC_DEBUG_CHECKERS\n\n\" }}}1\n\nruntime! plugin/syntastic/*.vim\n\nlet s:registry = g:SyntasticRegistry.Instance()\nlet s:notifiers = g:SyntasticNotifiers.Instance()\nlet s:modemap = g:SyntasticModeMap.Instance()\n\nlet s:_check_stack = []\nlet s:_quit_pre = []\n\n\" Commands {{{1\n\n\" @vimlint(EVL103, 1, a:cursorPos)\n\" @vimlint(EVL103, 1, a:cmdLine)\n\" @vimlint(EVL103, 1, a:argLead)\nfunction! s:CompleteCheckerName(argLead, cmdLine, cursorPos) abort \" {{{2\n    let names = []\n\n    let sep_idx = stridx(a:argLead, '/')\n    if sep_idx >= 1\n        let ft = a:argLead[: sep_idx-1]\n        call extend(names, map( s:registry.getNamesOfAvailableCheckers(ft), 'ft . \"/\" . v:val' ))\n    else\n        for ft in s:registry.resolveFiletypes(&filetype)\n            call extend(names, s:registry.getNamesOfAvailableCheckers(ft))\n        endfor\n        call extend(names, map( copy(s:registry.getKnownFiletypes()), 'v:val . \"/\"' ))\n    endif\n\n    return join(names, \"\\n\")\nendfunction \" }}}2\n\" @vimlint(EVL103, 0, a:cursorPos)\n\" @vimlint(EVL103, 0, a:cmdLine)\n\" @vimlint(EVL103, 0, a:argLead)\n\n\n\" @vimlint(EVL103, 1, a:cursorPos)\n\" @vimlint(EVL103, 1, a:cmdLine)\n\" @vimlint(EVL103, 1, a:argLead)\nfunction! s:CompleteFiletypes(argLead, cmdLine, cursorPos) abort \" {{{2\n    return join(s:registry.getKnownFiletypes(), \"\\n\")\nendfunction \" }}}2\n\" @vimlint(EVL103, 0, a:cursorPos)\n\" @vimlint(EVL103, 0, a:cmdLine)\n\" @vimlint(EVL103, 0, a:argLead)\n\ncommand! -bar -nargs=* -complete=custom,s:CompleteCheckerName SyntasticCheck call SyntasticCheck(<f-args>)\ncommand! -bar -nargs=? -complete=custom,s:CompleteFiletypes   SyntasticInfo  call SyntasticInfo(<f-args>)\ncommand! -bar Errors              call SyntasticErrors()\ncommand! -bar SyntasticReset      call SyntasticReset()\ncommand! -bar SyntasticToggleMode call SyntasticToggleMode()\ncommand! -bar SyntasticSetLoclist call SyntasticSetLoclist()\n\ncommand! SyntasticJavacEditClasspath runtime! syntax_checkers/java/*.vim | SyntasticJavacEditClasspath\ncommand! SyntasticJavacEditConfig    runtime! syntax_checkers/java/*.vim | SyntasticJavacEditConfig\n\n\" }}}1\n\n\" Public API {{{1\n\nfunction! SyntasticCheck(...) abort \" {{{2\n    call s:UpdateErrors(bufnr(''), 0, a:000)\n    call syntastic#util#redraw(g:syntastic_full_redraws)\nendfunction \" }}}2\n\nfunction! SyntasticInfo(...) abort \" {{{2\n    call s:modemap.modeInfo(a:000)\n    call s:registry.echoInfoFor(a:000)\n    call s:_explain_skip(a:000)\n    call syntastic#log#debugShowOptions(g:_SYNTASTIC_DEBUG_TRACE, g:_SYNTASTIC_SHELL_OPTIONS)\n    call syntastic#log#debugDump(g:_SYNTASTIC_DEBUG_VARIABLES)\nendfunction \" }}}2\n\nfunction! SyntasticErrors() abort \" {{{2\n    call g:SyntasticLoclist.current().show()\nendfunction \" }}}2\n\nfunction! SyntasticReset() abort \" {{{2\n    call s:ClearCache(bufnr(''))\n    call s:notifiers.refresh(g:SyntasticLoclist.New([]))\nendfunction \" }}}2\n\nfunction! SyntasticToggleMode() abort \" {{{2\n    call s:modemap.toggleMode()\n    call s:ClearCache(bufnr(''))\n    call s:notifiers.refresh(g:SyntasticLoclist.New([]))\n    call s:modemap.echoMode()\nendfunction \" }}}2\n\nfunction! SyntasticSetLoclist() abort \" {{{2\n    call g:SyntasticLoclist.current().setloclist(0)\nendfunction \" }}}2\n\n\" }}}1\n\n\" Autocommands {{{1\n\naugroup syntastic\n    autocmd!\n    autocmd VimEnter    * call s:VimEnterHook()\n    autocmd BufEnter    * call s:BufEnterHook(expand('<afile>', 1))\n    autocmd BufWinEnter * call s:BufWinEnterHook(expand('<afile>', 1))\naugroup END\n\nif g:syntastic_nested_autocommands\n    augroup syntastic\n        autocmd BufReadPost  * nested call s:BufReadPostHook(expand('<afile>', 1))\n        autocmd BufWritePost * nested call s:BufWritePostHook(expand('<afile>', 1))\n    augroup END\nelse\n    augroup syntastic\n        autocmd BufReadPost  * call s:BufReadPostHook(expand('<afile>', 1))\n        autocmd BufWritePost * call s:BufWritePostHook(expand('<afile>', 1))\n    augroup END\nendif\n\nif exists('##QuitPre')\n    \" QuitPre was added in Vim 7.3.544\n    augroup syntastic\n        autocmd QuitPre * call s:QuitPreHook(expand('<afile>', 1))\n    augroup END\nendif\n\nfunction! s:BufReadPostHook(fname) abort \" {{{2\n    let buf = syntastic#util#fname2buf(a:fname)\n    if g:syntastic_check_on_open && buf > 0\n        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_AUTOCOMMANDS,\n            \\ 'autocmd: BufReadPost, buffer ' . buf . ' = ' . string(a:fname))\n        if index(s:_check_stack, buf) == -1\n            call add(s:_check_stack, buf)\n        endif\n    endif\nendfunction \" }}}2\n\nfunction! s:BufWritePostHook(fname) abort \" {{{2\n    let buf = syntastic#util#fname2buf(a:fname)\n    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_AUTOCOMMANDS,\n        \\ 'autocmd: BufWritePost, buffer ' . buf . ' = ' . string(a:fname))\n    call s:UpdateErrors(buf, 1, [])\nendfunction \" }}}2\n\nfunction! s:BufEnterHook(fname) abort \" {{{2\n    let buf = syntastic#util#fname2buf(a:fname)\n    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_AUTOCOMMANDS,\n        \\ 'autocmd: BufEnter, buffer ' . buf . ' = ' . string(a:fname) . ', &buftype = ' . string(&buftype))\n    if buf > 0 && getbufvar(buf, '&buftype') ==# ''\n        let idx = index(reverse(copy(s:_check_stack)), buf)\n        if idx >= 0\n            if !has('vim_starting')\n                call remove(s:_check_stack, -idx - 1)\n                call s:UpdateErrors(buf, 1, [])\n            endif\n        elseif &buftype ==# ''\n            call s:notifiers.refresh(g:SyntasticLoclist.current())\n        endif\n    elseif &buftype ==# 'quickfix'\n        \" TODO: this is needed because in recent versions of Vim lclose\n        \" can no longer be called from BufWinLeave\n        \" TODO: at this point there is no b:syntastic_loclist\n        let loclist = filter(copy(getloclist(0)), 'v:val[\"valid\"]')\n        let owner = str2nr(getbufvar(buf, 'syntastic_owner_buffer'))\n        let buffers = syntastic#util#unique(map(loclist, 'v:val[\"bufnr\"]') + (owner ? [owner] : []))\n        if !empty(get(w:, 'syntastic_loclist_set', [])) && !empty(loclist) && empty(filter( buffers, 'syntastic#util#bufIsActive(v:val)' ))\n            call SyntasticLoclistHide()\n        endif\n    endif\nendfunction \" }}}2\n\nfunction! s:BufWinEnterHook(fname) abort \" {{{2\n    let buf = syntastic#util#fname2buf(a:fname)\n    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_AUTOCOMMANDS,\n        \\ 'autocmd: BufWinEnter, buffer ' . buf . ' = ' . string(a:fname) . ', &buftype = ' . string(&buftype))\n    if buf > 0 && getbufvar(buf, '&buftype') ==# ''\n        let idx = index(reverse(copy(s:_check_stack)), buf)\n        if idx >= 0 && !has('vim_starting')\n            call remove(s:_check_stack, -idx - 1)\n            call s:UpdateErrors(buf, 1, [])\n        endif\n    endif\nendfunction \" }}}2\n\nfunction! s:VimEnterHook() abort \" {{{2\n    let buf = bufnr('')\n    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_AUTOCOMMANDS,\n        \\ 'autocmd: VimEnter, buffer ' . buf . ' = ' . string(bufname(buf)) . ', &buftype = ' . string(&buftype))\n    let idx = index(reverse(copy(s:_check_stack)), buf)\n    if idx >= 0 && getbufvar(buf, '&buftype') ==# ''\n        call remove(s:_check_stack, -idx - 1)\n        call s:UpdateErrors(buf, 1, [])\n    endif\nendfunction \" }}}2\n\nfunction! s:QuitPreHook(fname) abort \" {{{2\n    let buf = syntastic#util#fname2buf(a:fname)\n    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_AUTOCOMMANDS, 'autocmd: QuitPre, buffer ' . buf . ' = ' . string(a:fname))\n\n    if !syntastic#util#var('check_on_wq')\n        call syntastic#util#setWids()\n        call add(s:_quit_pre, buf . '_' . getbufvar(buf, 'changetick') . '_' . w:syntastic_wid)\n    endif\n\n    if !empty(get(w:, 'syntastic_loclist_set', []))\n        call SyntasticLoclistHide()\n    endif\nendfunction \" }}}2\n\n\" }}}1\n\n\" Main {{{1\n\n\"refresh and redraw all the error info for this buf when saving or reading\nfunction! s:UpdateErrors(buf, auto_invoked, checker_names) abort \" {{{2\n    call syntastic#log#debugShowVariables(g:_SYNTASTIC_DEBUG_TRACE, 'version')\n    call syntastic#log#debugShowOptions(g:_SYNTASTIC_DEBUG_TRACE, g:_SYNTASTIC_SHELL_OPTIONS)\n    call syntastic#log#debugDump(g:_SYNTASTIC_DEBUG_VARIABLES)\n    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'UpdateErrors' . (a:auto_invoked ? ' (auto)' : '') .\n        \\ ': ' . (len(a:checker_names) ? join(a:checker_names) : 'default checkers'))\n\n    call s:modemap.synch()\n\n    if s:_skip_file(a:buf)\n        return\n    endif\n\n    let run_checks = !a:auto_invoked || s:modemap.doAutoChecking(a:buf)\n    if run_checks\n        call s:CacheErrors(a:buf, a:checker_names)\n        call syntastic#util#setLastTick(a:buf)\n    elseif a:auto_invoked\n        return\n    endif\n\n    let loclist = g:SyntasticLoclist.current(a:buf)\n\n    if exists('*SyntasticCheckHook')\n        call SyntasticCheckHook(loclist.getRaw())\n    endif\n\n    \" populate loclist and jump {{{3\n    let do_jump = syntastic#util#var('auto_jump') + 0\n    if do_jump == 2\n        let do_jump = loclist.getFirstError(1)\n    elseif do_jump == 3\n        let do_jump = loclist.getFirstError()\n    elseif 0 > do_jump || do_jump > 3\n        let do_jump = 0\n    endif\n\n    if syntastic#util#var('always_populate_loc_list') || do_jump\n        call loclist.setloclist(1)\n        if run_checks && do_jump && !loclist.isEmpty()\n            call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'loclist: jump')\n            execute 'silent! lrewind ' . do_jump\n\n            \" XXX: Vim doesn't call autocmd commands in a predictible\n            \" order, which can lead to missing filetype when jumping\n            \" to a new file; the following is a workaround for the\n            \" resulting brain damage\n            if &filetype ==# ''\n                silent! filetype detect\n            endif\n        endif\n    endif\n    \" }}}3\n\n    call s:notifiers.refresh(loclist)\nendfunction \" }}}2\n\n\"clear the loc list for the buffer\nfunction! s:ClearCache(buf) abort \" {{{2\n    let loclist = g:SyntasticLoclist.current(a:buf)\n    call s:notifiers.reset(loclist)\n    call loclist.destroy()\nendfunction \" }}}2\n\n\"detect and cache all syntax errors in this buffer\nfunction! s:CacheErrors(buf, checker_names) abort \" {{{2\n    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'CacheErrors: ' .\n        \\ (len(a:checker_names) ? join(a:checker_names) : 'default checkers'))\n    call s:ClearCache(a:buf)\n    let newLoclist = g:SyntasticLoclist.New([])\n    call newLoclist.setOwner(a:buf)\n\n    if !s:_skip_file(a:buf)\n        \" debug logging {{{3\n        call syntastic#log#debugShowVariables(g:_SYNTASTIC_DEBUG_TRACE, 'aggregate_errors')\n        if syntastic#util#isRunningWindows()\n            call syntastic#log#debug(g:_SYNTASTIC_DEBUG_CHECKERS, '$TMP = ' . string($TMP) . ', $TEMP = ' . string($TEMP))\n        else\n            call syntastic#log#debug(g:_SYNTASTIC_DEBUG_CHECKERS, '$TERM = ' . string($TERM))\n            call syntastic#log#debug(g:_SYNTASTIC_DEBUG_CHECKERS, '$TMPDIR = ' . string($TMPDIR))\n        endif\n        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_CHECKERS, '$PATH = ' . string($PATH))\n        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'getcwd() = ' . string(getcwd()))\n        \" }}}3\n\n        let clist = s:registry.getCheckers(getbufvar(a:buf, '&filetype'), a:checker_names)\n\n        let aggregate_errors =\n            \\ syntastic#util#var('aggregate_errors') || len(syntastic#util#unique(map(copy(clist), 'v:val.getFiletype()'))) > 1\n        let decorate_errors = aggregate_errors && syntastic#util#var('id_checkers')\n        let sort_aggregated_errors = aggregate_errors && syntastic#util#var('sort_aggregated_errors')\n\n        let names = []\n        let unavailable_checkers = 0\n        for checker in clist\n            let cname = checker.getCName()\n            if !checker.isAvailable()\n                call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'CacheErrors: Checker ' . cname . ' is not available')\n                let unavailable_checkers += 1\n                continue\n            endif\n\n            call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'CacheErrors: Invoking checker: ' . cname)\n\n            let loclist = checker.getLocList()\n\n            if !loclist.isEmpty()\n                if decorate_errors\n                    call loclist.decorate(cname)\n                endif\n                call add(names, cname)\n                if checker.wantSort() && !sort_aggregated_errors\n                    call loclist.sort()\n                    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'sorted:', loclist)\n                endif\n\n                call newLoclist.extend(loclist)\n\n                if !aggregate_errors\n                    break\n                endif\n            endif\n        endfor\n\n        \" set names {{{3\n        if !empty(names)\n            if len(syntastic#util#unique(map( copy(names), 'substitute(v:val, \"\\\\m/.*\", \"\", \"\")' ))) == 1\n                let type = substitute(names[0], '\\m/.*', '', '')\n                let name = join(map( names, 'substitute(v:val, \"\\\\m.\\\\{-}/\", \"\", \"\")' ), ', ')\n                call newLoclist.setName( name . ' ('. type . ')' )\n            else\n                \" checkers from mixed types\n                call newLoclist.setName(join(names, ', '))\n            endif\n        endif\n        \" }}}3\n\n        \" issue warning about no active checkers {{{3\n        if len(clist) == unavailable_checkers\n            if !empty(a:checker_names)\n                if len(a:checker_names) == 1\n                    call syntastic#log#warn('checker ' . a:checker_names[0] . ' is not available')\n                else\n                    call syntastic#log#warn('checkers ' . join(a:checker_names, ', ') . ' are not available')\n                endif\n            else\n                call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'CacheErrors: no checkers available for ' . &filetype)\n            endif\n        endif\n        \" }}}3\n\n        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'aggregated:', newLoclist)\n        if sort_aggregated_errors\n            call newLoclist.sort()\n            call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'sorted:', newLoclist)\n        endif\n    endif\n\n    call newLoclist.deploy()\nendfunction \" }}}2\n\n\"Emulates the :lmake command. Sets up the make environment according to the\n\"options given, runs make, resets the environment, returns the location list\n\"\n\"a:options can contain the following keys:\n\"    'makeprg'\n\"    'errorformat'\n\"\n\"The corresponding options are set for the duration of the function call. They\n\"are set with :let, so dont escape spaces.\n\"\n\"a:options may also contain:\n\"   'defaults' - a dict containing default values for the returned errors\n\"   'subtype' - all errors will be assigned the given subtype\n\"   'preprocess' - a function to be applied to the error file before parsing errors\n\"   'postprocess' - a list of functions to be applied to the error list\n\"   'cwd' - change directory to the given path before running the checker\n\"   'env' - environment variables to set before running the checker\n\"   'returns' - a list of valid exit codes for the checker\n\" @vimlint(EVL102, 1, l:env_save)\nfunction! SyntasticMake(options) abort \" {{{2\n    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'SyntasticMake: called with options:', a:options)\n\n    \" save options and locale env variables {{{3\n    let old_local_errorformat = &l:errorformat\n    let old_errorformat = &errorformat\n    let old_cwd = getcwd()\n    \" }}}3\n\n    if has_key(a:options, 'errorformat')\n        let &errorformat = a:options['errorformat']\n        set errorformat<\n    endif\n\n    if has_key(a:options, 'cwd')\n        execute 'lcd ' . fnameescape(a:options['cwd'])\n    endif\n\n    \" set environment variables {{{3\n    let env_save = {}\n    if has_key(a:options, 'env') && len(a:options['env'])\n        for key in keys(a:options['env'])\n            if key =~? '\\m^[a-z_][a-z0-9_]*$'\n                execute 'let env_save[' . string(key) . '] = $' . key\n                execute 'let $' . key . ' = ' . string(a:options['env'][key])\n            endif\n        endfor\n    endif\n    \" }}}3\n\n    let err_lines = split(syntastic#util#system(a:options['makeprg']), \"\\n\", 1)\n\n    \" restore environment variables {{{3\n    if len(env_save)\n        for key in keys(env_save)\n            execute 'let $' . key . ' = ' . string(env_save[key])\n        endfor\n    endif\n    \" }}}3\n\n    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'checker output:', err_lines)\n\n    \" Does it still make sense to go on?\n    let bailout =\n        \\ syntastic#util#var('exit_checks') &&\n        \\ has_key(a:options, 'returns') &&\n        \\ index(a:options['returns'], v:shell_error) == -1\n\n    if !bailout\n        if has_key(a:options, 'Preprocess')\n            let err_lines = call(a:options['Preprocess'], [err_lines])\n            call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'preprocess (external):', err_lines)\n        elseif has_key(a:options, 'preprocess')\n            let err_lines = call('syntastic#preprocess#' . a:options['preprocess'], [err_lines])\n            call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'preprocess:', err_lines)\n        endif\n        noautocmd lgetexpr err_lines\n\n        let errors = deepcopy(getloclist(0))\n\n        if has_key(a:options, 'cwd')\n            execute 'lcd ' . fnameescape(old_cwd)\n        endif\n\n        try\n            silent lolder\n        catch /\\m^Vim\\%((\\a\\+)\\)\\=:E380/\n            \" E380: At bottom of quickfix stack\n            call setloclist(0, [], 'r')\n            try\n                \" Vim 7.4.2200 or later\n                call setloclist(0, [], 'r', { 'title': '' })\n            catch /\\m^Vim\\%((\\a\\+)\\)\\=:E\\%(118\\|731\\)/\n                \" do nothing\n            endtry\n        catch /\\m^Vim\\%((\\a\\+)\\)\\=:E776/\n            \" E776: No location list\n            \" do nothing\n        endtry\n    else\n        let errors = []\n    endif\n\n    \" restore options {{{3\n    let &errorformat = old_errorformat\n    let &l:errorformat = old_local_errorformat\n    \" }}}3\n\n    if !s:_running_windows && (s:_os_name() =~? 'FreeBSD' || s:_os_name() =~? 'OpenBSD')\n        call syntastic#util#redraw(g:syntastic_full_redraws)\n    endif\n\n    if bailout\n        call syntastic#log#ndebug(g:_SYNTASTIC_DEBUG_LOCLIST, 'checker output:', err_lines)\n        throw 'Syntastic: checker error'\n    endif\n\n    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'raw loclist:', errors)\n\n    if has_key(a:options, 'defaults')\n        call s:_add_to_errors(errors, a:options['defaults'])\n    endif\n\n    \" Add subtype info if present.\n    if has_key(a:options, 'subtype')\n        call s:_add_to_errors(errors, { 'subtype': a:options['subtype'] })\n    endif\n\n    if has_key(a:options, 'Postprocess') && !empty(a:options['Postprocess'])\n        for rule in a:options['Postprocess']\n            let errors = call(rule, [errors])\n        endfor\n        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'postprocess (external):', errors)\n    elseif has_key(a:options, 'postprocess') && !empty(a:options['postprocess'])\n        for rule in a:options['postprocess']\n            let errors = call('syntastic#postprocess#' . rule, [errors])\n        endfor\n        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'postprocess:', errors)\n    endif\n\n    return errors\nendfunction \" }}}2\n\" @vimlint(EVL102, 0, l:env_save)\n\n\"return a string representing the state of buffer according to\n\"g:syntastic_stl_format\n\"\n\"return '' if no errors are cached for the buffer\nfunction! SyntasticStatuslineFlag() abort \" {{{2\n    return g:SyntasticLoclist.current().getStatuslineFlag()\nendfunction \" }}}2\n\n\" }}}1\n\n\" Utilities {{{1\n\nfunction! s:_ignore_file(filename) abort \" {{{2\n    let fname = fnamemodify(a:filename, ':p')\n    for pattern in g:syntastic_ignore_files\n        if fname =~# pattern\n            return 1\n        endif\n    endfor\n    return 0\nendfunction \" }}}2\n\nfunction! s:_is_quitting(buf) abort \" {{{2\n    let quitting = 0\n    if exists('w:syntastic_wid')\n        let key = a:buf . '_' . getbufvar(a:buf, 'changetick') . '_' . w:syntastic_wid\n        let idx = index(s:_quit_pre, key)\n        if idx >= 0\n            call remove(s:_quit_pre, idx)\n            let quitting = 1\n        endif\n    endif\n\n    return quitting\nendfunction \" }}}2\n\n\" Skip running in special buffers\nfunction! s:_skip_file(buf) abort \" {{{2\n    let fname = bufname(a:buf)\n    let skip = s:_is_quitting(a:buf) || getbufvar(a:buf, 'syntastic_skip_checks') ||\n        \\ (getbufvar(a:buf, '&buftype') !=# '') || !filereadable(fname) || getwinvar(0, '&diff') ||\n        \\ getwinvar(0, '&previewwindow') || s:_ignore_file(fname) ||\n        \\ fnamemodify(fname, ':e') =~? g:syntastic_ignore_extensions\n    if skip\n        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, '_skip_file: skipping checks')\n    endif\n    return skip\nendfunction \" }}}2\n\n\" Explain why checks will be skipped for the current file\nfunction! s:_explain_skip(filetypes) abort \" {{{2\n    let buf = bufnr('')\n    if empty(a:filetypes) && s:_skip_file(buf)\n        let why = []\n        let fname = bufname(buf)\n        let bt = getbufvar(buf, '&buftype')\n\n        if s:_is_quitting(buf)\n            call add(why, 'quitting buffer')\n        endif\n        if getbufvar(buf, 'syntastic_skip_checks')\n            call add(why, 'b:syntastic_skip_checks set')\n        endif\n        if bt !=# ''\n            call add(why, 'buftype = ' . string(&buftype))\n        endif\n        if !filereadable(fname)\n            call add(why, 'file not readable / not local')\n        endif\n        if getwinvar(0, '&diff')\n            call add(why, 'diff mode')\n        endif\n        if getwinvar(0, '&previewwindow')\n            call add(why, 'preview window')\n        endif\n        if s:_ignore_file(fname)\n            call add(why, 'filename matching g:syntastic_ignore_files')\n        endif\n        if fnamemodify(fname, ':e') =~? g:syntastic_ignore_extensions\n            call add(why, 'extension matching g:syntastic_ignore_extensions')\n        endif\n\n        echomsg 'The current file will not be checked (' . join(why, ', ') . ')'\n    endif\nendfunction \" }}}2\n\n\" Take a list of errors and add default values to them from a:options\nfunction! s:_add_to_errors(errors, options) abort \" {{{2\n    for err in a:errors\n        for key in keys(a:options)\n            if !has_key(err, key) || empty(err[key])\n                let err[key] = a:options[key]\n            endif\n        endfor\n    endfor\n\n    return a:errors\nendfunction \" }}}2\n\nfunction! s:_os_name() abort \" {{{2\n    return g:_SYNTASTIC_UNAME\nendfunction \" }}}2\n\n\" }}}1\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/actionscript/mxmlc.vim",
    "content": "\"============================================================================\n\"File:        mxmlc.vim\n\"Description: ActionScript syntax checker - using mxmlc\n\"Maintainer:  Andy Earnshaw <andyearnshaw@gmail.com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_actionscript_mxmlc_checker')\n    finish\nendif\nlet g:loaded_syntastic_actionscript_mxmlc_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_actionscript_mxmlc_GetHighlightRegex(item)\n    let term = ''\n\n    if match(a:item['text'], '\\mvariable ''') > -1\n        let term = matchstr(a:item['text'], '\\m''\\zs[^'']\\+\\ze''')\n\n    elseif match(a:item['text'], 'expected a definition keyword') > -1\n        let term = matchstr(a:item['text'], '\\mnot \\zs[^.]\\+\\ze\\.')\n\n    elseif match(a:item['text'], '\\mundefined \\%(property\\|method\\)') > -1\n        let term = matchstr(a:item['text'], '\\mundefined \\%(property\\|method\\) \\zs[^. ]\\+\\ze')\n\n    elseif match(a:item['text'], 'could not be found') > -1\n        let term = matchstr(a:item['text'], '\\m \\zs\\S\\+\\ze could not be found')\n\n    elseif match(a:item['text'], 'Type was not found') > -1\n        let term = matchstr(a:item['text'], '\\m: \\zs[^.]\\+\\zs\\.')\n\n    endif\n\n    return term !=# '' ? '\\V\\<' . escape(term, '\\') . '\\>' : ''\nendfunction\n\nfunction! SyntaxCheckers_actionscript_mxmlc_GetLocList() dict\n    call syntastic#log#deprecationWarn('actionscript_mxmlc_conf', 'actionscript_mxmlc_args',\n        \\ \"'-load-config+=' . syntastic#util#shexpand(OLD_VAR)\")\n\n    let makeprg = self.makeprgBuild({ 'args_after': '-output=' . syntastic#util#DevNull() })\n\n    let errorformat =\n        \\ '%f(%l): col: %c %trror: %m,' .\n        \\ '%f(%l): col: %c %tarning: %m,' .\n        \\ '%f: %trror: %m,' .\n        \\ '%-G%.%#'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'actionscript',\n    \\ 'name': 'mxmlc'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/ada/gcc.vim",
    "content": "\"============================================================================\n\"File:        ada.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Alfredo Di Napoli <alfredo.dinapoli@gmail.com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_ada_gcc_checker')\n    finish\nendif\nlet g:loaded_syntastic_ada_gcc_checker = 1\n\nif !exists('g:syntastic_ada_compiler_options')\n    let g:syntastic_ada_compiler_options = ''\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_ada_gcc_IsAvailable() dict\n    if !exists('g:syntastic_ada_compiler')\n        let g:syntastic_ada_compiler = self.getExec()\n    endif\n    return executable(expand(g:syntastic_ada_compiler, 1))\nendfunction\n\nfunction! SyntaxCheckers_ada_gcc_GetLocList() dict\n    return syntastic#c#GetLocList('ada', 'gcc', {\n        \\ 'errorformat':\n        \\     '%-G%f:%s:,' .\n        \\     '%f:%l:%c: %m,' .\n        \\     '%f:%l: %m',\n        \\ 'main_flags': '-c -x ada -gnats -gnatef',\n        \\ 'header_flags': '-S -x ada -gnats -gnatef',\n        \\ 'header_names': '\\.ads$' })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'ada',\n    \\ 'name': 'gcc' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/ansible/ansible_lint.vim",
    "content": "\"============================================================================\n\"File:        ansible_lint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Erik Zaadi <erik.zaadi at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_ansible_ansible_lint_checker')\n    finish\nendif\nlet g:loaded_syntastic_ansible_ansible_lint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_ansible_ansible_lint_IsAvailable() dict\n    if !executable(self.getExec())\n        return 0\n    endif\n    return syntastic#util#versionIsAtLeast(self.getVersion(), [2, 0, 4])\nendfunction\n\nfunction! SyntaxCheckers_ansible_ansible_lint_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_after': '-p' })\n\n    let errorformat =\n        \\ '%f:%l: [E%n] %m,' .\n        \\ '%f:%l: [EANSIBLE%n] %m,' .\n        \\ '%f:%l: [ANSIBLE%n] %m,' .\n        \\ '%f:%l:%c %m,' .\n        \\ '%f:%l: %m'\n\n    let env = syntastic#util#isRunningWindows() ? {} : { 'TERM': 'dumb' }\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'env': env,\n        \\ 'defaults': {'type': 'E'},\n        \\ 'subtype': 'Style',\n        \\ 'returns': [0, 2] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'ansible',\n    \\ 'name': 'ansible_lint',\n    \\ 'exec': 'ansible-lint'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/apiblueprint/drafter.vim",
    "content": "\"============================================================================\n\"File:        drafter.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_apiblueprint_drafter_checker')\n    finish\nendif\nlet g:loaded_syntastic_apiblueprint_drafter_checker = 1\n\nif !exists('g:syntastic_apiblueprint_drafter_sort')\n    let g:syntastic_apiblueprint_drafter_sort = 1\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_apiblueprint_drafter_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'post_args': '-u -l' })\n\n    let errorformat =\n        \\ '%trror: (%n)  %m,' .\n        \\ '%tarning: (%n)  %m,' .\n        \\ '%-G%.%#'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'defaults': {'bufnr': bufnr('')},\n        \\ 'returns': [0, 2, 3, 4] })\n\n    for e in loclist\n        let matches = matchlist(e['text'], '\\v^(.+); line (\\d+), column (\\d+) - line (\\d+), column (\\d+)$')\n        if len(matches) > 5\n            let e['lnum'] = str2nr(matches[2])\n            let e['col']  = str2nr(matches[3])\n            let e['vcol'] = 0\n\n            if matches[2] == matches[4]\n                let e['hl'] = '\\%>' . (e['col'] - 1) . 'c\\%<' . matches[5] . 'c'\n            endif\n\n            let e['text'] = matches[1]\n        else\n            let e['valid'] = 0\n        endif\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'apiblueprint',\n    \\ 'name': 'drafter'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/applescript/osacompile.vim",
    "content": "\"==============================================================================\n\"       FileName: applescript.vim\n\"           Desc: Syntax checking plugin for syntastic\n\"         Author: Zhao Cai\n\"          Email: caizhaoff@gmail.com\n\"        Version: 0.2.1\n\"   Date Created: Thu 09 Sep 2011 10:30:09 AM EST\n\"  Last Modified: Fri 09 Dec 2011 01:10:24 PM EST\n\"\n\"        History: 0.1.0 - working, but it will run the script everytime to check\n\"                 syntax. Should use osacompile but strangely it does not give\n\"                 errors.\n\"\n\"                 0.2.0 - switch to osacompile, it gives less errors compared\n\"                 with osascript.\n\"\n\"                 0.2.1 - remove g:syntastic_applescript_tempfile. use\n\"                 tempname() instead.\n\"\n\"        License: This program is free software. It comes without any\n\"        warranty, to the extent permitted by applicable law. You can\n\"        redistribute it and/or modify it under the terms of the Do What The\n\"        Fuck You Want To Public License, Version 2, as published by Sam\n\"        Hocevar.  See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_applescript_osacompile_checker')\n    finish\nendif\nlet g:loaded_syntastic_applescript_osacompile_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_applescript_osacompile_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_after': '-o ' . tempname() . '.scpt' })\n    let errorformat = '%f:%l:%m'\n    return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'applescript',\n    \\ 'name': 'osacompile' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/asciidoc/asciidoc.vim",
    "content": "\"============================================================================\n\"File:        asciidoc.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_asciidoc_asciidoc_checker')\n    finish\nendif\nlet g:loaded_syntastic_asciidoc_asciidoc_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_asciidoc_asciidoc_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_after': syntastic#c#NullOutput() })\n\n    let errorformat =\n        \\ '%E%\\w%\\+: %tRROR: %f: line %l: %m,' .\n        \\ '%E%\\w%\\+: %tRROR: %f: %m,' .\n        \\ '%E%\\w%\\+: FAILED: %f: line %l: %m,' .\n        \\ '%E%\\w%\\+: FAILED: %f: %m,' .\n        \\ '%W%\\w%\\+: %tARNING: %f: line %l: %m,' .\n        \\ '%W%\\w%\\+: %tARNING: %f: %m,' .\n        \\ '%W%\\w%\\+: DEPRECATED: %f: line %l: %m,' .\n        \\ '%W%\\w%\\+: DEPRECATED: %f: %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'returns': [0, 1] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'asciidoc',\n    \\ 'name': 'asciidoc'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/asciidoc/proselint.vim",
    "content": "\"============================================================================\n\"File:        proselint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_asciidoc_proselint_checker')\n    finish\nendif\nlet g:loaded_syntastic_asciidoc_proselint_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'asciidoc',\n    \\ 'name': 'proselint',\n    \\ 'redirect': 'text/proselint'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/asl/iasl.vim",
    "content": "\"============================================================================\n\"File:        iasl.vim\n\"Description: Syntax checking plugin for syntastic using iasl\n\"Maintainer:  Peter Wu <peter@lekensteyn.nl>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_asl_iasl_checker')\n    finish\nendif\nlet g:loaded_syntastic_asl_iasl_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_asl_iasl_GetLocList() dict\n    let tmpdir = syntastic#util#tmpdir() . syntastic#util#Slash()\n    let makeprg = self.makeprgBuild({\n        \\ 'args': '-vi',\n        \\ 'args_after': ['-p', tmpdir] })\n\n    let errorformat =\n        \\ '%f(%l) : %trror    %n - %m,' .\n        \\ '%f(%l) : %tarning  %n - %m,' .\n        \\ '%f(%l) : %temark   %n - %m,' .\n        \\ '%f(%l) : %tptimize %n - %m,' .\n        \\ '%f(%l) : %m'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'returns': [0, 255] })\n\n    for e in loclist\n        if e['type'] =~? 'r'\n            let e['type'] = 'W'\n        elseif e['type'] =~? 'o'\n            let e['type'] = 'W'\n            let e['subtype'] = 'Style'\n        endif\n    endfor\n\n    call syntastic#util#rmrf(tmpdir)\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'asl',\n    \\ 'name': 'iasl'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/asm/gcc.vim",
    "content": "\"============================================================================\n\"File:        gcc.vim\n\"Description: Syntax checking for at&t and intel assembly files with gcc\n\"Maintainer:  Josh Rahm <joshuarahm@gmail.com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_asm_gcc_checker')\n    finish\nendif\nlet g:loaded_syntastic_asm_gcc_checker = 1\n\nif !exists('g:syntastic_asm_compiler_options')\n    let g:syntastic_asm_compiler_options = ''\nendif\n\nif !exists('g:syntastic_asm_generic')\n    let g:syntastic_asm_generic = 0\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_asm_gcc_IsAvailable() dict \" {{{1\n    if !exists('g:syntastic_asm_compiler')\n        let g:syntastic_asm_compiler = self.getExec()\n    endif\n    return executable(expand(g:syntastic_asm_compiler, 1))\nendfunction \" }}}1\n\nfunction! SyntaxCheckers_asm_gcc_GetLocList() dict \" {{{1\n    let buf = bufnr('')\n    return syntastic#c#GetLocList('asm', 'gcc', {\n        \\ 'errorformat':\n        \\     '%-G%f:%s:,' .\n        \\     '%f:%l:%c: %trror: %m,' .\n        \\     '%f:%l:%c: %tarning: %m,' .\n        \\     '%f:%l: %m',\n        \\ 'main_flags': '-x assembler -fsyntax-only' . (g:syntastic_asm_generic ? '' : ' -masm=' . s:GetDialect(buf)) })\nendfunction \" }}}1\n\n\" Utilities {{{1\n\nfunction! s:GetDialect(buf) \" {{{2\n    return syntastic#util#bufVar(a:buf, 'asm_dialect', fnamemodify(bufname(a:buf), ':e') ==? 'asm' ? 'intel' : 'att')\nendfunction \" }}}2\n\n\" }}}1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'asm',\n    \\ 'name': 'gcc' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/bemhtml/bemhtmllint.vim",
    "content": "\"============================================================================\n\"File:        bemhtmllint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Sergej Tatarincev <s.tatarincev at yandex.ua>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_bemhtml_bemhtmllint_checker')\n    finish\nendif\n\nlet g:loaded_syntastic_bemhtml_bemhtmllint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction SyntaxCheckers_bemhtml_bemhtmllint_GetLocList() dict\n    let makeprg = self.makeprgBuild({})\n    let errorformat = '%f:%l:%c: %m'\n    return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'bemhtml',\n    \\ 'name': 'bemhtmllint',\n    \\ 'exec': 'bemhtml-lint' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/bro/bro.vim",
    "content": "\"============================================================================\n\"File:        bro.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Justin Azoff <justin.azoff@gmail.com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_bro_bro_checker')\n    finish\nendif\nlet g:loaded_syntastic_bro_bro_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_bro_bro_GetHighlightRegex(item)\n    let term = matchstr(a:item['text'], '\\m at or near \"\\zs[^\"]\\+\\ze\"')\n    return term !=# '' ? '\\V\\<' . escape(term, '\\') . '\\>' : ''\nendfunction\n\nfunction! SyntaxCheckers_bro_bro_IsAvailable() dict\n    if !executable(self.getExec())\n        return 0\n    endif\n\n    if syntastic#util#system(self.getExecEscaped() . ' --help') !~# '--parse-only'\n        call self.log('unknown option \"--parse-only\"')\n        return 0\n    endif\n\n    return 1\nendfunction\n\nfunction! SyntaxCheckers_bro_bro_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_before': '--parse-only' })\n\n    \"example: error in ./foo.bro, line 3: unknown identifier banana, at or near \"banana\"\n    let errorformat = '%t:%f:%l:%m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'preprocess': 'bro' })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'bro',\n    \\ 'name': 'bro'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/c/avrgcc.vim",
    "content": "\"============================================================================\n\"File:        avrgcc.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Karel <karelishere at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_c_avrgcc_checker')\n    finish\nendif\nlet g:loaded_syntastic_c_avrgcc_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nlet s:opt_x = { 'c': 'c', 'cpp': 'c++' }\n\nfunction! SyntaxCheckers_c_avrgcc_GetLocList() dict\n    let buf = bufnr('')\n\n    let makeprg = self.makeprgBuild({\n        \\ 'args_before': syntastic#c#ReadConfig(syntastic#util#bufVar(buf, 'avrgcc_config_file')),\n        \\ 'args_after': '-x ' . get(s:opt_x, self.getFiletype(), '')  . ' -fsyntax-only' })\n\n    let errorformat =\n        \\ '%-G%f:%s:,' .\n        \\ '%-G%f:%l: %#error: %#(Each undeclared identifier is reported only%.%#,' .\n        \\ '%-G%f:%l: %#error: %#for each function it appears%.%#,' .\n        \\ '%-GIn file included%.%#,' .\n        \\ '%-G %#from %f:%l\\,,' .\n        \\ '%f:%l:%c: %trror: %m,' .\n        \\ '%f:%l:%c: %tarning: %m,' .\n        \\ '%f:%l:%c: %m,' .\n        \\ '%f:%l: %trror: %m,' .\n        \\ '%f:%l: %tarning: %m,'.\n        \\ '%f:%l: %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'postprocess': ['compressWhitespace'] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'c',\n    \\ 'name': 'avrgcc',\n    \\ 'exec': 'avr-gcc'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/c/checkpatch.vim",
    "content": "\"============================================================================\n\"File:        checkpatch.vim\n\"Description: Syntax checking plugin for syntastic using checkpatch.pl\n\"Maintainer:  Daniel Walker <dwalker at fifo99 dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_c_checkpatch_checker')\n    finish\nendif\nlet g:loaded_syntastic_c_checkpatch_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_c_checkpatch_IsAvailable() dict\n    call syntastic#log#deprecationWarn('c_checker_checkpatch_location', 'c_checkpatch_exec')\n\n    if !exists('g:syntastic_c_checkpatch_exec') && !executable(self.getExec())\n        if executable('checkpatch')\n            let g:syntastic_c_checkpatch_exec = 'checkpatch'\n        elseif executable('./scripts/checkpatch.pl')\n            let g:syntastic_c_checkpatch_exec = fnamemodify('./scripts/checkpatch.pl', ':p')\n        elseif executable('./scripts/checkpatch')\n            let g:syntastic_c_checkpatch_exec = fnamemodify('./scripts/checkpatch', ':p')\n        endif\n    endif\n\n    call self.log('exec =', self.getExec())\n\n    return executable(self.getExec())\nendfunction\n\nfunction! SyntaxCheckers_c_checkpatch_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_after': '--no-summary --no-tree --terse --file' })\n\n    let errorformat =\n        \\ '%W%f:%l: CHECK: %m,' .\n        \\ '%f:%l: %tARNING: %m,' .\n        \\ '%f:%l: %tRROR: %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'returns': [0, 1],\n        \\ 'subtype': 'Style' })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'c',\n    \\ 'name': 'checkpatch',\n    \\ 'exec': 'checkpatch.pl'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/c/clang_check.vim",
    "content": "\"============================================================================\n\"File:        clang_check.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Benjamin Bannier <bbannier at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_c_clang_check_checker')\n    finish\nendif\nlet g:loaded_syntastic_c_clang_check_checker = 1\n\nif !exists('g:syntastic_c_clang_check_sort')\n    let g:syntastic_c_clang_check_sort = 1\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_c_clang_check_GetLocList() dict\n    let buf = bufnr('')\n\n    let makeprg = self.makeprgBuild({\n        \\ 'post_args':\n        \\   '-- ' .\n        \\   syntastic#c#ReadConfig(syntastic#util#bufVar(buf, 'clang_check_config_file')) . ' ' .\n        \\   '-fshow-column ' .\n        \\   '-fshow-source-location ' .\n        \\   '-fno-caret-diagnostics ' .\n        \\   '-fno-color-diagnostics ' .\n        \\   '-fdiagnostics-format=clang' })\n\n    let errorformat =\n        \\ '%E%f:%l:%c: fatal error: %m,' .\n        \\ '%E%f:%l:%c: error: %m,' .\n        \\ '%W%f:%l:%c: warning: %m,' .\n        \\ '%-G%\\m%\\%%(LLVM ERROR:%\\|No compilation database found%\\)%\\@!%.%#,' .\n        \\ '%E%m'\n\n    let env = syntastic#util#isRunningWindows() ? {} : { 'TERM': 'dumb' }\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'env': env,\n        \\ 'defaults': {'bufnr': bufnr('')},\n        \\ 'returns': [0, 1] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'c',\n    \\ 'name': 'clang_check',\n    \\ 'exec': 'clang-check'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/c/clang_tidy.vim",
    "content": "\"============================================================================\n\"File:        clang_tidy.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Benjamin Bannier <bbannier at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_c_clang_tidy_checker')\n    finish\nendif\nlet g:loaded_syntastic_c_clang_tidy_checker = 1\n\nif !exists('g:syntastic_c_clang_tidy_sort')\n    let g:syntastic_c_clang_tidy_sort = 1\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_c_clang_tidy_GetLocList() dict\n    let buf = bufnr('')\n\n    let makeprg = self.makeprgBuild({\n        \\ 'post_args':\n        \\   '-- ' .\n        \\   syntastic#c#ReadConfig(syntastic#util#bufVar(buf, 'clang_tidy_config_file')) . ' ' .\n        \\   '-fshow-column ' .\n        \\   '-fshow-source-location ' .\n        \\   '-fno-caret-diagnostics ' .\n        \\   '-fno-color-diagnostics ' .\n        \\   '-fdiagnostics-format=clang' })\n\n    let errorformat =\n        \\ '%E%f:%l:%c: fatal error: %m,' .\n        \\ '%E%f:%l:%c: error: %m,' .\n        \\ '%W%f:%l:%c: warning: %m,' .\n        \\ '%-G%\\m%\\%%(LLVM ERROR:%\\|No compilation database found%\\)%\\@!%.%#,' .\n        \\ '%E%m'\n\n    let env = syntastic#util#isRunningWindows() ? {} : { 'TERM': 'dumb' }\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'env': env,\n        \\ 'defaults': {'bufnr': bufnr('')},\n        \\ 'returns': [0, 1] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'c',\n    \\ 'name': 'clang_tidy',\n    \\ 'exec': 'clang-tidy'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/c/cppcheck.vim",
    "content": "\"============================================================================\n\"File:        cppcheck.vim\n\"Description: Syntax checking plugin for syntastic using cppcheck.pl\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_c_cppcheck_checker')\n    finish\nendif\nlet g:loaded_syntastic_c_cppcheck_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_c_cppcheck_GetLocList() dict\n    let buf = bufnr('')\n\n    let makeprg = self.makeprgBuild({\n        \\ 'args': syntastic#c#ReadConfig(syntastic#util#bufVar(buf, 'cppcheck_config_file')),\n        \\ 'args_after': '-q --enable=style' })\n\n    let errorformat =\n        \\ '[%f:%l]: (%trror) %m,' .\n        \\ '%f:%l:%c: %trror: %m,' .\n        \\ '[%f:%l]: (%tarning) %m,' .\n        \\ '%f:%l:%c: %tarning: %m,' .\n        \\ '[%f:%l]: (%ttyle) %m,' .\n        \\ '%f:%l:%c: %ttyle: %m,' .\n        \\ '[%f:%l]: (%terformance) %m,' .\n        \\ '%f:%l:%c: %terformance: %m,' .\n        \\ '[%f:%l]: (%tortability) %m,' .\n        \\ '%f:%l:%c: %tortability: %m,' .\n        \\ '[%f:%l]: (%tnformation) %m,' .\n        \\ '%f:%l:%c: %tnformation: %m,' .\n        \\ '[%f:%l]: (%tnconclusive) %m,' .\n        \\ '%f:%l:%c: %tnconclusive %.%#: %m,' .\n        \\ '%-G%.%#'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'preprocess': 'cppcheck',\n        \\ 'returns': [0] })\n\n    for e in loclist\n        if e['type'] =~? '\\m^[SPI]'\n            let e['type'] = 'w'\n            let e['subtype'] = 'Style'\n        endif\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'c',\n    \\ 'name': 'cppcheck'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/c/cppclean.vim",
    "content": "\"============================================================================\n\"File:        cppclean.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_c_cppclean_checker')\n    finish\nendif\nlet g:loaded_syntastic_c_cppclean_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_c_cppclean_GetLocList() dict\n    let makeprg = self.makeprgBuild({})\n\n    let errorformat = '%f:%l: %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'subtype': 'Style',\n        \\ 'returns': [0, 1] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'c',\n    \\ 'name': 'cppclean' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/c/flawfinder.vim",
    "content": "\"============================================================================\n\"File:        flawfinder.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_c_flawfinder_checker')\n    finish\nendif\nlet g:loaded_syntastic_c_flawfinder_checker = 1\n\nif !exists('g:syntastic_c_flawfinder_sort')\n    let g:syntastic_c_flawfinder_sort = 1\nendif\n\nif !exists('g:syntastic_c_flawfinder_thres')\n    let g:syntastic_c_flawfinder_thres = 3\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_c_flawfinder_GetHighlightRegex(item)\n    let term = matchstr(a:item['text'], '\\m^(\\S\\+)\\s\\+\\zs\\S\\+\\ze:')\n    return term !=# '' ? '\\V\\<' . escape(term, '\\') . '\\>' : ''\nendfunction\n\nfunction! SyntaxCheckers_c_flawfinder_GetLocList() dict\n    let makeprg = self.makeprgBuild({\n        \\ 'args_after': '--columns --dataonly --singleline --quiet' })\n\n    let errorformat = '%f:%l:%c:  [%n] %m'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'subtype': 'Style',\n        \\ 'returns': [0] })\n\n    for e in loclist\n        let e['type'] = e['nr'] < g:syntastic_{self.getFiletype()}_flawfinder_thres ? 'W' : 'E'\n        let e['nr'] = 0\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'c',\n    \\ 'name': 'flawfinder' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/c/gcc.vim",
    "content": "\"============================================================================\n\"File:        c.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Gregor Uhlenheuer <kongo2002 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_c_gcc_checker')\n    finish\nendif\nlet g:loaded_syntastic_c_gcc_checker = 1\n\nif !exists('g:syntastic_c_compiler_options')\n    let g:syntastic_c_compiler_options = '-std=gnu99'\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_c_gcc_IsAvailable() dict\n    if !exists('g:syntastic_c_compiler')\n        let g:syntastic_c_compiler = executable(self.getExec()) ? self.getExec() : 'clang'\n    endif\n    call self.log('g:syntastic_c_compiler =', g:syntastic_c_compiler)\n    return executable(expand(g:syntastic_c_compiler, 1))\nendfunction\n\nfunction! SyntaxCheckers_c_gcc_GetLocList() dict\n    return syntastic#c#GetLocList('c', 'gcc', {\n        \\ 'errorformat':\n        \\     '%-G%f:%s:,' .\n        \\     '%-G%f:%l: %#error: %#(Each undeclared identifier is reported only%.%#,' .\n        \\     '%-G%f:%l: %#error: %#for each function it appears%.%#,' .\n        \\     '%-GIn file included%.%#,' .\n        \\     '%-G %#from %f:%l\\,,' .\n        \\     '%f:%l:%c: %trror: %m,' .\n        \\     '%f:%l:%c: %tarning: %m,' .\n        \\     '%f:%l:%c: %m,' .\n        \\     '%f:%l: %trror: %m,' .\n        \\     '%f:%l: %tarning: %m,'.\n        \\     '%f:%l: %m',\n        \\ 'main_flags': '-x c -fsyntax-only',\n        \\ 'header_flags': '-x c',\n        \\ 'header_names': '\\m\\.h$' })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'c',\n    \\ 'name': 'gcc' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/c/make.vim",
    "content": "\"============================================================================\n\"File:        make.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Gregor Uhlenheuer <kongo2002 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_c_make_checker')\n    finish\nendif\nlet g:loaded_syntastic_c_make_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_c_make_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args': '-sk', 'fname': '' })\n\n    let errorformat =\n        \\ '%-G%f:%s:,' .\n        \\ '%-G%f:%l: %#error: %#(Each undeclared identifier is reported only%.%#,' .\n        \\ '%-G%f:%l: %#error: %#for each function it appears%.%#,' .\n        \\ '%-GIn file included%.%#,' .\n        \\ '%-G %#from %f:%l\\,,' .\n        \\ '%f:%l:%c: %trror: %m,' .\n        \\ '%f:%l:%c: %tarning: %m,' .\n        \\ '%f:%l:%c: %m,' .\n        \\ '%f:%l: %trror: %m,' .\n        \\ '%f:%l: %tarning: %m,'.\n        \\ '%f:%l: %m'\n\n    if exists('g:syntastic_c_errorformat')\n        let errorformat = g:syntastic_c_errorformat\n    endif\n\n    \" process makeprg\n    let errors = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\n\n    \" filter the processed errors if desired\n    if exists('g:syntastic_c_remove_include_errors') && g:syntastic_c_remove_include_errors != 0\n        return filter(errors, 'has_key(v:val, \"bufnr\") && v:val[\"bufnr\"] == ' . bufnr(''))\n    else\n        return errors\n    endif\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'c',\n    \\ 'name': 'make'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/c/oclint.vim",
    "content": "\"============================================================================\n\"File:        oclint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  \"UnCO\" Lin <undercooled aT lavabit com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_c_oclint_checker')\n    finish\nendif\nlet g:loaded_syntastic_c_oclint_checker = 1\n\nif !exists('g:syntastic_c_oclint_sort')\n    let g:syntastic_c_oclint_sort = 1\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_c_oclint_GetLocList() dict\n    let buf = bufnr('')\n\n    let makeprg = self.makeprgBuild({\n        \\ 'post_args': '-- -c ' . syntastic#c#ReadConfig(syntastic#util#bufVar(buf, 'oclint_config_file'))})\n\n    let errorformat =\n        \\ '%E%f:%l:%c: fatal error: %m,' .\n        \\ '%E%f:%l:%c: error: %m,' .\n        \\ '%W%f:%l:%c: warning: %m,' .\n        \\ '%E%f:%l:%c: %m,' .\n        \\ '%-G%.%#'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'subtype': 'Style',\n        \\ 'postprocess': ['compressWhitespace'],\n        \\ 'returns': [0, 3, 5] })\n\n    for e in loclist\n        if e['text'] =~# '\\v P3( |$)'\n            let e['type'] = 'W'\n        endif\n\n        let e['text'] = substitute(e['text'], '\\m\\C P[1-3]$', '', '')\n        let e['text'] = substitute(e['text'], '\\m\\C P[1-3] ', ': ', '')\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'c',\n    \\ 'name': 'oclint'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/c/pc_lint.vim",
    "content": "\"============================================================================\n\"File:        pc_lint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Steve Bragg <steve at empresseffects dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_c_pc_lint_checker')\n    finish\nendif\nlet g:loaded_syntastic_c_pc_lint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_c_pc_lint_GetLocList() dict\n    let buf = bufnr('')\n    let config = syntastic#util#findFileInParent(syntastic#util#bufVar(buf, 'pc_lint_config_file'), fnamemodify(bufname(buf), ':p:h'))\n    call self.log('config =', config)\n\n    \" -hFs1         - show filename, add space after messages, try to make message 1 line\n    \" -width(0,0)   - make sure there are no line breaks\n    \" -t            - set tab size\n    \" -v            - turn off verbosity\n    let makeprg = self.makeprgBuild({\n        \\ 'args': (filereadable(config) ? syntastic#util#shescape(fnamemodify(config, ':p')) : ''),\n        \\ 'args_after': ['-hFs1', '-width(0,0)', '-t' . &tabstop, '-format=%f:%l:%C:%t:%n:%m'] })\n\n    let errorformat =\n        \\ '%E%f:%l:%v:Error:%n:%m,' .\n        \\ '%W%f:%l:%v:Warning:%n:%m,' .\n        \\ '%I%f:%l:%v:Info:%n:%m,' .\n        \\ '%-G%.%#'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'postprocess': ['cygwinRemoveCR'] })\n\n    for e in loclist\n        if e['type'] ==? 'I'\n            let e['type'] = 'W'\n            let e['subtype'] = 'Style'\n        endif\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'c',\n    \\ 'name': 'pc_lint',\n    \\ 'exec': 'lint-nt'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/c/sparse.vim",
    "content": "\"============================================================================\n\"File:        sparse.vim\n\"Description: Syntax checking plugin for syntastic using sparse.pl\n\"Maintainer:  Daniel Walker <dwalker at fifo99 dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_c_sparse_checker')\n    finish\nendif\nlet g:loaded_syntastic_c_sparse_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_c_sparse_GetLocList() dict\n    let buf = bufnr('')\n\n    let makeprg = self.makeprgBuild({\n        \\ 'args': syntastic#c#ReadConfig(syntastic#util#bufVar(buf, 'sparse_config_file')),\n        \\ 'args_after': '-ftabstop=' . &ts })\n\n    let errorformat =\n        \\ '%f:%l:%v: %trror: %m,' .\n        \\ '%f:%l:%v: %tarning: %m,'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'defaults': {'bufnr': bufnr('')},\n        \\ 'returns': [0, 1] })\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'c',\n    \\ 'name': 'sparse'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/c/splint.vim",
    "content": "\"============================================================================\n\"File:        splint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_c_splint_checker')\n    finish\nendif\nlet g:loaded_syntastic_c_splint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_c_splint_GetLocList() dict\n    let buf = bufnr('')\n\n    let makeprg = self.makeprgBuild({\n        \\ 'args': syntastic#c#ReadConfig(syntastic#util#bufVar(buf, 'splint_config_file')),\n        \\ 'args_after': '-showfunc -hints +quiet' })\n\n    let errorformat =\n        \\ '%-G%f:%l:%v: %[%#]%[%#]%[%#] Internal Bug %.%#,' .\n        \\ '%-G%f(%l\\,%v): %[%#]%[%#]%[%#] Internal Bug %.%#,' .\n        \\ '%W%f:%l:%v: %m,' .\n        \\ '%W%f(%l\\,%v): %m,' .\n        \\ '%W%f:%l: %m,' .\n        \\ '%W%f(%l): %m,' .\n        \\ '%-C %\\+In file included from %.%#,' .\n        \\ '%-C %\\+from %.%#,' .\n        \\ '%+C %.%#'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'subtype': 'Style',\n        \\ 'postprocess': ['compressWhitespace'],\n        \\ 'defaults': {'type': 'W'} })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'c',\n    \\ 'name': 'splint'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/cabal/cabal.vim",
    "content": "\"============================================================================\n\"File:        cabal.vim\n\"Description: Haskell package description (.cabal file) linting and syntax\n\"             validation via 'cabal check'\n\"Maintainer: Ian D. Bollinger <ian.bollinger@gmail.com>\n\"License:    This program is free software. It comes without any warranty,\n\"            to the extent permitted by applicable law. You can redistribute\n\"            it and/or modify it under the terms of the Do What The Fuck You\n\"            Want To Public License, Version 2, as published by Sam Hocevar.\n\"            See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_cabal_cabal_checker')\n    finish\nendif\nlet g:loaded_syntastic_cabal_cabal_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_cabal_cabal_GetHighlightRegex(item)\n    let field = matchstr(a:item['text'], \"\\\\vParse of field '\\\\zs[^']+\")\n    if field !=# ''\n        return '\\v\\c^\\s*' . field . '\\s*:\\s*\\zs.*$'\n    endif\n    let field = matchstr(a:item['text'], \"\\\\v(^|\\\\s)'\\\\zs[^']+\\\\ze'\")\n    if field !=# ''\n        return '\\V\\c\\<' . escape(field, '\\') . '\\>'\n    endif\n    return ''\nendfunction\n\nfunction! SyntaxCheckers_cabal_cabal_GetLocList() dict\n    let buf = bufnr('')\n    let makeprg = self.getExecEscaped() . ' check'\n\n    let errorformat =\n        \\ '%Ecabal: %f:%l: %m,' .\n        \\ '%W* %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'cwd': fnamemodify(bufname(buf), ':p:h'),\n        \\ 'preprocess': 'cabal',\n        \\ 'defaults': {'bufnr': buf} })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'cabal',\n    \\ 'name': 'cabal'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/chef/foodcritic.vim",
    "content": "\"============================================================================\n\"File:        foodcritic.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Doug Ireton <dougireton@gmail.com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_chef_foodcritic_checker')\n    finish\nendif\nlet g:loaded_syntastic_chef_foodcritic_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_chef_foodcritic_GetLocList() dict\n    let makeprg = self.makeprgBuild({})\n\n    \" FC023: Prefer conditional attributes: ./recipes/config.rb:49\n    let errorformat = 'FC%n: %m: %f:%l'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'chef',\n    \\ 'name': 'foodcritic'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/cmake/cmakelint.vim",
    "content": "\"============================================================================\n\"File:        cmakelint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_cmake_cmakelint_checker')\n    finish\nendif\nlet g:loaded_syntastic_cmake_cmakelint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_cmake_cmakelint_GetLocList() dict\n    let makeprg = self.makeprgBuild({})\n\n    let errorformat = '%f:%l: %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'subtype': 'Style',\n        \\ 'returns': [0, 1] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'cmake',\n    \\ 'name': 'cmakelint' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/co/coco.vim",
    "content": "\"============================================================================\n\"File:        co.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Andrew Kelley <superjoe30@gmail.com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_co_coco_checker')\n    finish\nendif\nlet g:loaded_syntastic_co_coco_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_co_coco_GetLocList() dict\n    let tmpdir = syntastic#util#tmpdir()\n    let makeprg = self.makeprgBuild({ 'args_after': '-c -o ' . tmpdir })\n\n    let errorformat =\n        \\ '%EFailed at: %f,' .\n        \\ '%ZSyntax%trror: %m on line %l,'.\n        \\ '%EFailed at: %f,'.\n        \\ '%Z%trror: Parse error on line %l: %m'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\n\n    call syntastic#util#rmrf(tmpdir)\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'co',\n    \\ 'name': 'coco'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/cobol/cobc.vim",
    "content": "\"============================================================================\n\"File:        cobc.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\n\nif exists('g:loaded_syntastic_cobol_cobc_checker')\n    finish\nendif\nlet g:loaded_syntastic_cobol_cobc_checker = 1\n\nif !exists('g:syntastic_cobol_compiler_options')\n    let g:syntastic_cobol_compiler_options = ''\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_cobol_cobc_IsAvailable() dict\n    if !exists('g:syntastic_cobol_compiler')\n        let g:syntastic_cobol_compiler = self.getExec()\n    endif\n    call self.log('g:syntastic_cobol_compiler =', g:syntastic_cobol_compiler)\n    return executable(expand(g:syntastic_cobol_compiler, 1))\nendfunction\n\nfunction! SyntaxCheckers_cobol_cobc_GetLocList() dict\n    return syntastic#c#GetLocList('cobol', 'cobc', {\n        \\ 'errorformat': '%f:%\\s%#%l: %trror: %m',\n        \\ 'main_flags': '-fsyntax-only' })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'cobol',\n    \\ 'name': 'cobc' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/coffee/coffee.vim",
    "content": "\"============================================================================\n\"File:        coffee.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Lincoln Stoll <l@lds.li>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\"\n\" Note: this script requires CoffeeScript version 1.6.2 or newer.\n\"\n\nif exists('g:loaded_syntastic_coffee_coffee_checker')\n    finish\nendif\nlet g:loaded_syntastic_coffee_coffee_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_coffee_coffee_IsAvailable() dict\n    if !executable(self.getExec())\n        return 0\n    endif\n    let ver = self.getVersion(self.getExecEscaped() . ' --version 2>' . syntastic#util#DevNull())\n    return syntastic#util#versionIsAtLeast(ver, [1, 6, 2])\nendfunction\n\nfunction! SyntaxCheckers_coffee_coffee_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_after': '-cp' })\n\n    let errorformat =\n        \\ '%E%f:%l:%c: %trror: %m,' .\n        \\ 'Syntax%trror: In %f\\, %m on line %l,' .\n        \\ '%EError: In %f\\, Parse error on line %l: %m,' .\n        \\ '%EError: In %f\\, %m on line %l,' .\n        \\ '%W%f(%l): lint warning: %m,' .\n        \\ '%W%f(%l): warning: %m,' .\n        \\ '%E%f(%l): SyntaxError: %m,' .\n        \\ '%-Z%p^,' .\n        \\ '%-G%.%#'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'coffee',\n    \\ 'name': 'coffee'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/coffee/coffee_jshint.vim",
    "content": "\"============================================================================\n\"File:        coffee_jshint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  John Krauss <john@johnkrauss.com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_coffee_coffee_jshint_checker')\n    finish\nendif\nlet g:loaded_syntastic_coffee_coffee_jshint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_coffee_coffee_jshint_GetLocList() dict\n    let makeprg = self.makeprgBuild({})\n\n    let errorformat =\n        \\ '%Q-%\\{32\\,},' .\n        \\ '%E%l:%c: %m,' .\n        \\ '%P%f'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'returns': [0, 1] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'coffee',\n    \\ 'exec': 'coffee-jshint',\n    \\ 'name': 'coffee_jshint' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n\n"
  },
  {
    "path": "syntax_checkers/coffee/coffeelint.vim",
    "content": "\"============================================================================\n\"File:        coffeelint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Lincoln Stoll <l@lds.li>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_coffee_coffeelint_checker')\n    finish\nendif\nlet g:loaded_syntastic_coffee_coffeelint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_coffee_coffeelint_GetLocList() dict\n    if !exists('s:coffeelint_new')\n        let s:coffeelint_new = syntastic#util#versionIsAtLeast(self.getVersion(), [1, 4])\n    endif\n    let makeprg = self.makeprgBuild({ 'args_after': (s:coffeelint_new ? '--reporter csv' : '--csv') })\n\n    let errorformat = '%f:%l:%t:%m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'subtype': 'Style',\n        \\ 'returns': [0, 1],\n        \\ 'preprocess': 'coffeelint' })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'coffee',\n    \\ 'name': 'coffeelint'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/coq/coqtop.vim",
    "content": "\"============================================================================\n\"File:        coqtop.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Matvey Aksenov <matvey.aksenov at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_coq_coqtop_checker')\n    finish\nendif\nlet g:loaded_syntastic_coq_coqtop_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_coq_coqtop_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_after': '-noglob -batch -load-vernac-source' })\n\n    let errorformat =\n        \\ '%AFile \"%f\"\\, line %l\\, characters %c-%.%#\\:,'.\n        \\ '%C%m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'coq',\n    \\ 'name': 'coqtop'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/cpp/avrgcc.vim",
    "content": "\"============================================================================\n\"File:        avrgcc.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Sławek Piotrowski <sentinel at atteo dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_cpp_avrgcc_checker')\n    finish\nendif\nlet g:loaded_syntastic_cpp_avrgcc_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'cpp',\n    \\ 'name': 'avrgcc',\n    \\ 'exec': 'avr-g++',\n    \\ 'redirect': 'c/avrgcc'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/cpp/clang_check.vim",
    "content": "\"============================================================================\n\"File:        clang_check.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Benjamin Bannier <bbannier at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_cpp_clang_check_checker')\n    finish\nendif\nlet g:loaded_syntastic_cpp_clang_check_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'cpp',\n    \\ 'name': 'clang_check',\n    \\ 'redirect': 'c/clang_check'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/cpp/clang_tidy.vim",
    "content": "\"============================================================================\n\"File:        clang_tidy.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Benjamin Bannier <bbannier at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_cpp_clang_tidy_checker')\n    finish\nendif\nlet g:loaded_syntastic_cpp_clang_tidy_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'cpp',\n    \\ 'name': 'clang_tidy',\n    \\ 'redirect': 'c/clang_tidy'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/cpp/cppcheck.vim",
    "content": "\"============================================================================\n\"File:        cppcheck.vim\n\"Description: Syntax checking plugin for syntastic using cppcheck.pl\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_cpp_cppcheck_checker')\n    finish\nendif\nlet g:loaded_syntastic_cpp_cppcheck_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'cpp',\n    \\ 'name': 'cppcheck',\n    \\ 'redirect': 'c/cppcheck'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/cpp/cppclean.vim",
    "content": "\"============================================================================\n\"File:        cppclean.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Benjamin Bannier <bbannier at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_cpp_cppclean_checker')\n    finish\nendif\nlet g:loaded_syntastic_cpp_cppclean_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'cpp',\n    \\ 'name': 'cppclean',\n    \\ 'redirect': 'c/cppclean'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/cpp/cpplint.vim",
    "content": "\"============================================================================\n\"File:        cpplint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_cpp_cpplint_checker')\n    finish\nendif\nlet g:loaded_syntastic_cpp_cpplint_checker = 1\n\nif !exists('g:syntastic_cpp_cpplint_thres')\n    let g:syntastic_cpp_cpplint_thres = 5\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_cpp_cpplint_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args': '--verbose=3' })\n\n    let errorformat = '%A%f:%l:  %m [%t],%-G%.%#'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'subtype': 'Style',\n        \\ 'returns': [0, 1] })\n\n    \" change error types according to the prescribed threshold\n    for e in loclist\n        let e['type'] = e['type'] < g:syntastic_cpp_cpplint_thres ? 'W' : 'E'\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'cpp',\n    \\ 'name': 'cpplint',\n    \\ 'exec': 'cpplint.py'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/cpp/flawfinder.vim",
    "content": "\"============================================================================\n\"File:        flawfinder.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Benjamin Bannier <bbannier at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_cpp_flawfinder_checker')\n    finish\nendif\nlet g:loaded_syntastic_cpp_flawfinder_checker = 1\n\nif !exists('g:syntastic_cpp_flawfinder_thres')\n    let g:syntastic_cpp_flawfinder_thres = 3\nendif\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'cpp',\n    \\ 'name': 'flawfinder',\n    \\ 'redirect': 'c/flawfinder'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/cpp/gcc.vim",
    "content": "\"============================================================================\n\"File:        cpp.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Gregor Uhlenheuer <kongo2002 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_cpp_gcc_checker')\n    finish\nendif\nlet g:loaded_syntastic_cpp_gcc_checker = 1\n\nif !exists('g:syntastic_cpp_compiler_options')\n    let g:syntastic_cpp_compiler_options = ''\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_cpp_gcc_IsAvailable() dict\n    if !exists('g:syntastic_cpp_compiler')\n        let g:syntastic_cpp_compiler = executable(self.getExec()) ? self.getExec() : 'clang++'\n    endif\n    call self.log('g:syntastic_cpp_compiler =', g:syntastic_cpp_compiler)\n    return executable(expand(g:syntastic_cpp_compiler, 1))\nendfunction\n\nfunction! SyntaxCheckers_cpp_gcc_GetLocList() dict\n    return syntastic#c#GetLocList('cpp', 'gcc', {\n        \\ 'errorformat':\n        \\     '%-G%f:%s:,' .\n        \\     '%f:%l:%c: %trror: %m,' .\n        \\     '%f:%l:%c: %tarning: %m,' .\n        \\     '%f:%l:%c: %m,'.\n        \\     '%f:%l: %trror: %m,'.\n        \\     '%f:%l: %tarning: %m,'.\n        \\     '%f:%l: %m',\n        \\ 'main_flags': '-x c++ -fsyntax-only',\n        \\ 'header_flags': '-x c++',\n        \\ 'header_names': '\\m\\.\\(h\\|hpp\\|hh\\)$' })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'cpp',\n    \\ 'name': 'gcc',\n    \\ 'exec': 'g++' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/cpp/oclint.vim",
    "content": "\"============================================================================\n\"File:        oclint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  \"UnCO\" Lin <undercooled aT lavabit com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_cpp_oclint_checker')\n    finish\nendif\nlet g:loaded_syntastic_cpp_oclint_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'cpp',\n    \\ 'name': 'oclint',\n    \\ 'redirect': 'c/oclint'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/cpp/pc_lint.vim",
    "content": "\"============================================================================\n\"File:        pc_lint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Steve Bragg <steve at empresseffects dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_cpp_pc_lint_checker')\n    finish\nendif\nlet g:loaded_syntastic_cpp_pc_lint_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'cpp',\n    \\ 'name': 'pc_lint',\n    \\ 'redirect': 'c/pc_lint'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/cpp/verapp.vim",
    "content": "\"============================================================================\n\"File:        verapp.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Lucas Verney <phyks@phyks.me>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\" Tested with Vera++ 1.3.0\n\"============================================================================\n\nif exists('g:loaded_syntastic_cpp_verapp_checker')\n    finish\nendif\nlet g:loaded_syntastic_cpp_verapp_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_cpp_verapp_GetLocList() dict\n    let buf = bufnr('')\n\n    let makeprg = self.makeprgBuild({\n        \\ 'args': syntastic#c#ReadConfig(syntastic#util#bufVar(buf, 'verapp_config_file')),\n        \\ 'args_after': '--show-rule --no-duplicate -S -c -' })\n\n    let errorformat = '%f:%t:%l:%c:%m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'preprocess': 'checkstyle',\n        \\ 'subtype': 'Style' })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'cpp',\n    \\ 'name': 'verapp',\n    \\ 'exec': 'vera++'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/cs/mcs.vim",
    "content": "\"============================================================================\n\"File:        cs.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Daniel Walker <dwalker@fifo99.com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_cs_mcs_checker')\n    finish\nendif\nlet g:loaded_syntastic_cs_mcs_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_cs_mcs_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_after': '--parse' })\n\n    let errorformat = '%f(%l\\,%c): %trror %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'defaults': {'bufnr': bufnr('')} })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'cs',\n    \\ 'name': 'mcs'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/css/csslint.vim",
    "content": "\"============================================================================\n\"File:        css.vim\n\"Description: Syntax checking plugin for syntastic using `csslint` CLI tool (http://csslint.net).\n\"Maintainer:  Ory Band <oryband at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_css_csslint_checker')\n    finish\nendif\nlet g:loaded_syntastic_css_csslint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_css_csslint_GetLocList() dict\n    call syntastic#log#deprecationWarn('csslint_options', 'css_csslint_args')\n\n    let makeprg = self.makeprgBuild({ 'args_after': '--format=compact' })\n\n    \" Print CSS Lint's error/warning messages from compact format. Ignores blank lines.\n    let errorformat =\n        \\ '%-G,' .\n        \\ '%-G%f: lint free!,' .\n        \\ '%f: line %l\\, col %c\\, %trror - %m,' .\n        \\ '%f: line %l\\, col %c\\, %tarning - %m,'.\n        \\ '%f: line %l\\, col %c\\, %m,'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'postprocess': ['guards'],\n        \\ 'defaults': {'bufnr': bufnr('')} })\n\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'css',\n    \\ 'name': 'csslint'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/css/mixedindentlint.vim",
    "content": "\"============================================================================\n\"File:        mixedindentlint.vim\n\"Description: Mixed indentation linter for vim\n\"Maintainer:  Payton Swick <payton@foolord.com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_css_mixedindentlint_checker')\n    finish\nendif\nlet g:loaded_syntastic_css_mixedindentlint_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'css',\n    \\ 'name': 'mixedindentlint',\n    \\ 'redirect': 'javascript/mixedindentlint'})\n\n\" vim: set et sts=4 sw=4:\n"
  },
  {
    "path": "syntax_checkers/css/phpcs.vim",
    "content": "\"============================================================================\n\"File:        phpcs.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_css_phpcs_checker')\n    finish\nendif\nlet g:loaded_syntastic_css_phpcs_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'css',\n    \\ 'name': 'phpcs',\n    \\ 'redirect': 'php/phpcs'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/css/prettycss.vim",
    "content": "\"============================================================================\n\"File:        prettycss.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_css_prettycss_checker')\n    finish\nendif\nlet g:loaded_syntastic_css_prettycss_checker = 1\n\nif !exists('g:syntastic_css_prettycss_sort')\n    let g:syntastic_css_prettycss_sort = 1\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_css_prettycss_GetHighlightRegex(item)\n    let term = matchstr(a:item['text'], '\\m (\\zs[^)]\\+\\ze)$')\n    if term !=# ''\n        let term = '\\V' . escape(term, '\\')\n    endif\n    return term\nendfunction\n\nfunction! SyntaxCheckers_css_prettycss_GetLocList() dict\n    let makeprg = self.makeprgBuild({})\n\n    \" Print CSS Lint's error/warning messages from compact format. Ignores blank lines.\n    let errorformat =\n        \\ '%EError:  %m\\, line %l\\, char %c),' .\n        \\ '%WWarning:  %m\\, line %l\\, char %c),' .\n        \\ '%-G%.%#'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'defaults': {'bufnr': bufnr('')} })\n\n    for e in loclist\n        let e['text'] .= ')'\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'css',\n    \\ 'name': 'prettycss'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/css/recess.vim",
    "content": "\"============================================================================\n\"File:        recess.vim\n\"Description: Syntax checking plugin for syntastic using `recess`\n\"             (http://twitter.github.io/recess/).\n\"Maintainer:  Tim Carry <tim at pixelastic dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_css_recess_checker')\n    finish\nendif\nlet g:loaded_syntastic_css_recess_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'css',\n    \\ 'name': 'recess',\n    \\ 'redirect': 'less/recess'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/css/stylelint.vim",
    "content": "\"============================================================================\n\"File:        stylelint.vim\n\"Description: Syntax checking plugin for syntastic using `stylelint`\n\"             (https://github.com/stylelint/stylelint).\n\"Maintainer:  Tim Carry <tim at pixelastic dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_css_stylelint_checker')\n    finish\nendif\nlet g:loaded_syntastic_css_stylelint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nlet s:args_after = {\n    \\ 'css':  '-f json',\n    \\ 'html': '-f json',\n    \\ 'vue':  '-f json' }\n\nfunction! SyntaxCheckers_css_stylelint_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_after': get(s:args_after, self.getFiletype(), '') })\n\n    let errorformat = '%t:%f:%l:%c:%m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'subtype': 'Style',\n        \\ 'preprocess': 'stylelint',\n        \\ 'returns': [0, 1, 2] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'css',\n    \\ 'name': 'stylelint'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n\n"
  },
  {
    "path": "syntax_checkers/cucumber/cucumber.vim",
    "content": "\"============================================================================\n\"File:        cucumber.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Martin Grenfell <martin.grenfell at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_cucumber_cucumber_checker')\n    finish\nendif\nlet g:loaded_syntastic_cucumber_cucumber_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_cucumber_cucumber_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_after': '--dry-run --quiet --strict --format pretty' })\n\n    let errorformat =\n        \\ '%f:%l:%c:%m,' .\n        \\ '%W      %.%# (%m),' .\n        \\ '%-Z%f:%l:%.%#,'.\n        \\ '%-G%.%#'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'cucumber',\n    \\ 'name': 'cucumber'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/cuda/nvcc.vim",
    "content": "\"============================================================================\n\"File:        cuda.vim\n\"Description: Syntax checking plugin for syntastic\n\"Author:      Hannes Schulz <schulz at ais dot uni-bonn dot de>\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_cuda_nvcc_checker')\n    finish\nendif\nlet g:loaded_syntastic_cuda_nvcc_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_cuda_nvcc_GetLocList() dict\n    let buf = bufnr('')\n    let arch_flag = syntastic#util#bufVar(buf, 'cuda_arch')\n    if arch_flag !=# ''\n        let arch_flag = '-arch=' . arch_flag\n        call syntastic#log#oneTimeWarn('variable g:syntastic_cuda_arch is deprecated, ' .\n            \\ 'please add ' . string(arch_flag) . ' to g:syntastic_cuda_nvcc_args instead')\n    endif\n\n    let build_opts = {}\n    let dummy = ''\n    if index(['h', 'hpp', 'cuh'], fnamemodify(bufname(buf), ':e'), 0, 1) >= 0\n        if syntastic#util#bufVar(buf, 'cuda_check_header', 0)\n            let dummy = fnamemodify(bufname(buf), ':p:h') . syntastic#util#Slash() . '.syntastic_dummy.cu'\n            let build_opts = {\n                \\ 'exe_before': 'echo > ' . syntastic#util#shescape(dummy) . ' ;',\n                \\ 'fname_before': '.syntastic_dummy.cu -include' }\n        else\n            return []\n        endif\n    endif\n\n    call extend(build_opts, {\n        \\ 'args_before': arch_flag . ' --cuda -O0 -I .',\n        \\ 'args': syntastic#c#ReadConfig(syntastic#util#bufVar(buf, 'cuda_config_file')),\n        \\ 'args_after': '-Xcompiler -fsyntax-only',\n        \\ 'tail_after': syntastic#c#NullOutput() })\n\n    let makeprg = self.makeprgBuild(build_opts)\n\n    let errorformat =\n        \\ '%*[^\"]\"%f\"%*\\D%l: %m,'.\n        \\ '\"%f\"%*\\D%l: %m,'.\n        \\ '%-G%f:%l: (Each undeclared identifier is reported only once,'.\n        \\ '%-G%f:%l: for each function it appears in.),'.\n        \\ '%f:%l:%c:%m,'.\n        \\ '%f(%l):%m,'.\n        \\ '%f:%l:%m,'.\n        \\ '\"%f\"\\, line %l%*\\D%c%*[^ ] %m,'.\n        \\ '%D%*\\a[%*\\d]: Entering directory `%f'','.\n        \\ '%X%*\\a[%*\\d]: Leaving directory `%f'','.\n        \\ '%D%*\\a: Entering directory `%f'','.\n        \\ '%X%*\\a: Leaving directory `%f'','.\n        \\ '%DMaking %*\\a in %f,'.\n        \\ '%f|%l| %m'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'defaults': {'type': 'E'} })\n\n    for e in loclist\n        let pat = matchstr(e['text'], '\\m\\c^\\s*warning:\\s*\\zs.*')\n        if pat !=# ''\n            let e['text'] = pat\n            let e['type'] = 'W'\n        endif\n    endfor\n\n    if dummy !=# ''\n        call delete(dummy)\n    endif\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'cuda',\n    \\ 'name': 'nvcc'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/d/dmd.vim",
    "content": "\"============================================================================\n\"File:        d.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Alfredo Di Napoli <alfredo dot dinapoli at gmail dot com>\n\"License:     Based on the original work of Gregor Uhlenheuer and his\n\"             cpp.vim checker so credits are dued.\n\"             THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n\"             EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n\"             OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n\"             NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n\"             HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n\"             WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n\"             FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n\"             OTHER DEALINGS IN THE SOFTWARE.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_d_dmd_checker')\n    finish\nendif\nlet g:loaded_syntastic_d_dmd_checker = 1\n\nif !exists('g:syntastic_d_compiler_options')\n    let g:syntastic_d_compiler_options = ''\nendif\n\nif !exists('g:syntastic_d_use_dub')\n    let g:syntastic_d_use_dub = 1\nendif\n\nif !exists('g:syntastic_d_dub_exec')\n    let g:syntastic_d_dub_exec = 'dub'\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_d_dmd_IsAvailable() dict \" {{{1\n    if !exists('g:syntastic_d_compiler')\n        let g:syntastic_d_compiler = self.getExec()\n    endif\n    call self.log('g:syntastic_d_compiler =', g:syntastic_d_compiler)\n    return executable(expand(g:syntastic_d_compiler, 1))\nendfunction \" }}}1\n\nfunction! SyntaxCheckers_d_dmd_GetLocList() dict \" {{{1\n    let buf = bufnr('')\n    if !exists('g:syntastic_d_include_dirs')\n        let g:syntastic_d_include_dirs = s:GetIncludes(self, fnamemodify(bufname(buf), ':p:h'))\n    endif\n\n    return syntastic#c#GetLocList('d', 'dmd', {\n        \\ 'errorformat':\n        \\     '%-G%f:%s:,%f(%l): %m,' .\n        \\     '%f:%l: %m',\n        \\ 'main_flags': '-c -of' . syntastic#util#DevNull(),\n        \\ 'header_names': '\\m\\.di$' })\nendfunction \" }}}1\n\n\" Utilities {{{1\n\nfunction! s:GetIncludes(checker, base) \" {{{2\n    let includes = []\n\n    if g:syntastic_d_use_dub && !exists('s:dub_ok')\n        let s:dub_ok = s:ValidateDub(a:checker)\n    endif\n\n    if g:syntastic_d_use_dub && s:dub_ok\n        let where = escape(a:base, ' ') . ';'\n\n        let old_suffixesadd = &suffixesadd\n        let dirs = syntastic#util#unique(map(filter(\n            \\   findfile('dub.json', where, -1) +\n            \\   findfile('dub.sdl', where, -1) +\n            \\   findfile('package.json', where, -1),\n            \\ 'filereadable(v:val)'), 'fnamemodify(v:val, \":h\")'))\n        let &suffixesadd = old_suffixesadd\n        call a:checker.log('using dub: looking for includes in', dirs)\n\n        for dir in dirs\n            try\n                execute 'silent lcd ' . fnameescape(dir)\n                let paths = split(syntastic#util#system(syntastic#util#shescape(g:syntastic_d_dub_exec) . ' describe --import-paths'), \"\\n\")\n                silent lcd -\n                if v:shell_error == 0\n                    call extend(includes, paths)\n                    call a:checker.log('using dub: found includes', paths)\n                endif\n            catch /\\m^Vim\\%((\\a\\+)\\)\\=:E472/\n                \" evil directory is evil\n            endtry\n        endfor\n    endif\n\n    if empty(includes)\n        let includes = filter(glob($HOME . '/.dub/packages/*', 1, 1), 'isdirectory(v:val)')\n        call map(includes, 'isdirectory(v:val . \"/source\") ? v:val . \"/source\" : v:val')\n        call add(includes, './source')\n    endif\n\n    return syntastic#util#unique(includes)\nendfunction \" }}}2\n\nfunction! s:ValidateDub(checker) \" {{{2\n    let ok = 0\n\n    if executable(g:syntastic_d_dub_exec)\n        let command = syntastic#util#shescape(g:syntastic_d_dub_exec) . ' --version'\n        let version_output = syntastic#util#system(command)\n        call a:checker.log('getVersion: ' . string(command) . ': ' .\n            \\ string(split(version_output, \"\\n\", 1)) .\n            \\ (v:shell_error ? ' (exit code ' . v:shell_error . ')' : '') )\n        let parsed_ver = syntastic#util#parseVersion(version_output)\n        call a:checker.log(g:syntastic_d_dub_exec . ' version =', parsed_ver)\n        if len(parsed_ver)\n            let ok =  syntastic#util#versionIsAtLeast(parsed_ver, [0, 9, 24])\n        endif\n    endif\n\n    return ok\nendfunction \" }}}2\n\n\" }}}1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'd',\n    \\ 'name': 'dmd' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/d/dscanner.vim",
    "content": "\"============================================================================\n\"File:        dscanner.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  ANtlord\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_d_dscanner_checker')\n    finish\nendif\nlet g:loaded_syntastic_d_dscanner_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_d_dscanner_GetHighlightRegex(i)\n    let term = matchstr(a:i['text'], '\\m^.\\{-}''\\zs\\S\\+\\ze''')\n    return term !=# '' ? '\\V\\<' . escape(term, '\\') . '\\>' : ''\nendfunction\n\nfunction! SyntaxCheckers_d_dscanner_GetLocList() dict\n    let makeprg = self.makeprgBuild({\n        \\ 'args_after': '--report',\n        \\ 'tail': '2>' . syntastic#util#DevNull() })\n\n    let errorformat = '%f:%l:%c:%m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'preprocess': 'dscanner',\n        \\ 'subtype': 'Style',\n        \\ 'returns': [0] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'd',\n    \\ 'name': 'dscanner' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/dart/dartanalyzer.vim",
    "content": "\"============================================================================\n\"File:        dartanalyzer.vim\n\"Description: Dart syntax checker - using dartanalyzer\n\"Maintainer:  Maksim Ryzhikov <rv.maksim at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_dart_dartanalyzer_checker')\n    finish\nendif\nlet g:loaded_syntastic_dart_dartanalyzer_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_dart_dartanalyzer_GetHighlightRegex(error)\n    if a:error['len']\n        let lcol = a:error['col'] - 1\n        let rcol = a:error['col'] + a:error['len']\n        let ret = '\\%>' . lcol . 'c\\%<' . rcol . 'c'\n    else\n        let ret = ''\n    endif\n\n    return ret\nendfunction\n\nfunction! SyntaxCheckers_dart_dartanalyzer_GetLocList() dict\n    if !exists('s:format_machine')\n        let s:format_machine = syntastic#util#versionIsAtLeast(self.getVersion(), [1, 23]) ? '--format=machine' : '--machine'\n    endif\n    let makeprg = self.makeprgBuild({ 'args_after': s:format_machine })\n\n    \" Machine readable format looks like:\n    \" SEVERITY|TYPE|ERROR_CODE|FILENAME|LINE_NUMBER|COLUMN|LENGTH|MESSAGE\n    \" SEVERITY: (WARNING|ERROR)\n    \" TYPE: (RESOLVER|STATIC_TYPE|...)\n    \" ERROR_CODE: (NO_SUCH_TYPE|...)\n    \" FILENAME: String\n    \" LINE_NUMBER: int\n    \" COLUMN: int\n    \" LENGTH: int\n    \" MESSAGE: String\n\n    \" We use %n to grab the error length, for the syntax highlighter\n    let commonformat = '|%.%#|%.%#|%f|%l|%c|%n|%m'\n\n    let errorformat =\n        \\ '%EERROR'   . commonformat . ',' .\n        \\ '%WWARNING' . commonformat\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'returns': [0, 1, 2, 3] })\n\n    for e in loclist\n        let e['text'] = substitute(e['text'], '\\m\\\\\\([\\\\|]\\)', '\\1', 'g')\n\n        \" Undo the %n hack\n        let e['len'] = e['nr']\n        call remove(e, 'nr')\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'dart',\n    \\ 'name': 'dartanalyzer' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/docbk/igor.vim",
    "content": "\"============================================================================\n\"File:        igor.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_docbk_igor_checker')\n    finish\nendif\nlet g:loaded_syntastic_docbk_igor_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_docbk_igor_GetLocList() dict\n    let makeprg = self.makeprgBuild({})\n\n    let errorformat = '%f:%l:%m'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'defaults': { 'type': 'W' },\n        \\ 'subtype': 'Style',\n        \\ 'returns': [0] })\n\n    let buf = bufnr('')\n    for e in loclist\n        \" XXX: igor strips directories from filenames\n        let e['bufnr'] = buf\n\n        let e['hl'] = '\\V' . escape( substitute(e['text'], '\\m[^:]*:', '', ''), '\\' )\n        let e['hl'] = substitute(e['hl'], '\\V[', '\\\\zs', 'g')\n        let e['hl'] = substitute(e['hl'], '\\V]', '\\\\ze', 'g')\n\n        \" let e['text'] = substitute(e['text'], '\\m:.*$', '', '')\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'docbk',\n    \\ 'name': 'igor'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/docbk/xmllint.vim",
    "content": "\"============================================================================\n\"File:        docbk.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Martin Grenfell <martin.grenfell at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_docbk_xmllint_checker')\n    finish\nendif\nlet g:loaded_syntastic_docbk_xmllint_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'docbk',\n    \\ 'name': 'xmllint',\n    \\ 'redirect': 'xml/xmllint'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/dockerfile/dockerfile_lint.vim",
    "content": "\"============================================================================\n\"File:        dockerfile_lint.vim\n\"Description: Syntax checking plugin for syntastic using dockerfile-lint\n\"             (https://github.com/projectatomic/dockerfile_lint).\n\"Maintainer:  Tim Carry <tim at pixelastic dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_dockerfile_dockerfile_lint_checker')\n    finish\nendif\nlet g:loaded_syntastic_dockerfile_dockerfile_lint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_dockerfile_dockerfile_lint_GetLocList() dict\n    let makeprg = self.makeprgBuild({\n        \\ 'args_after': '-j',\n        \\ 'fname_before': '-f' })\n\n    let errorformat = '%t:%n:%l:%m'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'preprocess': 'dockerfile_lint',\n        \\ 'defaults': {'bufnr': bufnr('')},\n        \\ 'returns': [0, 1] })\n\n    for e in loclist\n        if e['nr']\n            let e['subtype'] = 'Style'\n        endif\n        call remove(e, 'nr')\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'dockerfile',\n    \\ 'name': 'dockerfile_lint'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/dockerfile/hadolint.vim",
    "content": "\"============================================================================\n\"File:        hadolint.vim\n\"Description: Dockerfile linter written in Haskell\n\"             (http://hadolint.lukasmartinelli.ch/).\n\"Maintainer:  Jesper B. Rosenkilde <jbr at humppa dot dk>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_dockerfile_hadolint_checker')\n    finish\nendif\nlet g:loaded_syntastic_dockerfile_hadolint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_dockerfile_hadolint_GetLocList() dict\n    let makeprg = self.makeprgBuild({})\n\n    let errorformat = '%W%f:%l %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'subtype': 'Style',\n        \\ 'returns': [0, 1] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'dockerfile',\n    \\ 'name': 'hadolint'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/dustjs/swiffer.vim",
    "content": "\"============================================================================\n\"File:        swiffer.vim\n\"Description: Dust.js syntax checker - using swiffer\n\"Maintainer:  Steven Foote <smfoote at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_dustjs_swiffer_checker')\n    finish\nendif\n\nlet g:loaded_syntastic_dustjs_swiffer_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_dustjs_swiffer_GetLocList() dict\n    let makeprg = self.makeprgBuild({})\n\n    let errorformat = '%E%f - Line %l\\, Column %c: %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\n endfunction\n\ncall SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'dustjs',\n    \\ 'name': 'swiffer'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/elixir/elixir.vim",
    "content": "\"============================================================================\n\"File:        elixir.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Richard Ramsden <rramsden at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_elixir_elixir_checker')\n    finish\nendif\nlet g:loaded_syntastic_elixir_elixir_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\n\" TODO: we should probably split this into separate checkers\nfunction! SyntaxCheckers_elixir_elixir_IsAvailable() dict\n    call self.log(\n        \\ 'executable(\"elixir\") = ' . executable('elixir') . ', ' .\n        \\ 'executable(\"mix\") = ' . executable('mix'))\n    return executable('elixir') && executable('mix')\nendfunction\n\nfunction! SyntaxCheckers_elixir_elixir_GetLocList() dict\n    let buf = bufnr('')\n    let make_options = {}\n    let compile_command = 'elixir'\n    let mix_file = syntastic#util#findFileInParent('mix.exs', fnamemodify(bufname(buf), ':p:h'))\n\n    if filereadable(mix_file)\n        let compile_command = 'mix compile'\n        let make_options['cwd'] = fnamemodify(mix_file, ':p:h')\n    endif\n\n    let make_options['makeprg'] = self.makeprgBuild({ 'exe': compile_command })\n\n    let make_options['errorformat'] =\n        \\ '%E** %*[^\\ ] %f:%l: %m,' .\n        \\ '%W%f:%l: warning: %m'\n\n    return SyntasticMake(make_options)\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'elixir',\n    \\ 'name': 'elixir',\n    \\ 'enable': 'enable_elixir_checker'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/erlang/erlang_check_file.erl",
    "content": "#!/usr/bin/env escript\n\nmain([File]) ->\n    Dir = get_root(filename:dirname(File)),\n    Defs = [strong_validation,\n            warn_export_all,\n            warn_export_vars,\n            warn_shadow_vars,\n            warn_obsolete_guard,\n            warn_unused_import,\n            report,\n            brief,\n            {i, Dir ++ \"/include\"}],\n    %% `rebar.config` is looked for,\n    %% but it is not necessarily the one in the project root.\n    %% I.e. it may be one deeper in the project file hierarchy.\n    Profile = which_compile_opts_profile(filename:absname(File)),\n    CompileOpts = case which_build_tool(Dir, Profile) of\n        {rebar, RebarFile} ->\n            %% `rebar.config` might contain relative paths.\n            %% They are relative to the file! Not to the project root.\n            %% rebar specific begin\n            rebar_opts(RebarFile);\n            %% rebar specific end\n        {erlangmk, ErlangMkDir} ->\n            %% Erlang.mk specific begin\n            erlangmk_opts(ErlangMkDir, Profile);\n            %% Erlang.mk specific end\n        undefined ->\n            fallback_opts()\n    end,\n    code:add_patha(filename:absname(\"ebin\")),\n    %% `compile:file/2` requires the `{i, Path}` to be relative\n    %% to CWD - no surprise here.\n    compile:file(File, Defs ++ translate_paths(Dir, CompileOpts));\n\nmain(_) ->\n    io:format(\"Usage: ~s <file>~n\", [escript:script_name()]),\n    halt(1).\n\nwhich_compile_opts_profile(File) ->\n    case filename:basename(filename:dirname(File)) of\n        \"test\" -> test;\n        _      -> normal\n    end.\n\nwhich_build_tool(Dir, Profile) ->\n    %% rebar specific begin\n    RebarFile = rebar_file(Dir, Profile),\n    %% rebar specific end\n    case filelib:is_file(RebarFile) of\n        true ->\n            {rebar, RebarFile};\n        false ->\n            %% Erlang.mk specific begin\n            ErlangMk = erlangmk_file(Dir),\n            %% Erlang.mk specific end\n            case filelib:is_file(ErlangMk) of\n                true  -> {erlangmk, Dir};\n                false -> undefined\n            end\n    end.\n\nrebar_file(Dir, normal) -> filename:join(Dir, \"rebar.config\");\nrebar_file(Dir, test)   ->\n    TestConfig = filename:join(Dir, \"rebar.test.config\"),\n    case filelib:is_file(TestConfig) of\n        true ->\n            TestConfig;\n        false ->\n            %% If we can't find \"rebar.test.config\" try falling back:\n            rebar_file(Dir, normal)\n    end.\n\nerlangmk_file(Dir) -> filename:join(Dir, \"erlang.mk\").\n\nrebar_opts(RebarFile) ->\n    Dir = get_root(filename:dirname(RebarFile)),\n    case file:consult(RebarFile) of\n        {ok, Terms} ->\n            %% Add deps for a rebar (version < 3) project\n            RebarLibDirs = proplists:get_value(lib_dirs, Terms, []),\n            lists:foreach(\n                fun(LibDir) ->\n                        code:add_pathsa(filelib:wildcard(LibDir ++ \"/*/ebin\"))\n                end, RebarLibDirs),\n            RebarDepsDir = proplists:get_value(deps_dir, Terms, \"deps\"),\n            code:add_pathsa(filelib:wildcard(RebarDepsDir ++ \"/*/ebin\")),\n\n            %% Add deps for rebar 3\n            code:add_pathsa(filelib:wildcard(Dir ++ \"/_build/default/lib/*/ebin\")),\n            %% Add include dependencies\n            IncludeDeps = [{i, IPath} || IPath <- filelib:wildcard(Dir ++ \"/_build/default/lib/*\")] ++\n                            [{i, filename:join(Dir, RebarDepsDir)}, %% rebar 2 dependencies\n                             {i, filename:join(Dir, \"apps\")}], %% rebar 3 multi-apps\n            proplists:get_value(erl_opts, Terms, []) ++ IncludeDeps;\n        {error, _} when RebarFile == \"rebar.config\" ->\n          fallback_opts();\n        {error, _} ->\n            rebar_opts(\"rebar.config\")\n    end.\n\nerlangmk_opts(BaseDir, Profile) ->\n    Make =\n        case os:getenv(\"MAKE\") of\n            false ->\n                case os:find_executable(\"gmake\") of\n                    false -> \"make\";\n                    Path  -> Path\n                end;\n            Cmd ->\n                case (lists:member($/, Cmd) orelse lists:member($\\\\, Cmd)) of\n                    true  -> Cmd;\n                    false -> os:find_executable(Cmd)\n                end\n        end,\n    ERLC_OPTS_Target =\n        case Profile of\n            normal -> \"show-ERLC_OPTS\";\n            test   -> \"show-TEST_ERLC_OPTS\"\n        end,\n    Args = [\n        \"--no-print-directory\",\n        \"-C\", BaseDir,\n        \"show-ERL_LIBS\",\n        ERLC_OPTS_Target\n    ],\n    try\n        Port = erlang:open_port({spawn_executable, Make}, [\n            {args, Args},\n            exit_status, use_stdio, stderr_to_stdout]),\n        case erlangmk_port_receive_loop(Port, \"\", BaseDir) of\n            {error, _} ->\n                fallback_opts();\n            {ok, {ErlLibs, ErlcOpts}} ->\n                [code:add_pathsa(filelib:wildcard(\n                                   filename:join([ErlLib, \"*\", \"ebin\"])))\n                 || ErlLib <- ErlLibs],\n                ErlcOpts\n        end\n    catch\n        error:_ ->\n            fallback_opts()\n    end.\n\nerlangmk_port_receive_loop(Port, Stdout, BaseDir) ->\n    receive\n        {Port, {exit_status, 0}} ->\n            erlangmk_format_opts(Stdout, BaseDir);\n        {Port, {exit_status, _}} ->\n            {error, {erlangmk, make_target_failure}};\n        {Port, {data, Out}} ->\n            erlangmk_port_receive_loop(Port, Stdout ++ Out, BaseDir)\n    end.\n\nerlangmk_format_opts(Stdout, BaseDir) ->\n    case string:tokens(Stdout, \"\\n\") of\n        [ErlLibsLine | ErlcOptsLines] ->\n            ErlLibs = erlangmk_format_erl_libs(ErlLibsLine),\n            ErlcOpts = erlangmk_format_erlc_opts(ErlcOptsLines, BaseDir),\n            {ok, {ErlLibs, ErlcOpts}};\n        _ ->\n            {error, {erlangmk, incorrect_output}}\n    end.\n\nerlangmk_format_erl_libs(ErlLibsLine) ->\n    case os:type() of\n        {win32, _} -> string:tokens(ErlLibsLine, \";\");\n        _          -> string:tokens(ErlLibsLine, \":\")\n    end.\n\nerlangmk_format_erlc_opts(ErlcOptsLines, BaseDir) ->\n    erlangmk_format_erlc_opts(ErlcOptsLines, [], BaseDir).\n\nerlangmk_format_erlc_opts([\"+\" ++ Option | Rest], Opts, BaseDir) ->\n    case make_term(Option) of\n        {error, _} -> erlangmk_format_erlc_opts(Rest, Opts, BaseDir);\n        Opt        -> erlangmk_format_erlc_opts(Rest, [Opt | Opts], BaseDir)\n    end;\nerlangmk_format_erlc_opts([\"-I\" ++ Opt | Rest], Opts, BaseDir)\n  when Opt =/= \"\" ->\n    erlangmk_format_erlc_opts([\"-I\", Opt | Rest], Opts, BaseDir);\nerlangmk_format_erlc_opts([\"-I\", [C | _] = Dir | Rest], Opts, BaseDir)\n  when C =/= $- andalso C =/= $+ ->\n    AbsDir = filename:absname(Dir, BaseDir),\n    erlangmk_format_erlc_opts(Rest, [{i, AbsDir} | Opts], BaseDir);\nerlangmk_format_erlc_opts([\"-W\" ++ Warn | Rest], Opts, BaseDir)\n  when Warn =/= \"\" ->\n    erlangmk_format_erlc_opts([\"-W\", Warn | Rest], Opts, BaseDir);\nerlangmk_format_erlc_opts([\"-W\", Warn | Rest], Opts, BaseDir) ->\n    case Warn of\n        \"all\" ->\n            erlangmk_format_erlc_opts(Rest, [{warn_format, 999} | Opts],\n                BaseDir);\n        \"error\" ->\n            erlangmk_format_erlc_opts(Rest, [warnings_as_errors | Opts],\n                BaseDir);\n        \"\" ->\n            erlangmk_format_erlc_opts(Rest, [{warn_format, 1} | Opts],\n                BaseDir);\n        _ ->\n            try list_to_integer(Warn) of\n                Level ->\n                    erlangmk_format_erlc_opts(Rest,\n                        [{warn_format, Level} | Opts], BaseDir)\n            catch\n                error:badarg ->\n                    erlangmk_format_erlc_opts(Rest, Opts, BaseDir)\n            end\n    end;\nerlangmk_format_erlc_opts([\"-D\" ++ Opt | Rest], Opts, BaseDir)\n  when Opt =/= \"\" ->\n    erlangmk_format_erlc_opts([\"-D\", Opt | Rest], Opts, BaseDir);\nerlangmk_format_erlc_opts([\"-D\", [C | _] = Val0 | Rest], Opts, BaseDir)\n  when C =/= $- andalso C =/= $+ ->\n    {Key0, Val1} = split_at_equals(Val0, []),\n    Key = list_to_atom(Key0),\n    case Val1 of\n        [] ->\n            erlangmk_format_erlc_opts(Rest, [{d, Key} | Opts], BaseDir);\n        Val2 ->\n            case make_term(Val2) of\n                {error, _} ->\n                    erlangmk_format_erlc_opts(Rest, Opts, BaseDir);\n                Val ->\n                    erlangmk_format_erlc_opts(Rest, [{d, Key, Val} | Opts], BaseDir)\n            end\n    end;\nerlangmk_format_erlc_opts([PathFlag, [_ | _] = Dir | Rest], Opts, BaseDir)\n  when PathFlag =:= \"-pa\" orelse PathFlag =:= \"-pz\" ->\n    AbsDir = filename:absname(Dir, BaseDir),\n    case PathFlag of\n        \"-pa\" -> code:add_patha(AbsDir);\n        \"-pz\" -> code:add_pathz(AbsDir)\n    end,\n    erlangmk_format_erlc_opts(Rest, Opts, BaseDir);\nerlangmk_format_erlc_opts([_ | Rest], Opts, BaseDir) ->\n    erlangmk_format_erlc_opts(Rest, Opts, BaseDir);\nerlangmk_format_erlc_opts([], Opts, _) ->\n    lists:reverse(Opts).\n\n%% Function imported from erl_compile.erl from Erlang 19.1.\nmake_term(Str) ->\n    case erl_scan:string(Str) of\n        {ok, Tokens, _} ->\n            case erl_parse:parse_term(Tokens ++ [{dot, 1}]) of\n                {ok, Term}      -> Term;\n                {error, Reason} -> {error, Reason}\n            end;\n        {error, Reason, _} ->\n            {error, Reason}\n    end.\n\n%% Function imported from erl_compile.erl from Erlang 19.1.\nsplit_at_equals([$=|T], Acc) ->\n    {lists:reverse(Acc),T};\nsplit_at_equals([H|T], Acc) ->\n    split_at_equals(T, [H|Acc]);\nsplit_at_equals([], Acc) ->\n    {lists:reverse(Acc),[]}.\n\nfallback_opts() ->\n    code:add_pathsa(filelib:wildcard(\"deps/*/ebin\")),\n    code:add_pathsa(nested_app_ebins()),\n    [\n     { i, filename:absname(\"apps\") }, { i, filename:absname(\"deps\") } | [ { i, filename:absname(Path) } || Path <- filelib:wildcard(\"deps/*/apps\")]\n    ].\n\nnested_app_ebins() ->\n    DetectedAppSrcFiles = filelib:wildcard(\"deps/*/apps/**/*.app.src\"),\n    [apps_dir_from_src(AppSrcFile)||AppSrcFile<-DetectedAppSrcFiles].\n\napps_dir_from_src(SrcFile) ->\n    SrcDir = filename:dirname(SrcFile),\n    filename:join(SrcDir, \"../../ebin\").\n\n%% Find the root directory of the project\nget_root(Dir) ->\n    Path = filename:split(filename:absname(Dir)),\n    filename:join(get_root(lists:reverse(Path), Path)).\n\nget_root([], Path) ->\n    Path;\n%% Strip off /apps/<appname>/src from the end of the path\n%% (rebar 3 multi-app project)\nget_root([\"src\", _Appname, \"apps\" | Tail], _Path) ->\n    lists:reverse(Tail);\n%% Strip off /src or /test from the end of the path\n%% (single-app project)\nget_root([\"src\" | Tail], _Path) ->\n    lists:reverse(Tail);\nget_root([\"test\" | Tail], _Path) ->\n    lists:reverse(Tail);\nget_root([_ | Tail], Path) ->\n    get_root(Tail, Path).\n\ntranslate_paths(Dir, RebarOpts) ->\n    [ translate_path(Dir, Opt) || Opt <- RebarOpts ].\n\ntranslate_path(Dir, {i, Path}) ->\n    case Path of\n        %% absolute\n        \"/\" ++ _ -> {i, Path};\n        %% relative -> make absolute taking rebar.config location into account\n        _ -> {i, filename:join([Dir, Path])}\n    end;\ntranslate_path(_, Other) -> Other.\n"
  },
  {
    "path": "syntax_checkers/erlang/escript.vim",
    "content": "\"============================================================================\n\"File:        erlang.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Pawel Salata <rockplayer.pl at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_erlang_erlang_checker')\n    finish\nendif\nlet g:loaded_syntastic_erlang_erlang_checker = 1\n\nif !exists('g:syntastic_erlc_include_path')\n    let g:syntastic_erlc_include_path = ''\nendif\n\nlet s:check_file = syntastic#util#shescape(expand('<sfile>:p:h', 1) . syntastic#util#Slash() . 'erlang_check_file.erl')\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_erlang_escript_GetLocList() dict\n    let buf = bufnr('')\n\n    if fnamemodify(bufname(buf), ':e') ==# 'hrl'\n        return []\n    endif\n\n    let shebang = syntastic#util#parseShebang(buf)\n    if shebang['exe'] ==# 'escript'\n        let args = '-s'\n        let post_args = ''\n    else\n        let args = s:check_file\n        let post_args = g:syntastic_erlc_include_path\n    endif\n    let makeprg = self.makeprgBuild({\n        \\ 'args_after': args,\n        \\ 'fname': syntastic#util#shexpand(fnamemodify(bufname(buf), ':p')),\n        \\ 'post_args_after': post_args })\n\n    let errorformat =\n        \\ '%W%f:%l:%c: warning: %m,'.\n        \\ '%E%f:%l:%c: %m,'.\n        \\ '%W%f:%l: warning: %m,'.\n        \\ '%E%f:%l: %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'erlang',\n    \\ 'name': 'escript'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/erlang/syntaxerl.vim",
    "content": "\"============================================================================\n\"File:        syntaxerl.vim\n\"Description: Syntax checking plugin for syntastic.\n\"Maintainer:  locojay\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_erlang_syntaxerl_checker')\n    finish\nendif\n\nlet g:loaded_syntastic_erlang_syntaxerl_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\n\nfunction! SyntaxCheckers_erlang_syntaxerl_GetLocList() dict\n\n    let makeprg = self.makeprgBuild({})\n\n    let errorformat =\n        \\ '%W%f:%l: warning: %m,'.\n        \\ '%E%f:%l: %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'erlang',\n    \\ 'name': 'syntaxerl'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/eruby/ruby.vim",
    "content": "\"============================================================================\n\"File:        ruby.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Martin Grenfell <martin.grenfell at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_eruby_ruby_checker')\n    finish\nendif\nlet g:loaded_syntastic_eruby_ruby_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_eruby_ruby_IsAvailable() dict\n    if !exists('g:syntastic_eruby_ruby_exec') && exists('g:syntastic_ruby_exec')\n        let g:syntastic_eruby_ruby_exec = g:syntastic_ruby_exec\n        call self.log('g:syntastic_eruby_ruby_exec =', g:syntastic_eruby_ruby_exec)\n    endif\n    return executable(self.getExec())\nendfunction\n\nfunction! SyntaxCheckers_eruby_ruby_GetLocList() dict\n    if !exists('s:ruby_new')\n        let s:ruby_new = syntastic#util#versionIsAtLeast(self.getVersion(), [1, 9])\n    endif\n\n    let buf = bufnr('')\n    let fname = \"'\" . escape(bufname(buf), \"\\\\'\") . \"'\"\n\n    \" TODO: encodings became useful in ruby 1.9 :)\n    if s:ruby_new\n        let enc = &fileencoding !=# '' ? &fileencoding : &encoding\n        let encoding_spec = ', :encoding => \"' . (enc ==? 'utf-8' ? 'UTF-8' : 'BINARY') . '\"'\n    else\n        let encoding_spec = ''\n    endif\n\n    \"gsub fixes issue #7, rails has it's own eruby syntax\n    let makeprg =\n        \\ self.getExecEscaped() . ' -rerb -e ' .\n        \\ syntastic#util#shescape('puts ERB.new(File.read(' .\n        \\     fname . encoding_spec .\n        \\     ').gsub(''<%='',''<%''), nil, ''-'').src') .\n        \\ ' | ' . self.getExecEscaped() . ' -w -c'\n\n    let errorformat =\n        \\ '%-G%\\m%.%#warning: %\\%%(possibly %\\)%\\?useless use of a literal in void context,' .\n        \\ '%-G%\\m%.%#warning: possibly useless use of a variable in void context,'\n\n    \" filter out lines starting with ...\n    \" long lines are truncated and wrapped in ... %p then returns the wrong\n    \" column offset\n    let errorformat .= '%-G%\\%.%\\%.%\\%.%.%#,'\n\n    let errorformat .=\n        \\ '%-GSyntax OK,'.\n        \\ '%E-:%l: syntax error\\, %m,%Z%p^,'.\n        \\ '%W-:%l: warning: %m,'.\n        \\ '%Z%p^,'.\n        \\ '%-C%.%#'\n\n    let env = syntastic#util#isRunningWindows() ? {} : { 'RUBYOPT': '' }\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'env': env,\n        \\ 'defaults': { 'bufnr': buf, 'vcol': 1 } })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'eruby',\n    \\ 'name': 'ruby'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/fortran/gfortran.vim",
    "content": "\"============================================================================\n\"File:        fortran.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Karl Yngve Lervåg <karl.yngve@lervag.net>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_fortran_gfortran_checker')\n    finish\nendif\nlet g:loaded_syntastic_fortran_gfortran_checker = 1\n\nif !exists('g:syntastic_fortran_compiler_options')\n    let g:syntastic_fortran_compiler_options = ''\nendif\n\nlet s:type_map = {}\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_fortran_gfortran_IsAvailable() dict \" {{{1\n    if !exists('g:syntastic_fortran_compiler')\n        let g:syntastic_fortran_compiler = self.getExec()\n    endif\n    call self.log('g:syntastic_fortran_compiler = ', g:syntastic_fortran_compiler)\n    return executable(expand(g:syntastic_fortran_compiler, 1))\nendfunction \" }}}1\n\n\" @vimlint(EVL104, 1, l:errorformat)\nfunction! SyntaxCheckers_fortran_gfortran_GetLocList() dict \" {{{1\n    call s:SetCompilerType(g:syntastic_fortran_compiler)\n    if !has_key(s:type_map, g:syntastic_fortran_compiler)\n        call syntastic#log#error(\"checker fortran/gfortran: can't parse version string (abnormal termination?)\")\n        return []\n    endif\n\n    if s:type_map[g:syntastic_fortran_compiler] ==# 'gfortran'\n        let errorformat =\n            \\ '%-C %#,'.\n            \\ '%-C  %#%.%#,'.\n            \\ '%A%f:%l%[.:]%c:,'.\n            \\ '%Z%\\m%\\%%(Fatal %\\)%\\?%trror: %m,'.\n            \\ '%Z%tarning: %m,'.\n            \\ '%-G%.%#'\n        if !exists('g:syntastic_fortran_gfortran_sort')\n            let g:syntastic_fortran_gfortran_sort = 0\n        endif\n    elseif s:type_map[g:syntastic_fortran_compiler] ==# 'ifort'\n        let errorformat =\n            \\ '%E%f(%l): error #%n: %m,'.\n            \\ '%W%f(%l): warning #%n: %m,'.\n            \\ '%W%f(%l): remark #%n: %m,'.\n            \\ '%-Z%p^,'.\n            \\ '%-G%.%#'\n        if !exists('g:syntastic_fortran_gfortran_sort')\n            let g:syntastic_fortran_gfortran_sort = 1\n        endif\n    endif\n\n    return syntastic#c#GetLocList('fortran', 'gfortran', {\n        \\ 'errorformat': errorformat,\n        \\ 'main_flags': '-fsyntax-only' })\nendfunction \" }}}1\n\" @vimlint(EVL104, 0, l:errorformat)\n\n\" Utilities {{{1\n\nfunction! s:SetCompilerType(exe) \" {{{2\n    if !has_key(s:type_map, a:exe)\n        try\n            let ver = filter( split(syntastic#util#system(syntastic#util#shescape(a:exe) . ' --version'), '\\n'),\n                \\ 'v:val =~# \"\\\\v^%(GNU Fortran|ifort) \"' )[0]\n            if ver =~# '\\m^GNU Fortran '\n                let s:type_map[a:exe] = 'gfortran'\n            elseif ver =~# '\\m^ifort '\n                let s:type_map[a:exe] = 'ifort'\n            endif\n        catch /\\m^Vim\\%((\\a\\+)\\)\\=:E684/\n            \" do nothing\n        endtry\n    endif\nendfunction \" }}}2\n\n\" }}}\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'fortran',\n    \\ 'name': 'gfortran' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/glsl/cgc.vim",
    "content": "\"============================================================================\n\"File:        glsl.vim\n\"Description: Syntax checker for OpenGL Shading Language\n\"Maintainer:  Joshua Rahm <joshuarahm@gmail.com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_glsl_cgc_checker')\n    finish\nendif\nlet g:loaded_syntastic_glsl_cgc_checker = 1\n\nlet s:glsl_extensions = {\n        \\ 'glslf': 'gpu_fp',\n        \\ 'glslv': 'gpu_vp',\n        \\ 'frag':  'gpu_fp',\n        \\ 'vert':  'gpu_vp',\n        \\ 'fp':    'gpu_fp',\n        \\ 'vp':    'gpu_vp'\n    \\ }\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_glsl_cgc_GetLocList() dict \" {{{1\n    let buf = bufnr('')\n    let makeprg = self.makeprgBuild({\n        \\ 'args_before': '-oglsl -profile ' . s:GetProfile(buf),\n        \\ 'args': (exists('g:syntastic_glsl_options') ? ' ' . g:syntastic_glsl_options : '') })\n\n    let errorformat =\n        \\ '%E%f(%l) : error %m,' .\n        \\ '%W%f(%l) : warning %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\nendfunction \" }}}1\n\n\" Utilities {{{1\n\nfunction! s:GetProfile(buf) \" {{{2\n    let profile = matchstr(get(filter(getbufline(a:buf, 1, 100), 'v:val =~# \"\\\\m\\\\C^//\\\\s*profile:\"'), 0, ''), '\\m\\C^//\\s*profile:\\s*\\zs.*')\n    if profile ==# ''\n        let extensions = syntastic#util#bufVar(a:buf, 'glsl_extensions', s:glsl_extensions)\n        let profile = get(extensions, tolower(fnamemodify(bufname(a:buf), ':e')), 'gpu_vert')\n    endif\n\n    return profile\nendfunction \" }}}2\n\n\" }}}1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\'filetype': 'glsl',\n    \\'name': 'cgc'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/go/go.vim",
    "content": "\"============================================================================\n\"File:        go.vim\n\"Description: Check go syntax using 'gofmt -l' followed by 'go [build|test]'\n\"Maintainer:  Kamil Kisiel <kamil@kamilkisiel.net>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\"\n\" This syntax checker does not reformat your source code.\n\" Use a BufWritePre autocommand to that end:\n\"   autocmd FileType go autocmd BufWritePre <buffer> Fmt\n\nif exists('g:loaded_syntastic_go_go_checker')\n    finish\nendif\nlet g:loaded_syntastic_go_go_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_go_go_IsAvailable() dict\n    return executable(self.getExec()) && executable('gofmt')\nendfunction\n\nfunction! SyntaxCheckers_go_go_GetLocList() dict\n    if !exists('s:go_new')\n        let s:go_new = syntastic#util#versionIsAtLeast(self.getVersion(self.getExecEscaped() . ' version'), [1, 5])\n    endif\n    let buf = bufnr('')\n\n    \" Check with gofmt first, since `go build` and `go test` might not report\n    \" syntax errors in the current file if another file with syntax error is\n    \" compiled first.\n    let makeprg = self.makeprgBuild({\n        \\ 'exe': 'gofmt',\n        \\ 'args': '-l',\n        \\ 'tail': '> ' . syntastic#util#DevNull() })\n\n    let errorformat =\n        \\ '%f:%l:%c: %m,' .\n        \\ '%-G%.%#'\n\n    let errors = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'defaults': {'type': 'e'} })\n    if !empty(errors)\n        return errors\n    endif\n\n    \" Test files, i.e. files with a name ending in `_test.go`, are not\n    \" compiled by `go build`, therefore `go test` must be called for those.\n    if bufname(buf) =~# '\\m_test\\.go$'\n        let cmd = 'test -c'\n        let opts = syntastic#util#bufVar(buf, 'go_go_test_args', s:go_new ? '-buildmode=default' : '')\n        let cleanup = 1\n    else\n        let cmd = 'build'\n        let opts = syntastic#util#bufVar(buf, 'go_go_build_args', s:go_new ? '-buildmode=default' : '')\n        let cleanup = 0\n    endif\n    let opt_str = (type(opts) != type('') || opts !=# '') ? join(syntastic#util#argsescape(opts)) : opts\n    let makeprg = self.getExecEscaped() . ' ' . cmd . ' ' . opt_str\n\n    \" The first pattern is for warnings from C compilers.\n    let errorformat =\n        \\ '%W%f:%l: warning: %m,' .\n        \\ '%E%f:%l:%c:%m,' .\n        \\ '%E%f:%l:%m,' .\n        \\ '%C%\\s%\\+%m,' .\n        \\ '%+Ecan''t load package: %m,' .\n        \\ '%+Einternal error: %m,' .\n        \\ '%-G#%.%#'\n\n    \" The go compiler needs to either be run with an import path as an\n    \" argument or directly from the package directory. Since figuring out\n    \" the proper import path is fickle, just cwd to the package.\n\n    let errors = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'cwd': fnamemodify(bufname(buf), ':p:h'),\n        \\ 'env': {'GOGC': 'off'},\n        \\ 'defaults': {'type': 'e'} })\n\n    if cleanup\n        call delete(fnamemodify(bufname(buf), ':p:h') . syntastic#util#Slash() . fnamemodify(bufname(buf), ':p:h:t') . '.test')\n    endif\n\n    return errors\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'go',\n    \\ 'name': 'go'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/go/gofmt.vim",
    "content": "\"============================================================================\n\"File:        gofmt.vim\n\"Description: Check go syntax using 'gofmt -l'\n\"Maintainer:  Brandon Thomson <bt@brandonthomson.com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\"\n\" This syntax checker does not reformat your source code.\n\" Use a BufWritePre autocommand to that end:\n\"   autocmd FileType go autocmd BufWritePre <buffer> Fmt\n\nif exists('g:loaded_syntastic_go_gofmt_checker')\n    finish\nendif\nlet g:loaded_syntastic_go_gofmt_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_go_gofmt_GetLocList() dict\n    let makeprg = self.makeprgBuild({\n        \\ 'args_after': '-l',\n        \\ 'tail_after': '> ' . syntastic#util#DevNull() })\n\n    let errorformat = '%f:%l:%c: %m,%-G%.%#'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'defaults': {'type': 'e'} })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'go',\n    \\ 'name': 'gofmt'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/go/golangci_lint.vim",
    "content": "\"============================================================================\n\"File:        golangci_lint.vim\n\"Description: Check go syntax using 'golangci-lint'\n\"Maintainer:  Hiroshi Ioka <elvis@lnmpy.com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_go_golangci_lint_checker')\n    finish\nendif\nlet g:loaded_syntastic_go_golangci_lint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_go_golangci_lint_GetLocList() dict\n    let buf = bufnr('')\n\n    let makeprg = self.makeprgBuild({\n        \\ 'args_before': 'run',\n        \\ 'fname': '.' })\n\n    let errorformat =\n        \\ '%f:%l:%c: %m,' .\n        \\ '%f:%l: %m,' .\n        \\ '%-G%.%#'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'cwd': fnamemodify(bufname(buf), ':p:h'),\n        \\ 'defaults': {'type': 'e'},\n        \\ 'subtype': 'Style' })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'go',\n    \\ 'name': 'golangci_lint',\n    \\ 'exec': 'golangci-lint' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/go/golint.vim",
    "content": "\"============================================================================\n\"File:        golint.vim\n\"Description: Check go syntax using 'golint'\n\"Maintainer:  Hiroshi Ioka <hirochachacha@gmail.com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_go_golint_checker')\n    finish\nendif\nlet g:loaded_syntastic_go_golint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_go_golint_GetLocList() dict\n    let makeprg = self.makeprgBuild({})\n\n    let errorformat =\n        \\ '%f:%l:%c: %m,' .\n        \\ '%-G%.%#'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'defaults': {'type': 'w'},\n        \\ 'subtype': 'Style' })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'go',\n    \\ 'name': 'golint'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/go/gometalinter.vim",
    "content": "\"============================================================================\n\"File:        gometalinter.vim\n\"Description: Check go syntax using 'gometalint'\n\"Maintainer:  Joshua Rubin <joshua@rubixconsulting.com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_go_gometalinter_checker')\n    finish\nendif\nlet g:loaded_syntastic_go_gometalinter_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_go_gometalinter_GetLocList() dict\n    let buf = bufnr('')\n    let makeprg = self.makeprgBuild({\n        \\ 'args': '-t',\n        \\ 'fname': syntastic#util#shescape(fnamemodify(bufname(buf), ':p:h')) })\n\n    let errorformat =\n        \\ '%f:%l:%c:%trror: %m,' .\n        \\ '%f:%l:%c:%tarning: %m,' .\n        \\ '%f:%l::%trror: %m,' .\n        \\ '%f:%l::%tarning: %m'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'returns': [0, 1] })\n\n    for e in loclist\n        if e['text'] =~# '\\v\\(%(deadcode|gocyclo|golint|defercheck|varcheck|structcheck|errcheck|dupl)\\)$'\n            let e['subtype'] = 'Style'\n        endif\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'go',\n    \\ 'name': 'gometalinter'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/go/gotype.vim",
    "content": "\"============================================================================\n\"File:        gotype.vim\n\"Description: Perform syntactic and semantic checking of Go code using 'gotype'\n\"Maintainer:  luz <ne.tetewi@gmail.com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_go_gotype_checker')\n    finish\nendif\nlet g:loaded_syntastic_go_gotype_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_go_gotype_GetLocList() dict\n    let buf = bufnr('')\n\n    if !exists('s:go_new')\n        let command = syntastic#util#shescape(syntastic#util#bufVar(buf, 'go_go_exec', 'go')) . ' version'\n        let version_output = syntastic#util#system(command)\n        call self.log('finding go version: ' . string(command) . ': ' .\n            \\ string(split(version_output, \"\\n\", 1)) .\n            \\ (v:shell_error ? ' (exit code ' . v:shell_error . ')' : ''))\n        let parsed_ver = syntastic#util#parseVersion(version_output)\n        if len(parsed_ver)\n            let s:go_new = syntastic#util#versionIsAtLeast(parsed_ver, [1, 8])\n        else\n            call syntastic#log#error(\"checker \" . self.getCName() . \": can't parse go version (abnormal termination?)\")\n            return []\n        endif\n    endif\n\n    let makeprg = self.makeprgBuild({\n        \\ 'args': (bufname(buf) =~# '\\m_test\\.go$' ? (s:go_new ? '-t' : '-a') : ''),\n        \\ 'fname': '.' })\n\n    let errorformat =\n        \\ '%f:%l:%c: %m,' .\n        \\ '%-G%.%#'\n\n    \" gotype needs the full go package to test types properly. Just cwd to\n    \" the package for the same reasons specified in go.vim (\"figuring out\n    \" the import path is fickle\").\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'cwd': fnamemodify(bufname(buf), ':p:h'),\n        \\ 'defaults': {'type': 'e'} })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'go',\n    \\ 'name': 'gotype'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/go/govet.vim",
    "content": "\"============================================================================\n\"File:        govet.vim\n\"Description: Perform static analysis of Go code with the vet tool\n\"Maintainer:  Kamil Kisiel <kamil@kamilkisiel.net>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_go_govet_checker')\n    finish\nendif\nlet g:loaded_syntastic_go_govet_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_go_govet_GetLocList() dict\n    let buf = bufnr('')\n    let makeprg = self.getExecEscaped() . ' vet'\n\n    let errorformat =\n        \\ '%Evet: %.%\\+: %f:%l:%c: %m,' .\n        \\ '%Evet: %f:%l:%c: %m,' .\n        \\ '%f:%l:%c: %m,' .\n        \\ '%W%f:%l: %m,' .\n        \\ '%-G%.%#'\n\n    \" The go compiler needs to either be run with an import path as an\n    \" argument or directly from the package directory. Since figuring out\n    \" the proper import path is fickle, just cwd to the package.\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'cwd': fnamemodify(bufname(buf), ':p:h'),\n        \\ 'defaults': {'type': 'w'} })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'go',\n    \\ 'name': 'govet',\n    \\ 'exec': 'go' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/haml/haml.vim",
    "content": "\"============================================================================\n\"File:        haml.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Martin Grenfell <martin.grenfell at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_haml_haml_checker')\n    finish\nendif\nlet g:loaded_syntastic_haml_haml_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_haml_haml_IsAvailable() dict\n    call syntastic#log#deprecationWarn('haml_interpreter', 'haml_haml_exec')\n    return executable(self.getExec())\nendfunction\n\nfunction! SyntaxCheckers_haml_haml_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_after': '-c' })\n\n    let errorformat =\n        \\ 'Haml error on line %l: %m,' .\n        \\ 'Syntax error on line %l: %m,' .\n        \\ '%-G%.%#'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'haml',\n    \\ 'name': 'haml'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/haml/haml_lint.vim",
    "content": "\"============================================================================\n\"File:        haml_lint.vim\n\"Description: HAML style and syntax checker plugin for Syntastic\n\"Maintainer:  Shane da Silva <shane@dasilva.io>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_haml_haml_lint_checker')\n    finish\nendif\nlet g:loaded_syntastic_haml_haml_lint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_haml_haml_lint_GetLocList() dict\n    let makeprg = self.makeprgBuild({})\n    let errorformat = '%f:%l [%t] %m'\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'subtype': 'Style'})\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'haml',\n    \\ 'name': 'haml_lint',\n    \\ 'exec': 'haml-lint' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/handlebars/handlebars.vim",
    "content": "\"============================================================================\n\"File:        handlebars.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Martin Grenfell <martin.grenfell at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_handlebars_handlebars_checker')\n    finish\nendif\nlet g:loaded_syntastic_handlebars_handlebars_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_handlebars_handlebars_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_after': '-f ' . syntastic#util#DevNull() })\n\n    let errorformat =\n        \\ '%EError: %m on line %l:,' .\n        \\ '%EError: %m,' .\n        \\ '%Z%p^,' .\n        \\ '%-G%.%#'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'postprocess': ['guards'],\n        \\ 'defaults': {'bufnr': bufnr('')} })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'handlebars',\n    \\ 'name': 'handlebars'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/haskell/hdevtools.vim",
    "content": "\"============================================================================\n\"File:        hdevtools.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Anthony Carapetis <anthony.carapetis at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_haskell_hdevtools_checker')\n    finish\nendif\nlet g:loaded_syntastic_haskell_hdevtools_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_haskell_hdevtools_GetLocList() dict\n    if !exists('g:syntastic_haskell_hdevtools_args') && exists('g:hdevtools_options')\n        call syntastic#log#oneTimeWarn('variable g:hdevtools_options is deprecated, ' .\n            \\ 'please use g:syntastic_haskell_hdevtools_args instead')\n        let g:syntastic_haskell_hdevtools_args = g:hdevtools_options\n    endif\n\n    let buf = bufnr('')\n    let makeprg = self.makeprgBuild({\n        \\ 'exe_after': 'check',\n        \\ 'fname': syntastic#util#shescape(fnamemodify(bufname(buf), ':p')) })\n\n    let errorformat =\n        \\ '%-Z %#,'.\n        \\ '%W%\\m%f:%l:%v%\\%%(-%\\d%\\+%\\)%\\=: Warning: %m,'.\n        \\ '%W%\\m%f:%l:%v%\\%%(-%\\d%\\+%\\)%\\=: Warning:,'.\n        \\ '%E%\\m%f:%l:%v%\\%%(-%\\d%\\+%\\)%\\=: %m,'.\n        \\ '%E%>%\\m%f:%l:%v%\\%%(-%\\d%\\+%\\)%\\=:,'.\n        \\ '%+C  %#%m,'.\n        \\ '%W%>%\\m%f:%l:%v%\\%%(-%\\d%\\+%\\)%\\=:,'.\n        \\ '%+C  %#%tarning: %m,'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'defaults': {'vcol': 1},\n        \\ 'postprocess': ['compressWhitespace'] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'haskell',\n    \\ 'name': 'hdevtools'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/haskell/hlint.vim",
    "content": "\"============================================================================\n\"File:        hlint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Nicolas Wu <nicolas.wu at gmail dot com>\n\"License:     BSD\n\"============================================================================\n\nif exists('g:loaded_syntastic_haskell_hlint_checker')\n    finish\nendif\nlet g:loaded_syntastic_haskell_hlint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_haskell_hlint_IsAvailable() dict\n    if !executable(self.getExec())\n        return 0\n    endif\n    return syntastic#util#versionIsAtLeast(self.getVersion(), [1, 9, 4])\nendfunction\n\nfunction! SyntaxCheckers_haskell_hlint_GetLocList() dict\n    let buf = bufnr('')\n    let makeprg = self.makeprgBuild({\n        \\ 'args_before': '--color=never',\n        \\ 'fname': syntastic#util#shescape(fnamemodify(bufname(buf), ':p')) })\n\n    let errorformat =\n        \\ '%E%f:%l:%v: Error while reading hint file\\, %m,' .\n        \\ '%E%f:(%l\\,%v)-(%*[0-9]\\,%*[0-9]): Error: %m,' .\n        \\ '%E%f:%l:%v-%*[0-9]: Error: %m,' .\n        \\ '%E%f:%l:%v: Error: %m,' .\n        \\ '%W%f:(%l\\,%v)-(%*[0-9]\\,%*[0-9]): Warning: %m,' .\n        \\ '%W%f:%l:%v-%*[0-9]: Warning: %m,' .\n        \\ '%W%f:%l:%v: Warning: %m,' .\n        \\ '%W%f:(%l\\,%v)-(%*[0-9]\\,%*[0-9]): Suggestion: %m,' .\n        \\ '%W%f:%l:%v-%*[0-9]: Suggestion: %m,' .\n        \\ '%W%f:%l:%v: Suggestion: %m,' .\n        \\ '%C%m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'defaults': {'vcol': 1},\n        \\ 'postprocess': ['compressWhitespace'] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'haskell',\n    \\ 'name': 'hlint'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/haskell/scan.vim",
    "content": "\"============================================================================\n\"File:        scan.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_haskell_scan_checker')\n    finish\nendif\nlet g:loaded_syntastic_haskell_scan_checker = 1\n\nif !exists('g:syntastic_haskell_scan_sort')\n    let g:syntastic_haskell_scan_sort = 1\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_haskell_scan_GetLocList() dict\n    let makeprg = self.makeprgBuild({})\n\n    let errorformat = '%f:%l:%v: %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'subtype': 'Style' })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'haskell',\n    \\ 'name': 'scan'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/haxe/haxe.vim",
    "content": "\"============================================================================\n\"File:        haxe.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  David Bernard <david.bernard.31 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_haxe_haxe_checker')\n    finish\nendif\nlet g:loaded_syntastic_haxe_haxe_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_haxe_haxe_GetLocList() dict\n    let buf = bufnr('')\n    let hxml = syntastic#util#bufRawVar(buf, 'vaxe_hxml')\n    if hxml ==# ''\n        let hxml = syntastic#util#findGlobInParent('*.hxml', fnamemodify(bufname(buf), ':p:h'))\n    endif\n    let hxml = fnamemodify(hxml, ':p')\n\n    call self.log('hxml =', hxml)\n\n    if hxml !=# ''\n        let makeprg = self.makeprgBuild({\n            \\ 'fname': syntastic#util#shescape(fnamemodify(hxml, ':t')),\n            \\ 'args_after' :  ['--no-output'] })\n\n        let errorformat =\n            \\ '%W%f:%l: characters %c-%n : Warning : %m,' .\n            \\ '%E%f:%l: characters %c-%n : %m'\n\n        let loclist = SyntasticMake({\n            \\ 'makeprg': makeprg,\n            \\ 'errorformat': errorformat,\n            \\ 'cwd': fnamemodify(hxml, ':h') })\n\n        for e in loclist\n            let e['hl'] = '\\%>' . e['col'] . 'c\\%<' . (e['nr'] + 1) . 'c'\n            let e['col'] += 1\n            let e['nr'] = 0\n        endfor\n\n        return loclist\n    endif\n\n    return []\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'haxe',\n    \\ 'name': 'haxe'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/help/proselint.vim",
    "content": "\"============================================================================\n\"File:        proselint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_help_proselint_checker')\n    finish\nendif\nlet g:loaded_syntastic_help_proselint_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'help',\n    \\ 'name': 'proselint',\n    \\ 'redirect': 'text/proselint'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/hss/hss.vim",
    "content": "\"============================================================================\n\"File:        hss.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Justin Donaldson (jdonaldson@gmail.com)\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_hss_hss_checker')\n    finish\nendif\nlet g:loaded_syntastic_hss_hss_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_hss_hss_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_after' : '-output ' . syntastic#util#DevNull() })\n\n    let errorformat = '%E%f:%l: %m'\n\n    return SyntasticMake({\n\t\\ 'makeprg': makeprg,\n\t\\ 'errorformat': errorformat })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'hss',\n    \\ 'name': 'hss'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/html/eslint.vim",
    "content": "\"============================================================================\n\"File:        eslint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_html_eslint_checker')\n    finish\nendif\nlet g:loaded_syntastic_html_eslint_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'html',\n    \\ 'name': 'eslint',\n    \\ 'redirect': 'javascript/eslint'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/html/gjslint.vim",
    "content": "\"============================================================================\n\"File:        gjslint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_html_gjslint_checker')\n    finish\nendif\nlet g:loaded_syntastic_html_gjslint_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'html',\n    \\ 'name': 'gjslint',\n    \\ 'redirect': 'javascript/gjslint'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/html/htmlhint.vim",
    "content": "\"============================================================================\n\"File:        html.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_html_htmlhint_checker')\n    finish\nendif\nlet g:loaded_syntastic_html_htmlhint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_html_htmlhint_IsAvailable() dict\n    if !executable(self.getExec())\n        return 0\n    endif\n    return syntastic#util#versionIsAtLeast(self.getVersion(), [0, 9, 13])\nendfunction\n\nfunction! SyntaxCheckers_html_htmlhint_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_before': '--format unix' })\n\n    let errorformat = '%f:%l:%c: %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'returns': [0, 1] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'html',\n    \\ 'name': 'htmlhint'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/html/jshint.vim",
    "content": "\"============================================================================\n\"File:        jshint.vim\n\"Description: Javascript syntax checker for HTML - using jshint\n\"Maintainer:  LCD 47 <lcd047@gmail.com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_html_jshint_checker')\n    finish\nendif\nlet g:loaded_syntastic_html_jshint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_html_jshint_IsAvailable() dict\n    call syntastic#log#deprecationWarn('jshint_exec', 'html_jshint_exec')\n    if !executable(self.getExec())\n        return 0\n    endif\n    return syntastic#util#versionIsAtLeast(self.getVersion(), [2, 4])\nendfunction\n\nfunction! SyntaxCheckers_html_jshint_GetLocList() dict\n    call syntastic#log#deprecationWarn('html_jshint_conf', 'html_jshint_args',\n        \\ \"'--config ' . syntastic#util#shexpand(OLD_VAR)\")\n\n    let makeprg = self.makeprgBuild({ 'args_after': '--verbose --extract always' })\n\n    let errorformat = '%A%f: line %l\\, col %v\\, %m \\(%t%*\\d\\)'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'defaults': {'bufnr': bufnr('')},\n        \\ 'returns': [0, 2] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'html',\n    \\ 'name': 'jshint'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/html/proselint.vim",
    "content": "\"============================================================================\n\"File:        proselint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_html_proselint_checker')\n    finish\nendif\nlet g:loaded_syntastic_html_proselint_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'html',\n    \\ 'name': 'proselint',\n    \\ 'redirect': 'text/proselint'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/html/stylelint.vim",
    "content": "\"============================================================================\n\"File:        stylelint.vim\n\"Description: Syntax checking plugin for syntastic using `stylelint`\n\"             (https://github.com/stylelint/stylelint).\n\"Maintainer:  Tim Carry <tim at pixelastic dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_html_stylelint_checker')\n    finish\nendif\nlet g:loaded_syntastic_html_stylelint_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'html',\n    \\ 'name': 'stylelint',\n    \\ 'redirect': 'css/stylelint'})\n\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/html/textlint.vim",
    "content": "\"============================================================================\n\"File:        textlint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_html_textlint_checker')\n    finish\nendif\nlet g:loaded_syntastic_html_textlint_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'html',\n    \\ 'name': 'textlint',\n    \\ 'redirect': 'text/textlint'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/html/tidy.vim",
    "content": "\"============================================================================\n\"File:        tidy.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Martin Grenfell <martin.grenfell at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_html_tidy_checker')\n    finish\nendif\nlet g:loaded_syntastic_html_tidy_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\n\" Checker options {{{1\n\nif !exists('g:syntastic_html_tidy_ignore_errors')\n    let g:syntastic_html_tidy_ignore_errors = []\nendif\n\nif !exists('g:syntastic_html_tidy_blocklevel_tags')\n    let g:syntastic_html_tidy_blocklevel_tags = []\nendif\n\nif !exists('g:syntastic_html_tidy_inline_tags')\n    let g:syntastic_html_tidy_inline_tags = []\nendif\n\nif !exists('g:syntastic_html_tidy_empty_tags')\n    let g:syntastic_html_tidy_empty_tags = []\nendif\n\n\" }}}1\n\n\" Constants {{{1\n\nlet s:IGNORE_ERRORS = [\n        \\ \"<table> lacks \\\"summary\\\" attribute\",\n        \\ \"not approved by W3C\",\n        \\ \"<input> proprietary attribute \\\"placeholder\\\"\",\n        \\ \"<meta> proprietary attribute \\\"charset\\\"\",\n        \\ \"<meta> lacks \\\"content\\\" attribute\",\n        \\ \"inserting \\\"type\\\" attribute\",\n        \\ \"proprietary attribute \\\"data-\",\n        \\ \"missing <!DOCTYPE> declaration\",\n        \\ \"inserting implicit <body>\",\n        \\ \"inserting missing 'title' element\",\n        \\ \"unescaped & or unknown entity\",\n        \\ \"<input> attribute \\\"type\\\" has invalid value\",\n        \\ \"proprietary attribute \\\"role\\\"\",\n        \\ \"proprietary attribute \\\"aria-activedescendant\\\"\",\n        \\ \"proprietary attribute \\\"aria-atomic\\\"\",\n        \\ \"proprietary attribute \\\"aria-autocomplete\\\"\",\n        \\ \"proprietary attribute \\\"aria-busy\\\"\",\n        \\ \"proprietary attribute \\\"aria-checked\\\"\",\n        \\ \"proprietary attribute \\\"aria-controls\\\"\",\n        \\ \"proprietary attribute \\\"aria-describedby\\\"\",\n        \\ \"proprietary attribute \\\"aria-disabled\\\"\",\n        \\ \"proprietary attribute \\\"aria-dropeffect\\\"\",\n        \\ \"proprietary attribute \\\"aria-expanded\\\"\",\n        \\ \"proprietary attribute \\\"aria-flowto\\\"\",\n        \\ \"proprietary attribute \\\"aria-grabbed\\\"\",\n        \\ \"proprietary attribute \\\"aria-haspopup\\\"\",\n        \\ \"proprietary attribute \\\"aria-hidden\\\"\",\n        \\ \"proprietary attribute \\\"aria-invalid\\\"\",\n        \\ \"proprietary attribute \\\"aria-label\\\"\",\n        \\ \"proprietary attribute \\\"aria-labelledby\\\"\",\n        \\ \"proprietary attribute \\\"aria-level\\\"\",\n        \\ \"proprietary attribute \\\"aria-live\\\"\",\n        \\ \"proprietary attribute \\\"aria-multiline\\\"\",\n        \\ \"proprietary attribute \\\"aria-multiselectable\\\"\",\n        \\ \"proprietary attribute \\\"aria-orientation\\\"\",\n        \\ \"proprietary attribute \\\"aria-owns\\\"\",\n        \\ \"proprietary attribute \\\"aria-posinset\\\"\",\n        \\ \"proprietary attribute \\\"aria-pressed\\\"\",\n        \\ \"proprietary attribute \\\"aria-readonly\\\"\",\n        \\ \"proprietary attribute \\\"aria-relevant\\\"\",\n        \\ \"proprietary attribute \\\"aria-relevant\\\"\",\n        \\ \"proprietary attribute \\\"aria-required\\\"\",\n        \\ \"proprietary attribute \\\"aria-selected\\\"\",\n        \\ \"proprietary attribute \\\"aria-setsize\\\"\",\n        \\ \"proprietary attribute \\\"aria-sort\\\"\",\n        \\ \"proprietary attribute \\\"aria-valuemax\\\"\",\n        \\ \"proprietary attribute \\\"aria-valuemin\\\"\",\n        \\ \"proprietary attribute \\\"aria-valuenow\\\"\",\n        \\ \"proprietary attribute \\\"aria-valuetext\\\"\"\n    \\ ]\nlockvar! s:IGNORE_ERRORS\n\nlet s:BLOCKLEVEL_TAGS = [\n        \\ 'main',\n        \\ 'section',\n        \\ 'article',\n        \\ 'aside',\n        \\ 'header',\n        \\ 'footer',\n        \\ 'nav',\n        \\ 'figure',\n        \\ 'figcaption'\n    \\ ]\nlockvar! s:BLOCKLEVEL_TAGS\n\nlet s:INLINE_TAGS = [\n        \\ 'video',\n        \\ 'audio',\n        \\ 'source',\n        \\ 'embed',\n        \\ 'mark',\n        \\ 'progress',\n        \\ 'meter',\n        \\ 'time',\n        \\ 'ruby',\n        \\ 'rt',\n        \\ 'rp',\n        \\ 'canvas',\n        \\ 'command',\n        \\ 'details',\n        \\ 'datalist'\n    \\ ]\nlockvar! s:INLINE_TAGS\n\nlet s:EMPTY_TAGS = [\n        \\ 'wbr',\n        \\ 'keygen'\n    \\ ]\nlockvar! s:EMPTY_TAGS\n\n\" }}}1\n\nfunction! SyntaxCheckers_html_tidy_GetLocList() dict \" {{{1\n    let makeprg = self.makeprgBuild({ 'args_after': s:Args() })\n\n    let errorformat =\n        \\ '%Wline %l column %v - Warning: %m,' .\n        \\ '%Eline %l column %v - Error: %m,' .\n        \\ '%-G%.%#'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'defaults': {'bufnr': bufnr('')},\n        \\ 'returns': [0, 1, 2] })\n\n    \" filter out valid HTML5 from the errors\n    for e in loclist\n        if e['valid'] && s:IgnoreError(e['text']) == 1\n            let e['valid'] = 0\n        endif\n    endfor\n\n    return loclist\nendfunction \" }}}1\n\n\" Utilities {{{1\n\n\" TODO: join this with xhtml.vim for DRY's sake?\nfunction! s:TidyEncOptByFenc() \" {{{2\n    let TIDY_OPTS = {\n            \\ 'utf-8':        '-utf8',\n            \\ 'ascii':        '-ascii',\n            \\ 'latin1':       '-latin1',\n            \\ 'iso-2022-jp':  '-iso-2022',\n            \\ 'cp1252':       '-win1252',\n            \\ 'macroman':     '-mac',\n            \\ 'utf-16le':     '-utf16le',\n            \\ 'utf-16':       '-utf16',\n            \\ 'big5':         '-big5',\n            \\ 'cp932':        '-shiftjis',\n            \\ 'sjis':         '-shiftjis',\n            \\ 'cp850':        '-ibm858',\n        \\ }\n    return get(TIDY_OPTS, &fileencoding, '-utf8')\nendfunction \" }}}2\n\nfunction! s:IgnoreError(text) \" {{{2\n    for item in s:IGNORE_ERRORS + g:syntastic_html_tidy_ignore_errors\n        if stridx(a:text, item) != -1\n            return 1\n        endif\n    endfor\n    return 0\nendfunction \" }}}2\n\nfunction! s:NewTags(name) \" {{{2\n    return syntastic#util#shescape(join( s:{toupper(a:name)} + g:syntastic_html_tidy_{a:name}, ',' ))\nendfunction \" }}}2\n\nfunction! s:Args() \" {{{2\n    let args = s:TidyEncOptByFenc() .\n        \\ ' --new-blocklevel-tags ' . s:NewTags('blocklevel_tags') .\n        \\ ' --new-inline-tags ' . s:NewTags('inline_tags') .\n        \\ ' --new-empty-tags ' . s:NewTags('empty_tags') .\n        \\ ' -e'\n    return args\nendfunction \" }}}2\n\n\" }}}1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'html',\n    \\ 'name': 'tidy'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/html/validator.vim",
    "content": "\"============================================================================\n\"File:        validator.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_html_validator_checker')\n    finish\nendif\nlet g:loaded_syntastic_html_validator_checker=1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\n\" Constants {{{1\n\nlet s:DEFAULTS = {\n    \\ 'api':      'https://validator.nu/',\n    \\ 'nsfilter': '',\n    \\ 'parser':   '',\n    \\ 'schema':   '' }\n\nlet s:CONTENT_TYPE = {\n    \\ 'html': 'text/html',\n    \\ 'svg':  'image/svg+xml',\n    \\ 'xhtm': 'application/xhtml+xml' }\n\n\" }}}1\n\n\" @vimlint(EVL101, 1, l:api)\n\" @vimlint(EVL101, 1, l:nsfilter)\n\" @vimlint(EVL101, 1, l:parser)\n\" @vimlint(EVL101, 1, l:schema)\nfunction! SyntaxCheckers_html_validator_GetLocList() dict \" {{{1\n    let buf = bufnr('')\n    let type = self.getFiletype()\n    let fname = syntastic#util#shescape(fnamemodify(bufname(buf), ':p'))\n\n    for key in keys(s:DEFAULTS)\n        let l:{key} = syntastic#util#var(type . '_validator_' . key, get(s:DEFAULTS, key))\n    endfor\n    let ctype = get(s:CONTENT_TYPE, type, '')\n\n    \" vint: -ProhibitUsingUndeclaredVariable\n    let makeprg = self.getExecEscaped() . ' -q -L -s --compressed -F out=gnu -F asciiquotes=yes' .\n        \\ (nsfilter !=# '' ? ' -F nsfilter=' . syntastic#util#shescape(nsfilter) : '') .\n        \\ (parser !=# '' ? ' -F parser=' . parser : '') .\n        \\ (schema !=# '' ? ' -F schema=' . syntastic#util#shescape(schema) : '') .\n        \\ ' -F doc=@' . fname .\n            \\ (ctype !=# '' ? '\\;type=' . ctype : '') .\n            \\ '\\;filename=' . fname .\n        \\ ' ' . api\n    \" vint: ProhibitUsingUndeclaredVariable\n\n    let errorformat =\n        \\ '%E\"%f\":%l: %trror: %m,' .\n        \\ '%E\"%f\":%l-%\\d%\\+: %trror: %m,' .\n        \\ '%E\"%f\":%l%\\%.%c: %trror: %m,' .\n        \\ '%E\"%f\":%l%\\%.%c-%\\d%\\+%\\%.%\\d%\\+: %trror: %m,' .\n        \\ '%E\"%f\":%l: %trror fatal: %m,' .\n        \\ '%E\"%f\":%l-%\\d%\\+: %trror fatal: %m,' .\n        \\ '%E\"%f\":%l%\\%.%c: %trror fatal: %m,' .\n        \\ '%E\"%f\":%l%\\%.%c-%\\d%\\+%\\%.%\\d%\\+: %trror fatal: %m,' .\n        \\ '%W\"%f\":%l: info %tarning: %m,' .\n        \\ '%W\"%f\":%l-%\\d%\\+: info %tarning: %m,' .\n        \\ '%W\"%f\":%l%\\%.%c: info %tarning: %m,' .\n        \\ '%W\"%f\":%l%\\%.%c-%\\d%\\+%\\%.%\\d%\\+: info %tarning: %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'preprocess': 'validator',\n        \\ 'returns': [0] })\nendfunction \" }}}1\n\" @vimlint(EVL101, 0, l:schema)\n\" @vimlint(EVL101, 0, l:parser)\n\" @vimlint(EVL101, 0, l:nsfilter)\n\" @vimlint(EVL101, 0, l:api)\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'html',\n    \\ 'name': 'validator',\n    \\ 'exec': 'curl' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/html/w3.vim",
    "content": "\"============================================================================\n\"File:        w3.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Martin Grenfell <martin.grenfell at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_html_w3_checker')\n    finish\nendif\nlet g:loaded_syntastic_html_w3_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\n\" Constants {{{1\n\nlet s:DEFAULTS = {\n    \\ 'html': {\n        \\ 'ctype':   'text/html',\n        \\ 'doctype': 'HTML5' },\n    \\ 'svg': {\n        \\ 'ctype':   'image/svg+xml',\n        \\ 'doctype': 'SVG 1.1' },\n    \\ 'xhtml': {\n        \\ 'ctype':   'application/xhtml+xml',\n        \\ 'doctype': 'XHTML 1.1' } }\n\n\" }}}1\n\n\" @vimlint(EVL101, 1, l:ctype)\n\" @vimlint(EVL101, 1, l:doctype)\nfunction! SyntaxCheckers_html_w3_GetLocList() dict \" {{{1\n    let buf = bufnr('')\n    let type = self.getFiletype()\n    let fname = syntastic#util#shescape(fnamemodify(bufname(buf), ':p'))\n    let api = syntastic#util#var(type . '_w3_api', 'https://validator.w3.org/check')\n\n    for key in keys(s:DEFAULTS[type])\n        let l:{key} = syntastic#util#var(type . '_w3_' . key, get(s:DEFAULTS[type], key))\n    endfor\n\n    \" vint: -ProhibitUsingUndeclaredVariable\n    let makeprg = self.getExecEscaped() . ' -q -L -s --compressed -F output=json' .\n        \\ (doctype !=# '' ? ' -F doctype=' . syntastic#util#shescape(doctype) : '') .\n        \\ ' -F uploaded_file=@' . fname .\n            \\ '\\;type=' . ctype .\n            \\ '\\;filename=' . fname .\n        \\ ' ' . api\n    \" vint: ProhibitUsingUndeclaredVariable\n\n    let errorformat =\n        \\ '%A %\\+{,' .\n        \\ '%C %\\+\"lastLine\": %l\\,%\\?,' .\n        \\ '%C %\\+\"lastColumn\": %c\\,%\\?,' .\n        \\ '%C %\\+\"message\": \"%m\"\\,%\\?,' .\n        \\ '%C %\\+\"type\": \"%trror\"\\,%\\?,' .\n        \\ '%-G %\\+\"type\": \"%tnfo\"\\,%\\?,' .\n        \\ '%C %\\+\"subtype\": \"%tarning\"\\,%\\?,' .\n        \\ '%Z %\\+}\\,,' .\n        \\ '%-G%.%#'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'defaults': {'bufnr': bufnr('')},\n        \\ 'returns': [0] })\n\n    for e in loclist\n        let e['text'] = substitute(e['text'], '\\m\\\\\\([\\\"]\\)', '\\1', 'g')\n    endfor\n\n    return loclist\nendfunction \" }}}1\n\" @vimlint(EVL104, 0, l:doctype)\n\" @vimlint(EVL101, 0, l:ctype)\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'html',\n    \\ 'name': 'w3',\n    \\ 'exec': 'curl' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/jade/jade_lint.vim",
    "content": "\"============================================================================\n\"File:        jade_lint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_jade_jade_lint_checker')\n    finish\nendif\nlet g:loaded_syntastic_jade_jade_lint_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'jade',\n    \\ 'name': 'jade_lint',\n    \\ 'exec': 'jade-lint',\n    \\ 'redirect': 'pug/pug_lint'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/java/checkstyle.vim",
    "content": "\"============================================================================\n\"File:        checkstyle.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Dmitry Geurkov <d.geurkov at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\" Tested with checkstyle 5.5\n\"============================================================================\n\nif exists('g:loaded_syntastic_java_checkstyle_checker')\n    finish\nendif\nlet g:loaded_syntastic_java_checkstyle_checker = 1\n\nif !exists('g:syntastic_java_checkstyle_classpath')\n    let g:syntastic_java_checkstyle_classpath = 'checkstyle-6.10.1-all.jar'\nendif\n\nif !exists('g:syntastic_java_checkstyle_conf_file')\n    let g:syntastic_java_checkstyle_conf_file = 'sun_checks.xml'\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_java_checkstyle_IsAvailable() dict\n    if !executable(self.getExec())\n        return 0\n    endif\n\n    let conf_file = expand(g:syntastic_java_checkstyle_conf_file, 1)\n    call self.log('filereadable(' . string(conf_file) . ') = ' . filereadable(conf_file))\n\n    return filereadable(conf_file)\nendfunction\n\nfunction! SyntaxCheckers_java_checkstyle_GetLocList() dict\n\n    let buf = bufnr('')\n\n    \" classpath\n    if !exists('s:sep')\n        let s:sep = syntastic#util#isRunningWindows() || has('win32unix') ? ';' : ':'\n    endif\n    let classpath = join(map( split(g:syntastic_java_checkstyle_classpath, s:sep, 1), 'expand(v:val, 1)' ), s:sep)\n    call self.log('classpath =', classpath)\n\n    \" forced options\n    let opts = []\n    if classpath !=# ''\n        call extend(opts, ['-cp', classpath])\n    endif\n    call extend(opts, [\n        \\ 'com.puppycrawl.tools.checkstyle.Main',\n        \\ '-c', expand(g:syntastic_java_checkstyle_conf_file, 1),\n        \\ '-f', 'xml' ])\n\n    \" filename\n    let fname = syntastic#util#shescape( fnamemodify(bufname(buf), ':p:h') . syntastic#util#Slash() . fnamemodify(bufname(buf), ':t') )\n    if has('win32unix')\n        let fname = substitute(syntastic#util#system('cygpath -m ' . fname), '\\m\\%x00', '', 'g')\n    endif\n\n    let makeprg = self.makeprgBuild({ 'args_after': opts, 'fname': fname })\n\n    let errorformat = '%f:%t:%l:%c:%m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'preprocess': 'checkstyle',\n        \\ 'subtype': 'Style' })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'java',\n    \\ 'name': 'checkstyle',\n    \\ 'exec': 'java'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/java/javac.vim",
    "content": "\"============================================================================\n\"File:        javac.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Jochen Keil <jochen.keil at gmail dot com>\n\"             Dmitry Geurkov <d.geurkov at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_java_javac_checker')\n    finish\nendif\nlet g:loaded_syntastic_java_javac_checker = 1\nlet g:syntastic_java_javac_maven_pom_tags = ['build', 'properties']\nlet g:syntastic_java_javac_maven_pom_properties = {}\nlet s:has_maven = 0\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\n\" Checker options {{{1\n\nif !exists('g:syntastic_java_javac_executable')\n    let g:syntastic_java_javac_executable = 'javac'\nendif\nlet g:syntastic_java_javac_exec = g:syntastic_java_javac_executable\n\nif !exists('g:syntastic_java_maven_executable')\n    let g:syntastic_java_maven_executable = 'mvn'\nendif\n\nif !exists('g:syntastic_java_javac_options')\n    let g:syntastic_java_javac_options = '-Xlint'\nendif\n\nif !exists('g:syntastic_java_maven_options')\n    let g:syntastic_java_maven_options = ''\nendif\n\nif !exists('g:syntastic_java_javac_classpath')\n    let g:syntastic_java_javac_classpath = ''\nendif\n\nif !exists('g:syntastic_java_javac_delete_output')\n    let g:syntastic_java_javac_delete_output = 1\nendif\n\nif !exists('g:syntastic_java_javac_autoload_maven_classpath')\n    let g:syntastic_java_javac_autoload_maven_classpath = 1\nendif\n\nif !exists('g:syntastic_java_javac_config_file_enabled')\n    let g:syntastic_java_javac_config_file_enabled = 0\nendif\n\nif !exists('g:syntastic_java_javac_config_file')\n    let g:syntastic_java_javac_config_file = '.syntastic_javac_config'\nendif\n\nif !exists('g:syntastic_java_javac_custom_classpath_command')\n    let g:syntastic_java_javac_custom_classpath_command = ''\nendif\n\nif !exists('g:syntastic_java_javac_maven_pom_ftime')\n    let g:syntastic_java_javac_maven_pom_ftime = {}\nendif\n\nif !exists('g:syntastic_java_javac_maven_pom_classpath')\n    let g:syntastic_java_javac_maven_pom_classpath = {}\nendif\n\n\" }}}1\n\n\" Constants {{{1\n\nlet s:_FILE_SHORTCUTS = {\n        \\ '%FILE_PATH%':  '%:p',\n        \\ '%FILE_NAME%':  '%:t',\n        \\ '%FILE_DIR%':   '%:p:h',\n    \\ }\nlockvar! s:_FILE_SHORTCUTS\n\n\" }}}1\n\n\" Commands {{{1\n\ncommand! SyntasticJavacEditClasspath call s:EditClasspath()\ncommand! SyntasticJavacEditConfig    call s:EditConfig()\n\n\" }}}1\n\nfunction! SyntaxCheckers_java_javac_IsAvailable() dict \" {{{1\n    let s:has_maven = executable(expand(g:syntastic_java_maven_executable, 1))\n    return executable(expand(g:syntastic_java_javac_executable, 1))\nendfunction \" }}}1\n\nfunction! SyntaxCheckers_java_javac_GetLocList() dict \" {{{1\n    let javac_opts = g:syntastic_java_javac_options\n\n    let output_dir = ''\n    if g:syntastic_java_javac_delete_output\n        let output_dir = syntastic#util#tmpdir()\n        let javac_opts .= ' -d ' . syntastic#util#shescape(output_dir)\n    endif\n\n    \" load classpath from config file\n    if g:syntastic_java_javac_config_file_enabled\n        call s:LoadConfigFile()\n    endif\n\n\n    \" add classpathes to javac_classpath {{{2\n    let javac_classpath = ''\n\n    for path in split(g:syntastic_java_javac_classpath, s:ClassSep())\n        if path !=# ''\n            try\n                let ps = glob(path, 1, 1)\n            catch\n                let ps = split(glob(path, 1), \"\\n\")\n            endtry\n            if type(ps) == type([])\n                for p in ps\n                    let javac_classpath = s:AddToClasspath(javac_classpath, p)\n                endfor\n            else\n                let javac_classpath = s:AddToClasspath(javac_classpath, ps)\n            endif\n        endif\n    endfor\n\n    if s:has_maven && g:syntastic_java_javac_autoload_maven_classpath\n        if !g:syntastic_java_javac_delete_output\n            let javac_opts .= ' -d ' . syntastic#util#shescape(s:MavenOutputDirectory())\n        endif\n        let javac_classpath = s:AddToClasspath(javac_classpath, s:GetMavenClasspath())\n    endif\n    \" }}}2\n\n    \" load custom classpath {{{2\n    if g:syntastic_java_javac_custom_classpath_command !=# ''\n        \" Pre-process the classpath command string a little.\n        let classpath_command = g:syntastic_java_javac_custom_classpath_command\n        for [key, val] in items(s:_FILE_SHORTCUTS)\n            let classpath_command = substitute(classpath_command, '\\V' . key, syntastic#util#shexpand(val), 'g')\n        endfor\n        let lines = syntastic#util#system(classpath_command)\n        if syntastic#util#isRunningWindows() || has('win32unix')\n            let lines = substitute(lines, \"\\r\\n\", \"\\n\", 'g')\n        endif\n        for l in split(lines, \"\\n\")\n            let javac_classpath = s:AddToClasspath(javac_classpath, l)\n        endfor\n    endif\n\n    if javac_classpath !=# ''\n        let javac_opts .= ' -cp ' . syntastic#util#shexpand(javac_classpath)\n    endif\n    \" }}}2\n\n    let fname = expand('%:p:h', 1) . syntastic#util#Slash() . expand ('%:t', 1)\n\n    if has('win32unix')\n        let fname = syntastic#util#CygwinPath(fname)\n    endif\n\n    let makeprg = self.makeprgBuild({\n        \\ 'args': javac_opts,\n        \\ 'fname': syntastic#util#shescape(fname) })\n\n    \" unashamedly stolen from *errorformat-javac* (quickfix.txt) and modified to include error types\n    let errorformat =\n        \\ '%E%f:%l: error: %m,'.\n        \\ '%W%f:%l: warning: %m,'.\n        \\ '%E%f:%l: %m,'.\n        \\ '%Z%p^,'.\n        \\ '%-G%.%#'\n\n    if output_dir !=# ''\n        silent! call mkdir(output_dir, 'p')\n    endif\n    let errors = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'postprocess': ['cygwinRemoveCR'] })\n\n    if output_dir !=# ''\n        call syntastic#util#rmrf(output_dir)\n    endif\n    return errors\n\nendfunction \" }}}1\n\n\" Utilities {{{1\n\nfunction! s:RemoveCarriageReturn(line) \" {{{2\n    return substitute(a:line, \"\\r\", '', 'g')\nendfunction \" }}}2\n\nfunction! s:ClassSep() \" {{{2\n    return (syntastic#util#isRunningWindows() || has('win32unix')) ? ';' : ':'\nendfunction \" }}}2\n\nfunction! s:AddToClasspath(classpath, path) \" {{{2\n    if a:path ==# ''\n        return a:classpath\n    endif\n    return (a:classpath !=# '') ? a:classpath . s:ClassSep() . a:path : a:path\nendfunction \" }}}2\n\nfunction! s:SplitClasspath(classpath) \" {{{2\n    return split(a:classpath, s:ClassSep())\nendfunction \" }}}2\n\nfunction! s:LoadConfigFile() \" {{{2\n    if filereadable(expand(g:syntastic_java_javac_config_file, 1))\n        execute 'source ' . fnameescape(expand(g:syntastic_java_javac_config_file, 1))\n    endif\nendfunction \" }}}2\n\nfunction! s:SaveClasspath() \" {{{2\n    \" build classpath from lines\n    let path = ''\n    let lines = getline(1, '$')\n    for l in lines\n        let path = s:AddToClasspath(path, l)\n    endfor\n    \" save classpath to config file\n    if g:syntastic_java_javac_config_file_enabled\n        if filereadable(expand(g:syntastic_java_javac_config_file, 1))\n            \" load lines from config file\n            let lines = readfile(expand(g:syntastic_java_javac_config_file, 1))\n            \" strip g:syntastic_java_javac_classpath options from config file lines\n            let i = 0\n            while i < len(lines)\n                if match(lines[i], 'g:syntastic_java_javac_classpath') != -1\n                    call remove(lines, i)\n                else\n                    let i += 1\n                endif\n            endwhile\n        else\n            let lines = []\n        endif\n        \" add new g:syntastic_java_javac_classpath option to config\n        call add(lines, 'let g:syntastic_java_javac_classpath = ' . string(path))\n        \" save config file lines\n        call writefile(lines, expand(g:syntastic_java_javac_config_file, 1))\n    endif\n    \" set new classpath\n    let g:syntastic_java_javac_classpath = path\n    let &modified = 0\nendfunction \" }}}2\n\nfunction! s:EditClasspath() \" {{{2\n    let command = 'syntastic javac classpath'\n    let winnr = bufwinnr('^' . command . '$')\n    if winnr < 0\n        let path = []\n        let pathlines = split(g:syntastic_java_javac_classpath, \"\\n\")\n        for p in pathlines\n            call extend(path, s:SplitClasspath(p))\n        endfor\n        execute (len(path) + 5) . 'sp ' . fnameescape(command)\n\n        augroup syntastic\n            autocmd BufWriteCmd <buffer> call s:SaveClasspath() | bwipeout\n        augroup END\n\n        setlocal buftype=acwrite bufhidden=wipe nobuflisted noswapfile nowrap number\n        for p in path\n            call append(line('$') - 1, p)\n        endfor\n        let &modified = 0\n    else\n        execute winnr . 'wincmd w'\n    endif\nendfunction \" }}}2\n\nfunction! s:SaveConfig() \" {{{2\n    \" get lines\n    let lines = getline(1, '$')\n    if g:syntastic_java_javac_config_file_enabled\n        \" save config file lines\n        call writefile(lines, expand(g:syntastic_java_javac_config_file, 1))\n    endif\n    let &modified = 0\nendfunction \" }}}2\n\nfunction! s:EditConfig() \" {{{2\n    if !g:syntastic_java_javac_config_file_enabled\n        return\n    endif\n\n    let command = 'syntastic javac config'\n    let winnr = bufwinnr('^' . command . '$')\n    if winnr < 0\n        let lines = []\n        if filereadable(expand(g:syntastic_java_javac_config_file, 1))\n            let lines = readfile(expand(g:syntastic_java_javac_config_file, 1))\n        endif\n        execute (len(lines) + 5) . 'sp ' . fnameescape(command)\n\n        augroup syntastic\n            autocmd BufWriteCmd <buffer> call s:SaveConfig() | bwipeout\n        augroup END\n\n        setlocal ft=vim buftype=acwrite bufhidden=wipe nobuflisted noswapfile nowrap number\n        for l in lines\n            call append(line('$') - 1, l)\n        endfor\n        let &modified = 0\n    else\n        execute winnr . 'wincmd w'\n    endif\nendfunction \" }}}2\n\nfunction! s:GetMavenProperties() \" {{{2\n    let mvn_properties = {}\n    let pom = syntastic#util#findFileInParent('pom.xml', expand('%:p:h', 1))\n    if s:has_maven && filereadable(pom)\n        if !has_key(g:syntastic_java_javac_maven_pom_properties, pom)\n            let mvn_cmd = syntastic#util#shexpand(g:syntastic_java_maven_executable) .\n                \\ ' -f ' . syntastic#util#shescape(pom) .\n                \\ ' ' . g:syntastic_java_maven_options\n            let mvn_is_managed_tag = 1\n            let mvn_settings_output = split(syntastic#util#system(mvn_cmd . ' help:effective-pom'), \"\\n\")\n            let current_path = 'project'\n            for line in mvn_settings_output\n                let matches = matchlist(line, '\\m^\\s*<\\([a-zA-Z0-9\\-\\.]\\+\\)>\\s*$')\n                if mvn_is_managed_tag && !empty(matches)\n                    let mvn_is_managed_tag = index(g:syntastic_java_javac_maven_pom_tags, matches[1]) >= 0\n                    let current_path .= '.' . matches[1]\n                else\n                    let matches = matchlist(line, '\\m^\\s*</\\([a-zA-Z0-9\\-\\.]\\+\\)>\\s*$')\n                    if !empty(matches)\n                        let mvn_is_managed_tag = index(g:syntastic_java_javac_maven_pom_tags, matches[1]) < 0\n                        let current_path  = substitute(current_path, '\\m\\.' . matches[1] . '$', '', '')\n                    else\n                        let matches = matchlist(line, '\\m^\\s*<\\([a-zA-Z0-9\\-\\.]\\+\\)>\\(.\\+\\)</[a-zA-Z0-9\\-\\.]\\+>\\s*$')\n                        if mvn_is_managed_tag && !empty(matches)\n                            let mvn_properties[current_path . '.' . matches[1]] = matches[2]\n                        endif\n                    endif\n                endif\n            endfor\n            let g:syntastic_java_javac_maven_pom_properties[pom] = mvn_properties\n        endif\n        return g:syntastic_java_javac_maven_pom_properties[pom]\n    endif\n    return mvn_properties\nendfunction \" }}}2\n\nfunction! s:GetMavenClasspath() \" {{{2\n    let pom = syntastic#util#findFileInParent('pom.xml', expand('%:p:h', 1))\n    if s:has_maven && filereadable(pom)\n        if !has_key(g:syntastic_java_javac_maven_pom_ftime, pom) || g:syntastic_java_javac_maven_pom_ftime[pom] != getftime(pom)\n            let mvn_cmd = syntastic#util#shexpand(g:syntastic_java_maven_executable) .\n                \\ ' -f ' . syntastic#util#shescape(pom) .\n                \\ ' ' . g:syntastic_java_maven_options\n            let mvn_classpath_output = split(syntastic#util#system(mvn_cmd . ' dependency:build-classpath -DincludeScope=test'), \"\\n\")\n            let mvn_classpath = ''\n            let class_path_next = 0\n\n            for line in mvn_classpath_output\n                if class_path_next == 1\n                    let mvn_classpath = s:RemoveCarriageReturn(line)\n                    break\n                endif\n                if stridx(line, 'Dependencies classpath:') >= 0\n                    let class_path_next = 1\n                endif\n            endfor\n\n            let mvn_properties = s:GetMavenProperties()\n\n            let sep = syntastic#util#Slash()\n            let output_dir = get(mvn_properties, 'project.build.outputDirectory', join(['target', 'classes'], sep))\n            let mvn_classpath = s:AddToClasspath(mvn_classpath, output_dir)\n\n            let test_output_dir = get(mvn_properties, 'project.build.testOutputDirectory', join(['target', 'test-classes'], sep))\n            let mvn_classpath = s:AddToClasspath(mvn_classpath, test_output_dir)\n\n            let g:syntastic_java_javac_maven_pom_ftime[pom] = getftime(pom)\n            let g:syntastic_java_javac_maven_pom_classpath[pom] = mvn_classpath\n        endif\n        return g:syntastic_java_javac_maven_pom_classpath[pom]\n    endif\n    return ''\nendfunction \" }}}2\n\nfunction! s:MavenOutputDirectory() \" {{{2\n    let pom = syntastic#util#findFileInParent('pom.xml', expand('%:p:h', 1))\n    if s:has_maven && filereadable(pom)\n        let mvn_properties = s:GetMavenProperties()\n        let output_dir = get(mvn_properties, 'project.properties.build.dir', getcwd())\n\n        let sep = syntastic#util#Slash()\n        let src_main_dir = get(mvn_properties, 'project.build.sourceDirectory', join(['src', 'main', 'java'], sep))\n        let src_test_dir = get(mvn_properties, 'project.build.testsourceDirectory', join(['src', 'test', 'java'], sep))\n        if stridx(expand('%:p:h', 1), src_main_dir) >= 0\n            let output_dir = get(mvn_properties, 'project.build.outputDirectory', join ([output_dir, 'target', 'classes'], sep))\n        endif\n        if stridx(expand('%:p:h', 1), src_test_dir) >= 0\n            let output_dir = get(mvn_properties, 'project.build.testOutputDirectory', join([output_dir, 'target', 'test-classes'], sep))\n        endif\n\n        if has('win32unix')\n            let output_dir = syntastic#util#CygwinPath(output_dir)\n        endif\n        return output_dir\n    endif\n    return '.'\nendfunction \" }}}2\n\n\" }}}1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'java',\n    \\ 'name': 'javac'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/javascript/closurecompiler.vim",
    "content": "\"============================================================================\n\"File:        closurecompiler.vim\n\"Description: Javascript syntax checker - using Google Closure Compiler\n\"Maintainer:  Motohiro Takayama <mootoh at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_javascript_closurecompiler_checker')\n    finish\nendif\nlet g:loaded_syntastic_javascript_closurecompiler_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_javascript_closurecompiler_IsAvailable() dict\n    call syntastic#log#deprecationWarn('javascript_closure_compiler_path', 'javascript_closurecompiler_path')\n\n    if !executable(self.getExec())\n        return 0\n    endif\n\n    let s:has_script = exists('g:syntastic_javascript_closurecompiler_script')\n    if s:has_script\n        return 1\n    endif\n\n    let cp = get(g:, 'syntastic_javascript_closurecompiler_path', '')\n    call self.log('g:syntastic_javascript_closurecompiler_path =', cp)\n\n    let jar = expand(cp, 1)\n    call self.log('filereadable(' . string(jar) . ') = ' . filereadable(jar))\n\n    return filereadable(jar)\nendfunction\n\nfunction! SyntaxCheckers_javascript_closurecompiler_GetLocList() dict\n    call syntastic#log#deprecationWarn('javascript_closure_compiler_options', 'javascript_closurecompiler_args')\n    call syntastic#log#deprecationWarn('javascript_closure_compiler_file_list', 'javascript_closurecompiler_file_list')\n\n    let buf = bufnr('')\n    let flist = expand(syntastic#util#bufVar(buf, 'javascript_closurecompiler_file_list'), 1)\n    if filereadable(flist)\n        let file_list = map( readfile(flist), 'expand(v:var, 1)' )\n    else\n        let file_list = [bufname(buf)]\n    endif\n\n    let makeprg = self.makeprgBuild({\n        \\ 'exe_after': (s:has_script ? [] : ['-jar', expand(g:syntastic_javascript_closurecompiler_path, 1)]),\n        \\ 'args_after': '--js',\n        \\ 'fname': file_list })\n\n    let errorformat =\n        \\ '%-GOK,'.\n        \\ '%E%f:%l: ERROR - %m,'.\n        \\ '%W%f:%l: WARNING - %m,'.\n        \\ '%Z%p^'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'javascript',\n    \\ 'name': 'closurecompiler',\n    \\ 'exec': get(g:, 'syntastic_javascript_closurecompiler_script', 'java')})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/javascript/eslint.vim",
    "content": "\"============================================================================\n\"File:        eslint.vim\n\"Description: Javascript syntax checker - using eslint\n\"Maintainer:  Maksim Ryzhikov <rv.maksim at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_javascript_eslint_checker')\n    finish\nendif\nlet g:loaded_syntastic_javascript_eslint_checker = 1\n\nif !exists('g:syntastic_javascript_eslint_sort')\n    let g:syntastic_javascript_eslint_sort = 1\nendif\n\nif !exists('g:syntastic_javascript_eslint_generic')\n    let g:syntastic_javascript_eslint_generic = 0\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_javascript_eslint_IsAvailable() dict\n    if g:syntastic_javascript_eslint_generic\n        call self.log('generic eslint, exec =', self.getExec())\n    endif\n\n    if !executable(self.getExec())\n        return 0\n    endif\n    return g:syntastic_javascript_eslint_generic || syntastic#util#versionIsAtLeast(self.getVersion(), [0, 1])\nendfunction\n\nfunction! SyntaxCheckers_javascript_eslint_GetLocList() dict\n    if !g:syntastic_javascript_eslint_generic\n        call syntastic#log#deprecationWarn('javascript_eslint_conf', 'javascript_eslint_args',\n            \\ \"'--config ' . syntastic#util#shexpand(OLD_VAR)\")\n    endif\n\n    let makeprg = self.makeprgBuild({ 'args_before': (g:syntastic_javascript_eslint_generic ? '' : '-f compact') })\n\n    let errorformat =\n        \\ '%E%f: line %l\\, col %c\\, Error - %m,' .\n        \\ '%W%f: line %l\\, col %c\\, Warning - %m'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'postprocess': ['guards'] })\n\n    if !g:syntastic_javascript_eslint_generic\n        if !exists('s:eslint_new')\n            let s:eslint_new = syntastic#util#versionIsAtLeast(self.getVersion(), [1])\n        endif\n\n        if !s:eslint_new\n            for e in loclist\n                let e['col'] += 1\n            endfor\n        endif\n    endif\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'javascript',\n    \\ 'name': 'eslint'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/javascript/flow.vim",
    "content": "\"============================================================================\n\"File:        flow.vim\n\"Description: Javascript syntax checker - using flow\n\"Maintainer:  Michael Robinson <mike@pagesofinterest.net>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_javascript_flow_checker')\n    finish\nendif\nlet g:loaded_syntastic_javascript_flow_checker = 1\n\nif !exists('g:syntastic_javascript_flow_sort')\n    let g:syntastic_javascript_flow_sort = 1\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_javascript_flow_IsAvailable() dict\n    if !executable(self.getExec())\n        return 0\n    endif\n    return syntastic#util#versionIsAtLeast(self.getVersion(self.getExecEscaped() . ' version'), [0, 34])\nendfunction\n\nfunction! SyntaxCheckers_javascript_flow_GetLocList() dict\n    let buf = bufnr('')\n    if syntastic#util#findFileInParent('.flowconfig', fnamemodify(bufname(buf), ':p:h')) ==# ''\n        return []\n    endif\n\n    let makeprg = self.makeprgBuild({\n        \\ 'exe': self.getExecEscaped() . ' status',\n        \\ 'args_after': '--quiet --show-all-errors --json' })\n\n    let errorformat =\n        \\ '%f:%l:%c:%n: %m,' .\n        \\ '%f:%l:%c: %m'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'preprocess': 'flow',\n        \\ 'defaults': {'type': 'E'} })\n\n    for e in loclist\n        if get(e, 'col', 0) && get(e, 'nr', 0)\n            let e['hl'] = '\\%>' . (e['col'] - 1) . 'c\\%<' . (e['nr'] + 1) . 'c'\n            let e['nr'] = 0\n        endif\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'javascript',\n    \\ 'name': 'flow'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/javascript/gjslint.vim",
    "content": "\"============================================================================\n\"File:        gjslint.vim\n\"Description: Javascript syntax checker - using gjslint\n\"Maintainer:  Martin Grenfell <martin.grenfell at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_javascript_gjslint_checker')\n    finish\nendif\nlet g:loaded_syntastic_javascript_gjslint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_javascript_gjslint_GetLocList() dict\n    call syntastic#log#deprecationWarn('javascript_gjslint_conf', 'javascript_gjslint_args')\n\n    let makeprg = self.makeprgBuild({\n        \\ 'args': '--nodebug_indentation',\n        \\ 'args_after': '--check_html --nosummary --unix_mode --nobeep' })\n\n    let errorformat =\n        \\ \"%f:%l:(New Error -%\\\\?\\%n) %m,\" .\n        \\ \"%f:%l:(-%\\\\?%n) %m,\" .\n        \\ \"%-G1 files checked,\" .\n        \\ \" no errors found.,\" .\n        \\ \"%-G%.%#\"\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'javascript',\n    \\ 'name': 'gjslint'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/javascript/jscs.vim",
    "content": "\"============================================================================\n\"File:        jscs.vim\n\"Description: Javascript syntax checker - using jscs\n\"Maintainer:  LCD 47 <lcd047@gmail.com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_javascript_jscs_checker')\n    finish\nendif\nlet g:loaded_syntastic_javascript_jscs_checker = 1\n\nif !exists('g:syntastic_javascript_jscs_sort')\n    let g:syntastic_javascript_jscs_sort = 1\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_javascript_jscs_IsAvailable() dict\n    if !executable(self.getExec())\n        return 0\n    endif\n    return syntastic#util#versionIsAtLeast(self.getVersion(), [2, 1])\nendfunction\n\nfunction! SyntaxCheckers_javascript_jscs_GetLocList() dict\n    let makeprg = self.makeprgBuild({\n        \\ 'args_after': '--no-colors --max-errors -1 --reporter json' })\n\n    let errorformat = '%f:%l:%c:%m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'subtype': 'Style',\n        \\ 'preprocess': 'jscs',\n        \\ 'defaults': {'type': 'E'},\n        \\ 'returns': [0, 2] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'javascript',\n    \\ 'name': 'jscs'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/javascript/jshint.vim",
    "content": "\"============================================================================\n\"File:        jshint.vim\n\"Description: Javascript syntax checker - using jshint\n\"Maintainer:  Martin Grenfell <martin.grenfell at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_javascript_jshint_checker')\n    finish\nendif\nlet g:loaded_syntastic_javascript_jshint_checker = 1\n\nif !exists('g:syntastic_javascript_jshint_sort')\n    let g:syntastic_javascript_jshint_sort = 1\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_javascript_jshint_IsAvailable() dict\n    call syntastic#log#deprecationWarn('jshint_exec', 'javascript_jshint_exec')\n    if !executable(self.getExec())\n        return 0\n    endif\n\n    let ver = self.getVersion()\n    let s:jshint_new = syntastic#util#versionIsAtLeast(ver, [1, 1])\n\n    return syntastic#util#versionIsAtLeast(ver, [1])\nendfunction\n\nfunction! SyntaxCheckers_javascript_jshint_GetLocList() dict\n    call syntastic#log#deprecationWarn('javascript_jshint_conf', 'javascript_jshint_args',\n        \\ \"'--config ' . syntastic#util#shexpand(OLD_VAR)\")\n\n    let makeprg = self.makeprgBuild({ 'args_after': (s:jshint_new ? '--verbose ' : '') })\n\n    let errorformat = s:jshint_new ?\n        \\ '%A%f: line %l\\, col %v\\, %m \\(%t%*\\d\\)' :\n        \\ '%E%f: line %l\\, col %v\\, %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'defaults': {'bufnr': bufnr('')},\n        \\ 'returns': [0, 2] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'javascript',\n    \\ 'name': 'jshint'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/javascript/jsl.vim",
    "content": "\"============================================================================\n\"File:        jsl.vim\n\"Description: Javascript syntax checker - using jsl\n\"Maintainer:  Martin Grenfell <martin.grenfell at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_javascript_jsl_checker')\n    finish\nendif\nlet g:loaded_syntastic_javascript_jsl_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_javascript_jsl_GetLocList() dict\n    call syntastic#log#deprecationWarn('javascript_jsl_conf', 'javascript_jsl_args',\n        \\ \"'-conf ' . syntastic#util#shexpand(OLD_VAR)\")\n\n    let makeprg = self.makeprgBuild({\n        \\ 'args_after': '-nologo -nofilelisting -nosummary -nocontext -process' })\n\n    let errorformat =\n        \\ '%W%f(%l): lint warning: %m,'.\n        \\ '%-Z%p^,'.\n        \\ '%W%f(%l): warning: %m,'.\n        \\ '%-Z%p^,'.\n        \\ '%E%f(%l): SyntaxError: %m,'.\n        \\ '%-Z%p^,'.\n        \\ '%-G'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'javascript',\n    \\ 'name': 'jsl'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/javascript/jslint.vim",
    "content": "\"============================================================================\n\"File:        jslint.vim\n\"Description: Javascript syntax checker - using jslint\n\"Maintainer:  Martin Grenfell <martin.grenfell at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_javascript_jslint_checker')\n    finish\nendif\n\nlet g:loaded_syntastic_javascript_jslint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_javascript_jslint_GetHighlightRegex(item)\n    let term = matchstr(a:item['text'], '\\mExpected .* and instead saw ''\\zs.*\\ze''')\n    if term !=# ''\n        let term = '\\V\\<' . escape(term, '\\') . '\\>'\n    endif\n    return term\nendfunction\n\nfunction! SyntaxCheckers_javascript_jslint_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args': '--white --nomen --regexp --plusplus --bitwise --newcap --sloppy --vars' })\n\n    let errorformat =\n        \\ '%E %##%\\d%\\+ %m,'.\n        \\ '%-Z%.%#Line %l\\, Pos %c,'.\n        \\ '%-G%.%#'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'defaults': {'bufnr': bufnr('')} })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'javascript',\n    \\ 'name': 'jslint'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/javascript/jsxhint.vim",
    "content": "\"============================================================================\n\"File:        jsxhint.vim\n\"Description: Javascript syntax checker - using jsxhint\n\"Maintainer:  Thomas Boyt <me@thomasboyt.com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_javascript_jsxhint_checker')\n    finish\nendif\nlet g:loaded_syntastic_javascript_jsxhint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_javascript_jsxhint_IsAvailable() dict \" {{{1\n    if !executable(self.getExec())\n        return 0\n    endif\n\n    let version_output = syntastic#util#system(self.getExecEscaped() . ' --version')\n    let parsed_ver = !v:shell_error && (version_output =~# '\\m^JSXHint\\>') ? syntastic#util#parseVersion(version_output) : []\n    if len(parsed_ver)\n        call self.setVersion(parsed_ver)\n    else\n        call syntastic#log#ndebug(g:_SYNTASTIC_DEBUG_LOCLIST, 'checker output:', split(version_output, \"\\n\", 1))\n        call syntastic#log#error(\"checker javascript/jsxhint: can't parse version string (abnormal termination?)\")\n    endif\n\n    return syntastic#util#versionIsAtLeast(parsed_ver, [0, 4, 1])\nendfunction \" }}}1\n\nfunction! SyntaxCheckers_javascript_jsxhint_GetLocList() dict \" {{{1\n    let makeprg = self.makeprgBuild({\n        \\ 'args_after': '--verbose' })\n\n    let errorformat = '%A%f: line %l\\, col %v\\, %m \\(%t%*\\d\\)'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'defaults': {'bufnr': bufnr('')} })\nendfunction \" }}}1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'javascript',\n    \\ 'name': 'jsxhint'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/javascript/lynt.vim",
    "content": "\"============================================================================\n\"File:        lynt.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047@gmail.com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_javascript_lynt_checker')\n    finish\nendif\nlet g:loaded_syntastic_javascript_lynt_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_javascript_lynt_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_after': '--json' })\n\n    let errorformat = '%f:%l:%c:%n:%m'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'preprocess': 'lynt',\n        \\ 'defaults': {'type': 'E'},\n        \\ 'returns': [0, 1] })\n\n    for e in loclist\n        if get(e, 'col', 0) && get(e, 'nr', 0)\n            let e['hl'] = '\\%>' . (e['col'] - 1) . 'c\\%<' . (e['nr']) . 'c'\n            let e['nr'] = 0\n        endif\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'javascript',\n    \\ 'name': 'lynt'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/javascript/mixedindentlint.vim",
    "content": "\"============================================================================\n\"File:        mixedindentlint.vim\n\"Description: Mixed indentation linter for vim\n\"Maintainer:  Payton Swick <payton@foolord.com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_javascript_mixedindentlint_checker')\n    finish\nendif\nlet g:loaded_syntastic_javascript_mixedindentlint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_javascript_mixedindentlint_GetLocList() dict\n    let makeprg = self.makeprgBuild({})\n\n    let errorformat = 'Line %l in \"%f\" %.%#'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'subtype': 'Style',\n        \\ 'defaults': { 'text': 'Indentation differs from rest of file' },\n        \\ 'returns': [0, 1] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'javascript',\n    \\ 'name': 'mixedindentlint'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/javascript/standard.vim",
    "content": "\"============================================================================\n\"File:        standard.vim\n\"Description: JavaScript syntax checker - using standard\n\"Maintainer:  LCD 47 <lcd047@gmail.com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_javascript_standard_checker')\n    finish\nendif\nlet g:loaded_syntastic_javascript_standard_checker = 1\n\nif !exists('g:syntastic_javascript_standard_generic')\n    let g:syntastic_javascript_standard_generic = 0\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_javascript_standard_IsAvailable() dict\n    if g:syntastic_javascript_standard_generic\n        call self.log('generic standard, exec =', self.getExec())\n    endif\n\n    if !executable(self.getExec())\n        return 0\n    endif\n    return g:syntastic_javascript_standard_generic || syntastic#util#versionIsAtLeast(self.getVersion(), [2, 6, 1])\nendfunction\n\nfunction! SyntaxCheckers_javascript_standard_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args': '-v' })\n\n    let errorformat = '  %f:%l:%c: %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'subtype': 'Style',\n        \\ 'defaults': {'type': 'W'},\n        \\ 'returns': [0, 1] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'javascript',\n    \\ 'name': 'standard'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/javascript/tern_lint.vim",
    "content": "\"============================================================================\n\"File:        tern_lint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047@gmail.com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_javascript_tern_lint_checker')\n    finish\nendif\nlet g:loaded_syntastic_javascript_tern_lint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_javascript_tern_lint_IsAvailable() dict\n    return has('byte_offset') && executable(self.getExec())\nendfunction\n\nfunction! SyntaxCheckers_javascript_tern_lint_GetLocList() dict\n    let makeprg = self.makeprgBuild({})\n\n    let errorformat = '%f:%t:%l:%c:%n:%m'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'preprocess': 'tern_lint',\n        \\ 'returns': [0] })\n\n    for e in loclist\n        if get(e, 'col', 0) && get(e, 'nr', 0)\n            let e['hl'] = '\\%>' . (e['col'] - 1) . 'c\\%<' . (e['nr'] + 1) . 'c'\n        endif\n        let e['nr'] = 0\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'javascript',\n    \\ 'name': 'tern_lint',\n    \\ 'exec': 'tern-lint' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/json/jsonlint.vim",
    "content": "\"============================================================================\n\"File:        jsonlint.vim\n\"Description: JSON syntax checker - using jsonlint\n\"Maintainer:  Miller Medeiros <contact at millermedeiros dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_json_jsonlint_checker')\n    finish\nendif\nlet g:loaded_syntastic_json_jsonlint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_json_jsonlint_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'post_args_after': '--compact' })\n\n    let errorformat =\n        \\ '%ELine %l:%c,'.\n        \\ '%Z\\\\s%#Reason: %m,'.\n        \\ '%C%.%#,'.\n        \\ '%f: line %l\\, col %c\\, %m,'.\n        \\ '%-G%.%#'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'defaults': {'bufnr': bufnr('')} })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'json',\n    \\ 'name': 'jsonlint'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/json/jsonval.vim",
    "content": "\"============================================================================\n\"File:        jsonval.vim\n\"Description: JSON syntax checker - using jsonval\n\"Maintainer:  Miller Medeiros <contact at millermedeiros dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_json_jsonval_checker')\n    finish\nendif\nlet g:loaded_syntastic_json_jsonval_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_json_jsonval_GetLocList() dict\n    \" based on https://gist.github.com/1196345\n    let makeprg = self.makeprgBuild({})\n\n    let errorformat =\n        \\ '%E%f: %m at line %l,' .\n        \\ '%-G%.%#'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'defaults': {'bufnr': bufnr('')} })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'json',\n    \\ 'name': 'jsonval'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/less/less-lint.coffee",
    "content": "#!/usr/bin/env node\n\nfs = require 'fs'\nless = require 'less'\nargs = process.argv.slice(1)\noptions = {}\n\nargs = args.filter (arg) ->\n    match = arg.match(/^-I(.+)$/)\n    if match\n        options.paths.push(match[1]);\n        return false\n\n    match = arg.match(/^--?([a-z][\\-0-9a-z]*)(?:=([^\\s]+))?$/i)\n    if match\n        arg = match[1]\n    else\n        return arg\n\n    switch arg\n        when 'strict-imports' then options.strictImports = true\n        when 'include-path'\n            options.paths = match[2].split(if os.type().match(/Windows/) then ';' else ':')\n                .map (p) ->\n                    if p\n                        return path.resolve(process.cwd(), p)\n        when 'O0' then options.optimization = 0\n        when 'O1' then options.optimization = 1\n        when 'O2' then options.optimization = 2\n\noptions.filename = args[1]\n\nparser = new(less.Parser) options\n\nfs.readFile(options.filename, 'utf-8', (err,data) ->\n    parser.parse(data, (err, tree) ->\n        if err\n            less.writeError err\n            process.exit(1)\n    )\n)\n"
  },
  {
    "path": "syntax_checkers/less/less-lint.js",
    "content": "// Generated by CoffeeScript 1.3.3\n(function() {\n  var args, fs, less, options, parser;\n\n  fs = require('fs');\n\n  less = require('less');\n\n  args = process.argv.slice(1);\n\n  options = {};\n\n  args = args.filter(function(arg) {\n    var match;\n    match = arg.match(/^-I(.+)$/);\n    if (match) {\n      options.paths.push(match[1]);\n      return false;\n    }\n    match = arg.match(/^--?([a-z][\\-0-9a-z]*)(?:=([^\\s]+))?$/i);\n    if (match) {\n      arg = match[1];\n    } else {\n      return arg;\n    }\n    switch (arg) {\n      case 'strict-imports':\n        return options.strictImports = true;\n      case 'include-path':\n        return options.paths = match[2].split(os.type().match(/Windows/) ? ';' : ':').map(function(p) {\n          if (p) {\n            return path.resolve(process.cwd(), p);\n          }\n        });\n      case 'O0':\n        return options.optimization = 0;\n      case 'O1':\n        return options.optimization = 1;\n      case 'O2':\n        return options.optimization = 2;\n    }\n  });\n\n  options.filename = args[1];\n\n  parser = new less.Parser(options);\n\n  fs.readFile(options.filename, 'utf-8', function(err, data) {\n    return parser.parse(data, function(err, tree) {\n      if (err) {\n        less.writeError(err);\n        return process.exit(1);\n      }\n    });\n  });\n\n}).call(this);\n"
  },
  {
    "path": "syntax_checkers/less/lessc.vim",
    "content": "\"============================================================================\n\"File:        less.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Julien Blanchard <julien at sideburns dot eu>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_less_lessc_checker')\n    finish\nendif\nlet g:loaded_syntastic_less_lessc_checker = 1\n\nif !exists('g:syntastic_less_use_less_lint')\n    let g:syntastic_less_use_less_lint = 0\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nlet s:node_file = 'node ' . syntastic#util#shescape(expand('<sfile>:p:h', 1) . syntastic#util#Slash() . 'less-lint.js')\n\nfunction! SyntaxCheckers_less_lessc_IsAvailable() dict\n    call self.log('g:syntastic_less_use_less_lint =', g:syntastic_less_use_less_lint)\n    return g:syntastic_less_use_less_lint ? executable('node') : executable(self.getExec())\nendfunction\n\nfunction! SyntaxCheckers_less_lessc_GetLocList() dict\n    call syntastic#log#deprecationWarn('less_options', 'less_lessc_args')\n\n    let makeprg = self.makeprgBuild({\n        \\ 'exe': (g:syntastic_less_use_less_lint ? s:node_file : self.getExecEscaped()),\n        \\ 'args_after': '--no-color',\n        \\ 'tail': '> ' . syntastic#util#DevNull() })\n\n    let errorformat =\n        \\ '%m in %f on line %l\\, column %c:,' .\n        \\ '%m in %f:%l:%c,' .\n        \\ '%-G%.%#'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'postprocess': ['guards'],\n        \\ 'defaults': {'bufnr': bufnr(''), 'text': 'Syntax error'} })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'less',\n    \\ 'name': 'lessc'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/less/recess.vim",
    "content": "\"============================================================================\n\"File:        recess.vim\n\"Description: Syntax checking plugin for syntastic using `recess`\n\"             (http://twitter.github.io/recess/).\n\"Maintainer:  Tim Carry <tim at pixelastic dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_less_recess_checker')\n    finish\nendif\nlet g:loaded_syntastic_less_recess_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_less_recess_GetLocList() dict\n    let makeprg = self.makeprgBuild({\n        \\ 'post_args_after': '--format=compact --stripColors' })\n\n    let errorformat =\n        \\ '%E%m in %f,' .\n        \\ '%Z %#%l.%.%#,' .\n        \\ '%f:%l:%m,' .\n        \\ '%-G%.%#'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'less',\n    \\ 'name': 'recess'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/lex/flex.vim",
    "content": "\"============================================================================\n\"File:        lex.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_lex_flex_checker')\n    finish\nendif\nlet g:loaded_syntastic_lex_flex_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_lex_flex_GetHighlightRegex(item)\n    let term = matchstr(a:item['text'],\n        \\ '\\m^\\(unrecognized %option\\|bad <start condition>\\|bad character\\( class expression\\)\\=\\): \\zs.*')\n    if term ==# ''\n        let term = matchstr(a:item['text'],\n            \\ '\\m^\\(Definition value for\\|undefined definition\\) \\zs{[^}]\\+}\\ze')\n    endif\n\n    return term !=# '' ? '\\V' . escape(term, '\\') : ''\nendfunction\n\nfunction! SyntaxCheckers_lex_flex_GetLocList() dict\n    let makeprg = self.makeprgBuild({\n        \\ 'args_after': syntastic#c#NullOutput() })\n\n    let errorformat = '%f:%l: %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'lex',\n    \\ 'name': 'flex'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/limbo/limbo.vim",
    "content": "\"============================================================================\n\"File:        limbo.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Alex Efros <powerman-asdf@ya.ru>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_limbo_limbo_checker')\n    finish\nendif\nlet g:loaded_syntastic_limbo_limbo_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_limbo_limbo_GetLocList() dict\n    let buf = bufnr('')\n    let include = $INFERNO_HOME !=# '' ? '-I$INFERNO_HOME ' : ''\n    \" don't generate .dis in current dir while checking syntax,\n    \" .dis should be generated by `mk`\n    let output = filereadable('mkfile') ? (' ' . syntastic#c#NullOutput()) : ''\n\n    let makeprg = self.makeprgBuild({ 'args_before': include . '-w' . output })\n\n    let errorformat = '%E%f:%l:%m'\n    if bufname(buf) =~# '\\m\\.m$'\n        let errorformat = '%-G%f:%l: near ` EOF ` : no implementation module,' . errorformat\n    endif\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'limbo',\n    \\ 'name': 'limbo' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/lisp/clisp.vim",
    "content": "\"============================================================================\n\"File:        lisp.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Karl Yngve Lervåg <karl.yngve@lervag.net>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_lisp_clisp_checker')\n    finish\nendif\nlet g:loaded_syntastic_lisp_clisp_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_lisp_clisp_GetLocList() dict\n    let buf = bufnr('')\n    let tmpdir = syntastic#util#tmpdir()\n\n    let makeprg = self.makeprgBuild({\n        \\ 'args_after': '-q',\n        \\ 'fname_before': '-c',\n        \\ 'post_args_after': ['-o', tmpdir] })\n\n    let errorformat  =\n        \\ '%-G;%.%#,' .\n        \\ '%W%>WARNING:%.%# line %l : %m,' .\n        \\ '%Z  %#%m,' .\n        \\ '%W%>WARNING:%.%# lines %l%\\%.%\\%.%\\d%\\+ : %m,' .\n        \\ '%Z  %#%m,' .\n        \\ '%E%>The following functions were %m,' .\n        \\ '%Z %m,' .\n        \\ '%-G%.%#'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'defaults': {'bufnr': buf} })\n\n    call syntastic#util#rmrf(tmpdir)\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'lisp',\n    \\ 'name': 'clisp'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/llvm/llvm.vim",
    "content": "\"============================================================================\n\"File:        llvm.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Andrew Kelley <superjoe30@gmail.com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_llvm_llvm_checker')\n    finish\nendif\nlet g:loaded_syntastic_llvm_llvm_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_llvm_llvm_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_after': syntastic#c#NullOutput() })\n\n    let errorformat = 'llc: %f:%l:%c: %trror: %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'llvm',\n    \\ 'name': 'llvm',\n    \\ 'exec': 'llc'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/lua/luac.vim",
    "content": "\"============================================================================\n\"File:        lua.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Gregor Uhlenheuer <kongo2002 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_lua_luac_checker')\n    finish\nendif\nlet g:loaded_syntastic_lua_luac_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_lua_luac_GetHighlightRegex(pos)\n    let result = ''\n    let near = matchstr(a:pos['text'], '\\mnear ''\\zs[^'']\\+\\ze''')\n    if near !=# ''\n        if near ==# '<eof>'\n            let p = getpos('$')\n            let a:pos['lnum'] = p[1]\n            let a:pos['col'] = p[2]\n            let result = '\\%' . p[2] . 'c'\n        else\n            let result = '\\V' . escape(near, '\\')\n        endif\n\n        \" XXX the following piece of code is evil, and is likely to break\n        \" in future versions of syntastic; enable it at your own risk :)\n\n        \"let open = matchstr(a:pos['text'], '\\m(to close ''\\zs[^'']\\+\\ze'' at line [0-9]\\+)')\n        \"if open != ''\n        \"    let line = str2nr(matchstr(a:pos['text'], '\\m(to close ''[^'']\\+'' at line \\zs[0-9]\\+\\ze)'))\n        \"    let group = a:pos['type'] ==? 'E' ? 'SyntasticError' : 'SyntasticWarning'\n        \"    call matchadd(group, '\\%' . line . 'l\\V' . escape(open, '\\'))\n        \"endif\n    endif\n    return result\nendfunction\n\nfunction! SyntaxCheckers_lua_luac_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_after': '-p' })\n\n    let errorformat = '%*\\f: %#%f:%l: %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'defaults': { 'bufnr': bufnr(''), 'type': 'E' } })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'lua',\n    \\ 'name': 'luac'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/lua/luacheck.vim",
    "content": "\"============================================================================\n\"File:        luacheck.vim\n\"Description: Lua static analysis using luacheck\n\"Maintainer:  Thiago Bastos <tbastos@tbastos.com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_lua_luacheck_checker')\n    finish\nendif\nlet g:loaded_syntastic_lua_luacheck_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_lua_luacheck_GetHighlightRegex(item)\n    let term = matchstr(a:item['text'], '\\m''\\zs\\S\\+\\ze''')\n    if term !=# ''\n        return '\\V\\<' . escape(term, '\\') . '\\>'\n    endif\n\n    let term = matchstr(a:item['text'], '\\m\\(accessing undefined\\|setting non-standard global\\|' .\n                \\ 'setting non-module global\\|unused global\\) variable \\zs\\S\\+')\n    if term ==# ''\n        let term = matchstr(a:item['text'], '\\mvariable \\zs\\S\\+\\ze was previously defined')\n    endif\n    if term ==# ''\n        let term = matchstr(a:item['text'], '\\munused \\(variable\\|argument\\|loop variable\\) \\zs\\S\\+')\n    endif\n    if term ==# ''\n        let term = matchstr(a:item['text'], '\\m\\(value assigned to variable\\|value of argument\\|' .\n                \\ 'value of loop variable\\) \\zs\\S\\+')\n    endif\n    if term ==# ''\n        let term = matchstr(a:item['text'], '\\mvariable \\zs\\S\\+\\ze is never set')\n    endif\n\n    return term !=# '' ? '\\V\\<' . escape(term, '\\') . '\\>' : ''\nendfunction\n\nfunction! SyntaxCheckers_lua_luacheck_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_after': '--no-color' })\n\n    let errorformat =\n        \\ '%f:%l:%c: %m,'.\n        \\ '%-G%.%#'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'subtype': 'Style',\n        \\ 'defaults': { 'type': 'W' },\n        \\ 'returns': [0, 1, 2] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'lua',\n    \\ 'name': 'luacheck' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/markdown/mdl.vim",
    "content": "\"============================================================================\n\"File:        mdl.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Charles Beynon <etothepiipower at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_markdown_mdl_checker')\n    finish\nendif\nlet g:loaded_syntastic_markdown_mdl_checker = 1\n\nif !exists('g:syntastic_markdown_mdl_sort')\n    let g:syntastic_markdown_mdl_sort = 1\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_markdown_mdl_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args': '--warnings' })\n\n    let errorformat =\n        \\ '%E%f:%\\s%\\=%l: %m,' .\n        \\ '%E%f:%l:%c %m,' .\n        \\ '%E%f:%l %m,' .\n        \\ '%W%f: Kramdown Warning: %m found on line %l'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'subtype': 'Style' })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'markdown',\n    \\ 'name': 'mdl'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/markdown/proselint.vim",
    "content": "\"============================================================================\n\"File:        proselint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_markdown_proselint_checker')\n    finish\nendif\nlet g:loaded_syntastic_markdown_proselint_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'markdown',\n    \\ 'name': 'proselint',\n    \\ 'redirect': 'text/proselint'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/markdown/remark_lint.vim",
    "content": "\"============================================================================\n\"File:        remark.vim\n\"Description: Syntax checking plugin for syntastic using remark-lint\n\"             (https://github.com/remarkjs/remark-lint)\n\"Maintainer:  Tim Carry <tim at pixelastic dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_markdown_remark_lint_checker')\n    finish\nendif\nlet g:loaded_syntastic_markdown_remark_lint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_markdown_remark_lint_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_before': '--quiet --no-stdout --no-color' })\n\n    let errorformat =\n        \\ '%f:%t:%l:%c:%n:%m,' .\n        \\ '%f:%t:%l:%c:%m'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'preprocess': 'remark_lint',\n        \\ 'subtype': 'Style',\n        \\ 'returns': [0] })\n\n    for e in loclist\n        if get(e, 'col', 0) && get(e, 'nr', 0)\n            let e['hl'] = '\\%>' . (e['col'] - 1) . 'c\\%<' . (e['nr'] + 1) . 'c'\n            let e['nr'] = 0\n        endif\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'markdown',\n    \\ 'name': 'remark_lint',\n    \\ 'exec': 'remark'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/markdown/textlint.vim",
    "content": "\"============================================================================\n\"File:        textlint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_markdown_textlint_checker')\n    finish\nendif\nlet g:loaded_syntastic_markdown_textlint_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'markdown',\n    \\ 'name': 'textlint',\n    \\ 'redirect': 'text/textlint'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/matlab/mlint.vim",
    "content": "\"============================================================================\n\"File:        matlab.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Jason Graham <jason at the-graham dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_matlab_mlint_checker')\n    finish\nendif\nlet g:loaded_syntastic_matlab_mlint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_matlab_mlint_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_after': '-id' })\n\n    let errorformat =\n        \\ 'L %l (C %c): %*[a-zA-Z0-9]: %m,'.\n        \\ 'L %l (C %c-%*[0-9]): %*[a-zA-Z0-9]: %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'defaults': {'bufnr': bufnr('')} })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'matlab',\n    \\ 'name': 'mlint'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/mercury/mmc.vim",
    "content": "\"============================================================================\n\"File:        mercury.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Joshua Rahm (joshuarahm@gmail.com)\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_mercury_mmc_checker')\n    finish\nendif\nlet g:loaded_syntastic_mercury_mmc_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_mercury_mmc_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_before': '-e' })\n\n    let errorformat =\n        \\ '%C%f:%l:  %m,' .\n        \\ '%E%f:%l: %m,' .\n        \\ '%-G%.%#'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\n\n    for e in loclist\n        if stridx(e['text'], ' warning:') >= 0\n            let e['type'] = 'W'\n        endif\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'mercury',\n    \\ 'name': 'mmc'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/nasm/nasm.vim",
    "content": "\"============================================================================\n\"File:        nasm.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Håvard Pettersson <haavard.pettersson at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_nasm_nasm_checker')\n    finish\nendif\nlet g:loaded_syntastic_nasm_nasm_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_nasm_nasm_GetLocList() dict\n    let buf = bufnr('')\n    let makeprg = self.makeprgBuild({\n        \\ 'args_after': '-X gnu' .\n        \\       ' -I ' . syntastic#util#shescape(fnamemodify(bufname(buf), ':p:h') . syntastic#util#Slash()) .\n        \\       ' ' . syntastic#c#NullOutput() })\n\n    let errorformat = '%f:%l: %t%*[^:]: %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'nasm',\n    \\ 'name': 'nasm'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/nix/nix.vim",
    "content": "\"============================================================================\n\"File:        nix.vim\n\"Description: Check nix syntax using 'nix-instantiate --eval-only'\n\"Maintainer:  Tim Cuthbertson <tim@gfxmonk.net>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\"\n\"\nif exists('g:loaded_syntastic_nix_nix_checker')\n    finish\nendif\nlet g:loaded_syntastic_nix_nix_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_nix_nix_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_after': '--parse-only' })\n\n    let errorformat =\n        \\ '%f:%l:%c:%m,' .\n        \\ '%f:%l:%m,' .\n        \\ '%f:%m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'defaults': {'type': 'e'},\n        \\ 'preprocess': 'nix' })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'nix',\n    \\ 'name': 'nix',\n    \\ 'exec': 'nix-instantiate' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/nroff/igor.vim",
    "content": "\"============================================================================\n\"File:        igor.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_nroff_igor_checker')\n    finish\nendif\nlet g:loaded_syntastic_nroff_igor_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'nroff',\n    \\ 'name': 'igor',\n    \\ 'redirect': 'docbk/igor'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/nroff/mandoc.vim",
    "content": "\"============================================================================\n\"File:        mandoc.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_nroff_mandoc_checker')\n    finish\nendif\nlet g:loaded_syntastic_nroff_mandoc_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_nroff_mandoc_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_after': '-Tlint' })\n\n    let errorformat =\n        \\ '%E%f:%l:%c: %tRROR: %m,' .\n        \\ '%W%f:%l:%c: %tARNING: %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'returns': [0, 2, 3, 4] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'nroff',\n    \\ 'name': 'mandoc'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/nroff/proselint.vim",
    "content": "\"============================================================================\n\"File:        proselint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_nroff_proselint_checker')\n    finish\nendif\nlet g:loaded_syntastic_nroff_proselint_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'nroff',\n    \\ 'name': 'proselint',\n    \\ 'redirect': 'text/proselint'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/objc/gcc.vim",
    "content": "\"============================================================================\n\"File:        objc.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Gregor Uhlenheuer <kongo2002 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_objc_gcc_checker')\n    finish\nendif\nlet g:loaded_syntastic_objc_gcc_checker = 1\n\nif !exists('g:syntastic_objc_compiler_options')\n    let g:syntastic_objc_compiler_options = '-std=gnu99'\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_objc_gcc_IsAvailable() dict\n    if !exists('g:syntastic_objc_compiler')\n        let g:syntastic_objc_compiler = executable(self.getExec()) ? self.getExec() : 'clang'\n    endif\n    call self.log('g:syntastic_objc_compiler =', g:syntastic_objc_compiler)\n    return executable(expand(g:syntastic_objc_compiler, 1))\nendfunction\n\nfunction! SyntaxCheckers_objc_gcc_GetLocList() dict\n    return syntastic#c#GetLocList('objc', 'gcc', {\n        \\ 'errorformat':\n        \\     '%-G%f:%s:,' .\n        \\     '%-G%f:%l: %#error: %#(Each undeclared identifier is reported only%.%#,' .\n        \\     '%-G%f:%l: %#error: %#for each function it appears%.%#,' .\n        \\     '%-GIn file included%.%#,'.\n        \\     '%-G %#from %f:%l\\,,' .\n        \\     '%f:%l:%c: %trror: %m,' .\n        \\     '%f:%l:%c: %tarning: %m,' .\n        \\     '%f:%l:%c: %m,' .\n        \\     '%f:%l: %trror: %m,' .\n        \\     '%f:%l: %tarning: %m,' .\n        \\     '%f:%l: %m',\n        \\ 'main_flags': '-x objective-c -fsyntax-only',\n        \\ 'header_flags': '-x objective-c-header -lobjc',\n        \\ 'header_names': '\\m\\.h$' })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'objc',\n    \\ 'name': 'gcc' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/objc/oclint.vim",
    "content": "\"============================================================================\n\"File:        oclint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  \"UnCO\" Lin <undercooled aT lavabit com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_objc_oclint_checker')\n    finish\nendif\nlet g:loaded_syntastic_objc_oclint_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'objc',\n    \\ 'name': 'oclint',\n    \\ 'redirect': 'c/oclint'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/objcpp/gcc.vim",
    "content": "\"============================================================================\n\"File:        objcpp.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Gregor Uhlenheuer <kongo2002 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_objcpp_gcc_checker')\n    finish\nendif\nlet g:loaded_syntastic_objcpp_gcc_checker = 1\n\nif !exists('g:syntastic_objcpp_compiler_options')\n    let g:syntastic_objcpp_compiler_options = '-std=gnu99'\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_objcpp_gcc_IsAvailable() dict\n    if !exists('g:syntastic_objcpp_compiler')\n        let g:syntastic_objcpp_compiler = executable(self.getExec()) ? self.getExec() : 'clang'\n    endif\n    call self.log('g:syntastic_objcpp_compiler =', g:syntastic_objcpp_compiler)\n    return executable(expand(g:syntastic_objcpp_compiler, 1))\nendfunction\n\nfunction! SyntaxCheckers_objcpp_gcc_GetLocList() dict\n    return syntastic#c#GetLocList('objcpp', 'gcc', {\n        \\ 'errorformat':\n        \\     '%-G%f:%s:,' .\n        \\     '%-G%f:%l: %#error: %#(Each undeclared identifier is reported only%.%#,' .\n        \\     '%-G%f:%l: %#error: %#for each function it appears%.%#,' .\n        \\     '%-GIn file included%.%#,'.\n        \\     '%-G %#from %f:%l\\,,' .\n        \\     '%f:%l:%c: %trror: %m,' .\n        \\     '%f:%l:%c: %tarning: %m,' .\n        \\     '%f:%l:%c: %m,' .\n        \\     '%f:%l: %trror: %m,' .\n        \\     '%f:%l: %tarning: %m,' .\n        \\     '%f:%l: %m',\n        \\ 'main_flags': '-x objective-c++ -fsyntax-only',\n        \\ 'header_flags': '-x objective-c++-header -lobjc',\n        \\ 'header_names': '\\m\\.h$' })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'objcpp',\n    \\ 'name': 'gcc' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/objcpp/oclint.vim",
    "content": "\"============================================================================\n\"File:        oclint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  \"UnCO\" Lin <undercooled aT lavabit com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_objcpp_oclint_checker')\n    finish\nendif\nlet g:loaded_syntastic_objcpp_oclint_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'objcpp',\n    \\ 'name': 'oclint',\n    \\ 'redirect': 'c/oclint'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/ocaml/camlp4o.vim",
    "content": "\"============================================================================\n\"File:        ocaml.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Török Edwin <edwintorok at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_ocaml_camlp4o_checker')\n    finish\nendif\nlet g:loaded_syntastic_ocaml_camlp4o_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\n\" Checker options {{{1\n\nif !exists('g:syntastic_ocaml_use_ocamlc') || !executable('ocamlc')\n    let g:syntastic_ocaml_use_ocamlc = 0\nendif\n\nif !exists('g:syntastic_ocaml_use_janestreet_core')\n    let g:syntastic_ocaml_use_janestreet_core = 0\nendif\n\nif !exists('g:syntastic_ocaml_janestreet_core_dir')\n    let g:syntastic_ocaml_janestreet_core_dir = '.'\nendif\n\nif !exists('g:syntastic_ocaml_use_ocamlbuild') || !executable('ocamlbuild')\n    let g:syntastic_ocaml_use_ocamlbuild = 0\nendif\n\n\" }}}1\n\nfunction! SyntaxCheckers_ocaml_camlp4o_IsAvailable() dict \" {{{1\n    let s:ocamlpp = get(g:, 'syntastic_ocaml_camlp4r', 0) ? 'camlp4r' : 'camlp4o'\n    return executable(s:ocamlpp)\nendfunction \" }}}1\n\nfunction! SyntaxCheckers_ocaml_camlp4o_GetLocList() dict \" {{{1\n    let buf = bufnr('')\n    let makeprg = s:GetMakeprg(buf)\n    if makeprg ==# ''\n        return []\n    endif\n\n    let errorformat =\n        \\ '%WWarning: File \"%f\"\\, line %l\\, chars %c-%n:,'.\n        \\ '%WWarning: line %l\\, chars %c-%n:,'.\n        \\ '%AFile \"%f\"\\, line %l\\, characters %c-%n:,'.\n        \\ '%AFile \"%f\"\\, line %l\\, characters %c-%*\\d (end at line %*\\d\\, character %*\\d):,'.\n        \\ '%AFile \"%f\"\\, line %l\\, character %c:,'.\n        \\ '%AFile \"%f\"\\, line %l\\, character %c:%m,'.\n        \\ '%-GPreprocessing error %.%#,'.\n        \\ '%-GCommand exited %.%#,'.\n        \\ '%C%tarning %*\\d: %m,'.\n        \\ '%C%m,'.\n        \\ '%-G+%.%#'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'defaults': {'bufnr': buf} })\n\n    for e in loclist\n        if get(e, 'col', 0) && get(e, 'nr', 0)\n            let e['hl'] = '\\%>' . (e['col'] - 1) . 'c\\%<' . (e['nr'] + 1) . 'c'\n            let e['nr'] = 0\n        endif\n    endfor\n\n    return loclist\nendfunction \" }}}1\n\n\" Utilities {{{1\n\nfunction! s:GetMakeprg(buf) \" {{{2\n    return\n        \\ g:syntastic_ocaml_use_ocamlc ? g:syntastic_ocaml_use_ocamlc :\n        \\ (g:syntastic_ocaml_use_ocamlbuild && isdirectory('_build')) ? s:GetOcamlcMakeprg(a:buf) :\n        \\ s:GetOtherMakeprg(a:buf)\nendfunction \" }}}2\n\nfunction! s:GetOcamlcMakeprg(buf) \" {{{2\n    let build_cmd = g:syntastic_ocaml_use_janestreet_core ?\n        \\ 'ocamlc -I ' . syntastic#util#shexpand(g:syntastic_ocaml_janestreet_core_dir) : 'ocamlc'\n    let build_cmd .= ' -c ' . syntastic#util#shescape(bufname(a:buf))\n    return build_cmd\nendfunction \" }}}2\n\nfunction! s:GetOcamlBuildMakeprg(buf) \" {{{2\n    return 'ocamlbuild -quiet -no-log -tag annot,' . s:ocamlpp . ' -no-links -no-hygiene -no-sanitize ' .\n        \\ syntastic#util#shexpand(fnamemodify(bufname(a:buf), ':r')) . '.cmi'\nendfunction \" }}}2\n\nfunction! s:GetOtherMakeprg(buf) \" {{{2\n    \"TODO: give this function a better name?\n    \"\n    \"TODO: should use throw/catch instead of returning an empty makeprg\n\n    let fname = bufname(a:buf)\n    let extension = fnamemodify(fname, ':e')\n    let makeprg = ''\n\n    if stridx(extension, 'mly') >= 0 && executable('menhir')\n        \" ocamlyacc output can't be redirected, so use menhir\n        let makeprg = 'menhir --only-preprocess ' . syntastic#util#shescape(fname) . ' >' . syntastic#util#DevNull()\n    elseif stridx(extension,'mll') >= 0 && executable('ocamllex')\n        let makeprg = 'ocamllex -q ' . syntastic#c#NullOutput() . ' ' . syntastic#util#shescape(fname)\n    else\n        let makeprg = 'camlp4o ' . syntastic#c#NullOutput() . ' ' . syntastic#util#shescape(fname)\n    endif\n\n    return makeprg\nendfunction \" }}}2\n\n\" }}}1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'ocaml',\n    \\ 'name': 'camlp4o'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/perl/perl.vim",
    "content": "\"============================================================================\n\"File:        perl.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Anthony Carapetis <anthony.carapetis at gmail dot com>,\n\"             Eric Harmon <http://eharmon.net>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\"\n\" Security:\n\"\n\" This checker runs 'perl -c' against your file, which in turn executes\n\" any BEGIN, UNITCHECK, and CHECK blocks, and any use statements in\n\" your file.  This is probably fine if you wrote the file yourself,\n\" but it can be a problem if you're trying to check third party files.\n\" If you are 100% willing to let Vim run the code in your file, set\n\" g:syntastic_enable_perl_checker to 1 in your vimrc to enable this\n\" checker:\n\"\n\"   let g:syntastic_enable_perl_checker = 1\n\"\n\" Reference:\n\"\n\" - http://perldoc.perl.org/perlrun.html#*-c*\n\nif exists('g:loaded_syntastic_perl_perl_checker')\n    finish\nendif\nlet g:loaded_syntastic_perl_perl_checker = 1\n\nif !exists('g:syntastic_perl_lib_path')\n    let g:syntastic_perl_lib_path = []\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_perl_perl_IsAvailable() dict \" {{{1\n    if !exists('g:syntastic_perl_perl_exec') && exists('g:syntastic_perl_interpreter')\n        let g:syntastic_perl_perl_exec = g:syntastic_perl_interpreter\n    endif\n\n    \" don't call executable() here, to allow things like\n    \" let g:syntastic_perl_interpreter='/usr/bin/env perl'\n    silent! call syntastic#util#system(self.getExecEscaped() . ' -e ' . syntastic#util#shescape('exit(0)'))\n    return v:shell_error == 0\nendfunction \" }}}1\n\nfunction! SyntaxCheckers_perl_perl_GetLocList() dict \" {{{1\n    let buf = bufnr('')\n    if type(g:syntastic_perl_lib_path) == type('')\n        call syntastic#log#oneTimeWarn('variable g:syntastic_perl_lib_path should be a list')\n        let includes = split(g:syntastic_perl_lib_path, ',')\n    else\n        let includes = copy(syntastic#util#bufVar(buf, 'perl_lib_path', []))\n    endif\n    let shebang = syntastic#util#parseShebang(buf)\n    let extra = map(includes, '\"-I\" . v:val') +\n        \\ (index(shebang['args'], '-T') >= 0 ? ['-T'] : []) +\n        \\ (index(shebang['args'], '-t') >= 0 ? ['-t'] : [])\n    let errorformat = '%f:%l:%m'\n\n    let makeprg = self.makeprgBuild({ 'args_before': ['-c', '-X '] + extra })\n\n    let errors = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'preprocess': 'perl',\n        \\ 'defaults': {'type': 'E'} })\n    if !empty(errors)\n        return errors\n    endif\n\n    let makeprg = self.makeprgBuild({ 'args_before': ['-c', '-Mwarnings'] + extra })\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'preprocess': 'perl',\n        \\ 'defaults': {'type': 'W'} })\nendfunction \" }}}1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'perl',\n    \\ 'name': 'perl',\n    \\ 'enable': 'enable_perl_checker'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/perl/perlcritic.vim",
    "content": "\"============================================================================\n\"File:        perlcritic.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_perl_perlcritic_checker')\n    finish\nendif\nlet g:loaded_syntastic_perl_perlcritic_checker = 1\n\nif !exists('g:syntastic_perl_perlcritic_thres')\n    let g:syntastic_perl_perlcritic_thres = 5\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_perl_perlcritic_GetLocList() dict\n    let makeprg = self.makeprgBuild({\n        \\ 'args_after': '--quiet --nocolor --verbose \"\\%s:\\%f:\\%l:\\%c:(\\%s) \\%m (\\%e)\\n\"' })\n\n    let errorformat = '%t:%f:%l:%c:%m'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'returns': [0, 2],\n        \\ 'subtype': 'Style' })\n\n    \" change error types according to the prescribed threshold\n    for e in loclist\n        let e['type'] = e['type'] < g:syntastic_perl_perlcritic_thres ? 'W' : 'E'\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'perl',\n    \\ 'name': 'perlcritic'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/perl/podchecker.vim",
    "content": "\"============================================================================\n\"File:        podchecker.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_perl_podchecker_checker')\n    finish\nendif\nlet g:loaded_syntastic_perl_podchecker_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'perl',\n    \\ 'name': 'podchecker',\n    \\ 'redirect': 'pod/podchecker'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/perl6/perl6.vim",
    "content": "\"============================================================================\n\"File:        perl6.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\n# Perl 6 is dead, long live Raku!\n\nif exists('g:loaded_syntastic_perl6_perl6_checker')\n    finish\nendif\nlet g:loaded_syntastic_perl6_perl6_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'perl6',\n    \\ 'name': 'perl6',\n    \\ 'redirect': 'raku/raku'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/php/php.vim",
    "content": "\"============================================================================\n\"File:        php.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Martin Grenfell <martin.grenfell at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_php_php_checker')\n    finish\nendif\nlet g:loaded_syntastic_php_php_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_php_php_GetHighlightRegex(item)\n    let term = matchstr(a:item['text'], \"\\\\munexpected '\\\\zs[^']\\\\+\\\\ze'\")\n    return term !=# '' ? '\\V' . escape(term, '\\') : ''\nendfunction\n\nfunction! SyntaxCheckers_php_php_GetLocList() dict\n    let makeprg = self.makeprgBuild({\n        \\ 'args': '-d error_reporting=E_ALL',\n        \\ 'args_after': '-l -d error_log= -d display_errors=1 -d log_errors=0 -d xdebug.cli_color=0' })\n\n    let errorformat =\n        \\ '%-GNo syntax errors detected in%.%#,'.\n        \\ 'Parse error: %#syntax %trror\\, %m in %f on line %l,'.\n        \\ 'Parse %trror: %m in %f on line %l,'.\n        \\ 'Fatal %trror: %m in %f on line %l,'.\n        \\ '%-G\\s%#,'.\n        \\ '%-GErrors parsing %.%#'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'postprocess': ['guards'] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'php',\n    \\ 'name': 'php'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/php/phpcs.vim",
    "content": "\"============================================================================\n\"File:        phpcs.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Martin Grenfell <martin.grenfell at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_php_phpcs_checker')\n    finish\nendif\nlet g:loaded_syntastic_php_phpcs_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_php_phpcs_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_after': '--report=csv' })\n\n    let errorformat =\n        \\ '%-GFile\\,Line\\,Column\\,Type\\,Message\\,Source\\,Severity%.%#,'.\n        \\ '\"%f\"\\,%l\\,%c\\,%t%*[a-zA-Z]\\,\"%m\"\\,%*[a-zA-Z0-9_.-]\\,%*[0-9]%.%#'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'subtype': 'Style' })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'php',\n    \\ 'name': 'phpcs' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/php/phplint.vim",
    "content": "\"============================================================================\n\"File:        phplint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_php_phplint_checker')\n    finish\nendif\nlet g:loaded_syntastic_php_phplint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_php_phplint_GetHighlightRegex(item)\n    let term = matchstr(a:item['text'], '\\munresolved function \\zs\\S\\+\\ze')\n    if term !=# ''\n        return '\\V' . escape(term, '\\')\n    endif\n    let term = matchstr(a:item['text'], '\\m\\(class\\|function\\|method\\) \\zs\\S\\+\\ze was declared as')\n    if term !=# ''\n        return '\\V' . escape(term, '\\')\n    endif\n    let term = matchstr(a:item['text'], '\\maccess forbidden to \\(private\\|protected\\) \\(class\\|constant\\|method\\|variable\\|\\(private\\|protected\\) property\\) \\zs\\S\\+\\ze')\n    if term !=# ''\n        return '\\V' . escape(term, '\\')\n    endif\n    let term = matchstr(a:item['text'], '\\musing deprecated \\(class\\|constant\\|method\\|property\\|variable\\) \\zs\\S\\+\\ze')\n    if term !=# ''\n        return '\\V' . escape(term, '\\')\n    endif\n    let term = matchstr(a:item['text'], '\\munresolved function \\zs\\S\\+\\ze')\n    if term !=# ''\n        return '\\V' . escape(term, '\\')\n    endif\n    let term = matchstr(a:item['text'], '\\munresolved function \\zs\\S\\+\\ze')\n    if term !=# ''\n        return '\\V' . escape(term, '\\')\n    endif\n    let term = matchstr(a:item['text'], '\\munresolved function \\zs\\S\\+\\ze')\n    return term !=# '' ? '\\V' . escape(term, '\\') : ''\nendfunction\n\nfunction! SyntaxCheckers_php_phplint_GetLocList() dict\n    let makeprg = self.makeprgBuild({\n        \\ 'args_after':\n        \\   '--print-file-name ' .\n        \\   '--print-line-numbers ' .\n        \\   '--print-column-number ' .\n        \\   '--print-errors ' .\n        \\   '--print-warnings ' .\n        \\   '--no-print-notices ' .\n        \\   '--no-print-context ' .\n        \\   '--no-print-source ' .\n        \\   '--tab-size ' . &tabstop })\n\n    let errorformat =\n        \\ '%E%f:%l:%v: %tRROR: %m,' .\n        \\ '%W%f:%l:%v: %tarning: %m,' .\n        \\ '%+C%\\t%.%#,' .\n        \\ '%-G%.%#'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'postprocess': ['compressWhitespace'],\n        \\ 'subtype': 'Style',\n        \\ 'returns': [0, 1] })\n\n    for e in loclist\n        let e['text'] = substitute(e['text'], '\\m \\(Hint\\|Examples\\):.*', '', '')\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'php',\n    \\ 'name': 'phplint',\n    \\ 'exec': 'phpl' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/php/phpmd.vim",
    "content": "\"============================================================================\n\"File:        phpmd.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Martin Grenfell <martin.grenfell at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_php_phpmd_checker')\n    finish\nendif\nlet g:loaded_syntastic_php_phpmd_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_php_phpmd_GetHighlightRegex(item)\n    let term = matchstr(a:item['text'], '\\m\\C^The \\S\\+ \\w\\+\\(()\\)\\= \\(has\\|is not\\|utilizes\\)')\n    if term !=# ''\n        return '\\V'.substitute(term, '\\m\\C^The \\S\\+ \\(\\w\\+\\)\\(()\\)\\= .*', '\\1', '')\n    endif\n    let term = matchstr(a:item['text'], '\\m\\C^Avoid \\(variables with short\\|excessively long variable\\) names like \\S\\+\\.')\n    if term !=# ''\n        return '\\V'.substitute(term, '\\m\\C^Avoid \\(variables with short\\|excessively long variable\\) names like \\(\\S\\+\\)\\..*', '\\2', '')\n    endif\n    let term = matchstr(a:item['text'], '\\m\\C^Avoid using short method names like \\S\\+::\\S\\+()\\.')\n    if term !=# ''\n        return '\\V'.substitute(term, '\\m\\C^Avoid using short method names like \\S\\+::\\(\\S\\+\\)()\\..*', '\\1', '')\n    endif\n    let term = matchstr(a:item['text'], '\\m\\C^\\S\\+ accesses the super-global variable ')\n    if term !=# ''\n        return '\\V'.substitute(term, '\\m\\C accesses the super-global variable .*$', '', '')\n    endif\n    let term = matchstr(a:item['text'], '\\m\\C^Constant \\S\\+ should be defined in uppercase')\n    if term !=# ''\n        return '\\V'.substitute(term, '\\m\\C^Constant \\(\\S\\+\\) should be defined in uppercase', '\\1', '')\n    endif\n    let term = matchstr(a:item['text'], \"\\\\m\\\\C^The '\\\\S\\\\+()' method which returns \")\n    if term !=# ''\n        return '\\V'.substitute(term, \"\\\\m\\\\C^The '\\\\(\\\\S\\\\+\\\\)()' method which returns.*\", '\\1', '')\n    endif\n    let term = matchstr(a:item['text'], '\\m\\C variable \\S\\+ should begin with ')\n    if term !=# ''\n        return '\\V'.substitute(term, '\\m\\C.* variable \\(\\S\\+\\) should begin with .*', '\\1', '')\n    endif\n    let term = matchstr(a:item['text'], \"\\\\m\\\\C^Avoid unused \\\\(private fields\\\\|local variables\\\\|private methods\\\\|parameters\\\\) such as '\\\\S\\\\+'\")\n    if term !=# ''\n        return '\\V'.substitute(term, \"\\\\m\\\\C^Avoid unused \\\\(private fields\\\\|local variables\\\\|private methods\\\\|parameters\\\\) such as '\\\\(\\\\S\\\\+\\\\)'.*\", '\\2', '')\n    endif\n    return ''\nendfunction\n\nfunction! SyntaxCheckers_php_phpmd_GetLocList() dict\n    let makeprg = self.makeprgBuild({\n        \\ 'post_args_before': 'text',\n        \\ 'post_args': 'codesize,design,unusedcode,naming' })\n\n    let errorformat = '%E%f:%l%\\s%#%m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'subtype' : 'Style' })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'php',\n    \\ 'name': 'phpmd'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/php/phpstan.vim",
    "content": "\"============================================================================\n\"File:        phpstan.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Przepompownia przepompownia@users.noreply.github.com\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_php_phpstan_checker')\n    finish\nendif\nlet g:loaded_syntastic_php_phpstan_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_php_phpstan_IsAvailable() dict\n    if !executable(self.getExec())\n        return 0\n    endif\n    return syntastic#util#versionIsAtLeast(self.getVersion(), [0, 8, 5])\nendfunction\n\nfunction! SyntaxCheckers_php_phpstan_GetLocList() dict\n    let makeprg = self.makeprgBuild({\n        \\ 'exe_after': 'analyse',\n        \\ 'args': '--level=5',\n        \\ 'args_after': '--error-format raw' })\n\n    let errorformat = '%f:%l:%m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'subtype' : 'Style' })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'php',\n    \\ 'name': 'phpstan'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/po/dennis.vim",
    "content": "\"============================================================================\n\"File:        dennis.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_po_dennis_checker')\n    finish\nendif\nlet g:loaded_syntastic_po_dennis_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_po_dennis_GetLocList() dict\n    let makeprg = self.makeprgBuild({\n        \\ 'exe_after': 'lint',\n        \\ 'post_args_after': '--reporter line' })\n\n    let errorformat = '%f:%l:%c:%t%n:%m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'subtype': 'Style',\n        \\ 'returns': [0, 1] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'po',\n    \\ 'name': 'dennis',\n    \\ 'exec': 'dennis-cmd' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/po/msgfmt.vim",
    "content": "\"============================================================================\n\"File:        msgfmt.vim\n\"Description: Syntax checking plugin for po files of gettext\n\"Maintainer:  Ryo Okubo <syucream1031@gmail.com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_po_msgfmt_checker')\n    finish\nendif\nlet g:loaded_syntastic_po_msgfmt_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_po_msgfmt_GetHighlightRegex(item)\n    let term = matchstr(a:item['text'], '\\mkeyword \"\\zs[^\"]\\+\\ze\" unknown')\n    return term !=# '' ? '\\V' . escape(term, '\\') : ''\nendfunction\n\nfunction! SyntaxCheckers_po_msgfmt_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_after': '-c ' . syntastic#c#NullOutput() })\n\n    let errorformat =\n        \\ '%W%f:%l: warning: %m,' .\n        \\ '%E%f:%l:%v: %m,' .\n        \\ '%E%f:%l: %m,' .\n        \\ '%+C %.%#,' .\n        \\ '%Z%p^,' .\n        \\ '%-G%.%#'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'postprocess': ['compressWhitespace'] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'po',\n    \\ 'name': 'msgfmt'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/pod/podchecker.vim",
    "content": "\"============================================================================\n\"File:        podchecker.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_pod_podchecker_checker')\n    finish\nendif\nlet g:loaded_syntastic_pod_podchecker_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_pod_podchecker_GetLocList() dict\n    let makeprg = self.makeprgBuild({})\n\n    let errorformat =\n        \\ '%W%[%#]%[%#]%[%#] WARNING: %m at line %l in file %f,' .\n        \\ '%W%[%#]%[%#]%[%#] WARNING: %m at line EOF in file %f,' .\n        \\ '%E%[%#]%[%#]%[%#] ERROR: %m at line %l in file %f,' .\n        \\ '%E%[%#]%[%#]%[%#] ERROR: %m at line EOF in file %f'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'returns': [0, 1, 2] })\n\n    for e in loclist\n        if e['valid'] && e['lnum'] == 0\n            let e['lnum'] = str2nr(matchstr(e['text'], '\\m\\<line \\zs\\d\\+\\ze'))\n        endif\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'pod',\n    \\ 'name': 'podchecker'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/pod/proselint.vim",
    "content": "\"============================================================================\n\"File:        proselint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_pod_proselint_checker')\n    finish\nendif\nlet g:loaded_syntastic_pod_proselint_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'pod',\n    \\ 'name': 'proselint',\n    \\ 'redirect': 'text/proselint'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/pug/pug_lint.vim",
    "content": "\"============================================================================\n\"File:        pug_lint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Ben Parnell <benjaminparnell.94@gmail.com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_pug_pug_lint_checker')\n    finish\nendif\nlet g:loaded_syntastic_pug_pug_lint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_pug_pug_lint_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_after': '-r inline' })\n\n    let errorformat = '%f:%l:%c %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'returns': [0, 2] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'pug',\n    \\ 'name': 'pug_lint',\n    \\ 'exec': 'pug-lint' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/puppet/puppet.vim",
    "content": "\"============================================================================\n\"File:        puppet.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Eivind Uggedal <eivind at uggedal dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_puppet_puppet_checker')\n    finish\nendif\nlet g:loaded_syntastic_puppet_puppet_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_puppet_puppet_GetLocList() dict\n    if !exists('s:puppet_new')\n        let s:puppet_new = syntastic#util#versionIsAtLeast(self.getVersion(), [2, 7, 0])\n    endif\n\n    let makeprg = self.makeprgBuild({\n        \\ 'args_before': (s:puppet_new ? 'parser validate --color=false' : '--color=false --parseonly') })\n\n    let errorformat =\n        \\ '%-Gerr: Try ''puppet help parser validate'' for usage,' .\n        \\ '%-GError: Try ''puppet help parser validate'' for usage,' .\n        \\ '%A%t%*[a-zA-Z]: %m at %f:%l:%c,' .\n        \\ '%A%t%*[a-zA-Z]: %m at %f:%l,'.\n        \\ '%A%t%*[a-zA-Z]: Could not parse for environment production: %m (file: %f\\, line: %l\\, column: %c)'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'puppet',\n    \\ 'name': 'puppet'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/puppet/puppetlint.vim",
    "content": "\"============================================================================\n\"File:        puppetlint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Eivind Uggedal <eivind at uggedal dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_puppet_puppetlint_checker')\n    finish\nendif\nlet g:loaded_syntastic_puppet_puppetlint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_puppet_puppetlint_IsAvailable() dict\n    if !executable(self.getExec())\n        return 0\n    endif\n    let s:puppetlint_new = syntastic#util#versionIsAtLeast(self.getVersion(), [1])\n    return syntastic#util#versionIsAtLeast(self.getVersion(), [0, 2])\nendfunction\n\nfunction! SyntaxCheckers_puppet_puppetlint_GetLocList() dict\n    call syntastic#log#deprecationWarn('puppet_lint_arguments', 'puppet_puppetlint_args')\n\n    let makeprg = self.makeprgBuild({\n        \\ 'args_after':\n        \\       '--log-format \"%{KIND} [%{check}] %{message} at %{fullpath}:' .\n        \\       (s:puppetlint_new ? '%{line}' : '%{linenumber}') . '\"' })\n\n    let errorformat = '%t%*[a-zA-Z] %m at %f:%l'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'puppet',\n    \\ 'name': 'puppetlint',\n    \\ 'exec': 'puppet-lint'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/python/bandit.vim",
    "content": "\"============================================================================\n\"File:        bandit\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_python_bandit_checker')\n    finish\nendif\nlet g:loaded_syntastic_python_bandit_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_python_bandit_GetLocList() dict\n    let makeprg = self.makeprgBuild({\n        \\ 'args_after': '--format json',\n        \\ 'tail': '2> ' . syntastic#util#DevNull() })\n\n    let errorformat = '%f:%l:%t:%n:%m'\n\n    let env = syntastic#util#isRunningWindows() ? {} : { 'TERM': 'dumb' }\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'env': env,\n        \\ 'preprocess': 'bandit',\n        \\ 'returns': [0, 1] })\n\n    for e in loclist\n        if e['type'] ==? 'I'\n            let e['type'] = 'W'\n            let e['subtype'] = 'Style'\n        endif\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'python',\n    \\ 'name': 'bandit' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/python/codec.py",
    "content": "#!/usr/bin/env python\n\nfrom __future__ import print_function\nfrom sys import argv, exit\n\nimport codecs\nimport re\nimport os\n\n\nif len(argv) != 2:\n    exit(1)\n\ntry:\n    with open(argv[1]) as fle:\n        text = fle.readlines()\n\n    if text:\n        match = re.match(r\"#\\s*coding\\s*:\\s*(?P<coding>\\w+)\", text[0])\n        if match:\n            text = codecs.lookup(match.groupdict()[\"coding\"]).incrementaldecoder().decode(\n                ''.join(text).encode('utf-8')).encode('utf-8')\n\n    if isinstance(text, list):\n        text = ''.join(text).encode('utf-8')\n\n    compile(text, argv[1], 'exec', 0, 1)\nexcept SyntaxError as err:\n    print('%s:%s:%s: %s' % (err.filename, err.lineno, err.offset, err.msg))\nexcept Exception as err:\n    print('%s:%s:%s: %s' % (os.path.abspath(argv[1]), 1, 0, err))\n"
  },
  {
    "path": "syntax_checkers/python/compile.py",
    "content": "#!/usr/bin/env python\n\nfrom __future__ import print_function\nfrom sys import argv, exit\n\n\nif len(argv) != 2:\n    exit(1)\n\ntry:\n    compile(open(argv[1]).read(), argv[1], 'exec', 0, 1)\nexcept SyntaxError as err:\n    print('%s:%s:%s: %s' % (err.filename, err.lineno, err.offset, err.msg))\n"
  },
  {
    "path": "syntax_checkers/python/flake8.vim",
    "content": "\"============================================================================\n\"File:        flake8.vim\n\"Description: Syntax checking plugin for syntastic\n\"Authors:     Sylvain Soliman <Sylvain dot Soliman+git at gmail dot com>\n\"             kstep <me@kstep.me>\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_python_flake8_checker')\n    finish\nendif\nlet g:loaded_syntastic_python_flake8_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_python_flake8_GetHighlightRegex(item)\n    return SyntaxCheckers_python_pyflakes_GetHighlightRegex(a:item)\nendfunction\n\nfunction! SyntaxCheckers_python_flake8_GetLocList() dict\n    let makeprg = self.makeprgBuild({})\n\n    let errorformat =\n        \\ '%E%f:%l: could not compile,%-Z%p^,' .\n        \\ '%A%f:%l:%c: %m,' .\n        \\ '%A%f:%l: %m,' .\n        \\ '%-G%.%#'\n\n    let env = syntastic#util#isRunningWindows() ? {} : { 'TERM': 'dumb' }\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'env': env })\n\n    for e in loclist\n        \" flake8 codes: https://gitlab.com/pycqa/flake8/issues/339\n\n        let parts = matchlist(e['text'], '\\v\\C^([A-Z]+)(\\d+):?\\s+(.*)')\n        if len(parts) >= 4\n            let e['type'] = parts[1][0]\n            let e['text'] = printf('%s [%s%s]', parts[3], parts[1], parts[2])\n\n            if e['type'] ==? 'E' && parts[2] !~# '\\m^9'\n                let e['subtype'] = 'Style'\n            endif\n        else\n            let e['type'] = 'E'\n        endif\n\n        if e['type'] =~? '\\m^[CHIMNRTW]'\n            let e['subtype'] = 'Style'\n        endif\n\n        let e['type'] = e['type'] =~? '\\m^[EFHC]' ? 'E' : 'W'\n    endfor\n\n    return loclist\nendfunction\n\nruntime! syntax_checkers/python/pyflakes.vim\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'python',\n    \\ 'name': 'flake8'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/python/frosted.vim",
    "content": "\"============================================================================\n\"File:        frosted.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_python_frosted_checker')\n    finish\nendif\nlet g:loaded_syntastic_python_frosted_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_python_frosted_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_after': '-vb' })\n\n    let errorformat =\n        \\ '%f:%l:%c:%m,' .\n        \\ '%E%f:%l: %m,' .\n        \\ '%-Z%p^,' .\n        \\ '%-G%.%#'\n\n    let env = syntastic#util#isRunningWindows() ? {} : { 'TERM': 'dumb' }\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'env': env,\n        \\ 'returns': [0, 1] })\n\n    for e in loclist\n        let e['col'] += 1\n\n        let parts = matchlist(e.text, '\\v^([EW]\\d+):([^:]*):(.+)')\n        if len(parts) >= 4\n            let e['type'] = parts[1][0]\n            let e['text'] = parts[3] . ' [' . parts[1] . ']'\n            let e['hl'] = '\\V\\<' . escape(parts[2], '\\') . '\\>'\n        elseif e['text'] =~? '\\v^I\\d+:'\n            let e['valid'] = 0\n        else\n            let e['vcol'] = 0\n        endif\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'python',\n    \\ 'name': 'frosted' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/python/mypy.vim",
    "content": "\"============================================================================\n\"File:        mypy.vim\n\"Description: Syntax checking plugin for syntastic\n\"Author:      Russ Hewgill <Russ dot Hewgill at gmail dot com>\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_python_mypy_checker')\n    finish\nendif\nlet g:loaded_syntastic_python_mypy_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_python_mypy_GetLocList() dict\n    if !exists('s:mypy_new')\n        \" creative versioning: version string has changed from v0.4.6 to v0.470\n        \" XXX the test should be fine for now, since 470 > 4\n        let s:mypy_new = syntastic#util#versionIsAtLeast(self.getVersion(), [0, 4, 5])\n    endif\n\n    let buf = bufnr('')\n    let makeprg = self.makeprgBuild({\n        \\ 'args_after': (s:mypy_new ? '--show-column-numbers' : ''),\n        \\ 'fname': syntastic#util#shescape(fnamemodify(bufname(buf), ':p')) })\n\n    let errorformat =\n        \\ '%f:%l:%c:%t:%m,' .\n        \\ '%f:%l:%t:%m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'returns': [0, 1],\n        \\ 'preprocess': 'mypy' })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'python',\n    \\ 'name': 'mypy'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/python/pep257.vim",
    "content": "\"============================================================================\n\"File:        pep257.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_python_pep257_checker')\n    finish\nendif\nlet g:loaded_syntastic_python_pep257_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'python',\n    \\ 'name': 'pep257',\n    \\ 'redirect': 'python/pydocstyle'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/python/pep8.vim",
    "content": "\"============================================================================\n\"File:        pep8.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_python_pep8_checker')\n    finish\nendif\nlet g:loaded_syntastic_python_pep8_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'python',\n    \\ 'name': 'pep8',\n    \\ 'redirect': 'python/pycodestyle'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/python/prospector.vim",
    "content": "\"============================================================================\n\"File:        prospector.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_python_prospector_checker')\n    finish\nendif\nlet g:loaded_syntastic_python_prospector_checker = 1\n\nif !exists('g:syntastic_python_prospector_sort')\n    let g:syntastic_python_prospector_sort = 1\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_python_prospector_IsAvailable() dict\n    if !executable(self.getExec())\n        return 0\n    endif\n    return syntastic#util#versionIsAtLeast(self.getVersion(), [0, 7])\nendfunction\n\nfunction! SyntaxCheckers_python_prospector_GetLocList() dict\n    let makeprg = self.makeprgBuild({\n        \\ 'args_after': '--messages-only --absolute-paths --die-on-tool-error --zero-exit --output-format json' })\n\n    let errorformat = '%f:%l:%c: %m'\n\n    let env = syntastic#util#isRunningWindows() ? {} : { 'TERM': 'dumb' }\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'env': env,\n        \\ 'preprocess': 'prospector',\n        \\ 'returns': [0] })\n\n    for e in loclist\n        if e['text'] =~# '\\v\\[%(dodgy|mccabe|pep8|pep257|pyroma)\\]$'\n            let e['subtype'] = 'Style'\n        endif\n\n        if e['text'] =~# '\\v\\[pylint\\]$'\n            let e['type'] = e['text'] =~? '\\m^[CRW]' ? 'W' : 'E'\n        elseif e['text'] =~# '\\v\\[%(frosted|pep8)\\]$'\n            let e['type'] = e['text'] =~? '\\m^W' ? 'W' : 'E'\n        elseif e['text'] =~# '\\v\\[%(dodgy|pyroma|vulture)\\]$'\n            let e['type'] = 'W'\n        else\n            let e['type'] = 'E'\n        endif\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'python',\n    \\ 'name': 'prospector'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/python/py3kwarn.vim",
    "content": "\"============================================================================\n\"File:        py3kwarn.vim\n\"Description: Syntax checking plugin for syntastic\n\"Authors:     Liam Curry <liam@curry.name>\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_python_py3kwarn_checker')\n    finish\nendif\nlet g:loaded_syntastic_python_py3kwarn_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_python_py3kwarn_GetLocList() dict\n    let makeprg = self.makeprgBuild({})\n\n    let errorformat = '%W%f:%l:%c: %m'\n\n    let env = syntastic#util#isRunningWindows() ? {} : { 'TERM': 'dumb' }\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'env': env })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'python',\n    \\ 'name': 'py3kwarn'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/python/pycodestyle.vim",
    "content": "\"============================================================================\n\"File:        pycodestyle.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_python_pycodestyle_checker')\n    finish\nendif\nlet g:loaded_syntastic_python_pycodestyle_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_python_pycodestyle_GetLocList() dict\n    let makeprg = self.makeprgBuild({})\n\n    let errorformat = '%f:%l:%c: %m'\n\n    let env = syntastic#util#isRunningWindows() ? {} : { 'TERM': 'dumb' }\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'env': env,\n        \\ 'subtype': 'Style' })\n\n    for e in loclist\n        let e['type'] = e['text'] =~? '^W' ? 'W' : 'E'\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'python',\n    \\ 'name': 'pycodestyle'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/python/pydocstyle.vim",
    "content": "\"============================================================================\n\"File:        pydocstyle.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_python_pydocstyle_checker')\n    finish\nendif\nlet g:loaded_syntastic_python_pydocstyle_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_python_pydocstyle_GetLocList() dict\n    if !exists('s:pydocstyle_new')\n        let s:pydocstyle_new = syntastic#util#versionIsAtLeast(self.getVersion(), [0, 3])\n    endif\n\n    let makeprg = self.makeprgBuild({})\n\n    if s:pydocstyle_new\n        let errorformat =\n            \\ '%E%f:%l %.%#:,' .\n            \\ '%+C        %m'\n    else\n        let errorformat =\n            \\ '%E%f:%l:%c%\\%.%\\%.%\\d%\\+:%\\d%\\+: %m,' .\n            \\ '%E%f:%l:%c: %m,' .\n            \\ '%+C    %m'\n    endif\n\n    let env = syntastic#util#isRunningWindows() ? {} : { 'TERM': 'dumb' }\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'env': env,\n        \\ 'subtype': 'Style',\n        \\ 'preprocess': 'killEmpty',\n        \\ 'postprocess': ['compressWhitespace'] })\n\n    if s:pydocstyle_new == 0\n        \" byte offsets rather than column numbers\n        for e in loclist\n            let e['col'] = get(e, 'col', 0) + 1\n        endfor\n    endif\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'python',\n    \\ 'name': 'pydocstyle'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/python/pyflakes.vim",
    "content": "\"============================================================================\n\"File:        pyflakes.vim\n\"Description: Syntax checking plugin for syntastic\n\"Authors:     Martin Grenfell <martin.grenfell@gmail.com>\n\"             kstep <me@kstep.me>\n\"             Parantapa Bhattacharya <parantapa@gmail.com>\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_python_pyflakes_checker')\n    finish\nendif\nlet g:loaded_syntastic_python_pyflakes_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_python_pyflakes_GetHighlightRegex(i)\n    if stridx(a:i['text'], 'is assigned to but never used') >= 0\n        \\ || stridx(a:i['text'], 'imported but unused') >= 0\n        \\ || stridx(a:i['text'], 'undefined name') >= 0\n        \\ || stridx(a:i['text'], 'redefinition of') >= 0\n        \\ || stridx(a:i['text'], 'referenced before assignment') >= 0\n        \\ || stridx(a:i['text'], 'duplicate argument') >= 0\n        \\ || stridx(a:i['text'], 'after other statements') >= 0\n        \\ || stridx(a:i['text'], 'shadowed by loop variable') >= 0\n\n        \" fun with Python's %r: try \"...\" first, then '...'\n        let term = matchstr(a:i['text'], '\\m^.\\{-}\"\\zs.\\{-1,}\\ze\"')\n        if term !=# ''\n            return '\\V\\<' . escape(term, '\\') . '\\>'\n        endif\n\n        let term = matchstr(a:i['text'], '\\m^.\\{-}''\\zs.\\{-1,}\\ze''')\n        if term !=# ''\n            return '\\V\\<' . escape(term, '\\') . '\\>'\n        endif\n    endif\n    return ''\nendfunction\n\nfunction! SyntaxCheckers_python_pyflakes_GetLocList() dict\n    let makeprg = self.makeprgBuild({})\n\n    let errorformat =\n        \\ '%E%f:%l: could not compile,'.\n        \\ '%-Z%p^,'.\n        \\ '%E%f:%l:%c:%\\= %m,'.\n        \\ '%E%f:%l:%\\= %m,'.\n        \\ '%-G%.%#'\n\n    let env = syntastic#util#isRunningWindows() ? {} : { 'TERM': 'dumb' }\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'env': env,\n        \\ 'defaults': {'text': 'Syntax error'} })\n\n    for e in loclist\n        let e['vcol'] = 0\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'python',\n    \\ 'name': 'pyflakes'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/python/pylama.vim",
    "content": "\"============================================================================\n\"File:        pylama.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_python_pylama_checker')\n    finish\nendif\nlet g:loaded_syntastic_python_pylama_checker = 1\n\nif !exists('g:syntastic_python_pylama_sort')\n    let g:syntastic_python_pylama_sort = 1\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_python_pylama_GetHighlightRegex(item)\n    return SyntaxCheckers_python_pyflakes_GetHighlightRegex(a:item)\nendfunction\n\nfunction! SyntaxCheckers_python_pylama_GetLocList() dict\n    if !exists('s:pylama_new')\n        let s:pylama_new = syntastic#util#versionIsAtLeast(self.getVersion(), [4])\n    endif\n\n    let makeprg = self.makeprgBuild({\n        \\ 'args_after': '-f pep8' . (s:pylama_new ? ' --force' : '') })\n\n    \" TODO: \"WARNING:pylama:...\" messages are probably a logging bug\n    let errorformat =\n        \\ '%-GWARNING:pylama:%.%#,' .\n        \\ '%A%f:%l:%c: %m'\n\n    let env = syntastic#util#isRunningWindows() ? {} : { 'TERM': 'dumb' }\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'env': env })\n\n    \" adjust for weirdness in each checker\n    for e in loclist\n        let e['type'] = e['text'] =~? '\\m^[RCW]' ? 'W' : 'E'\n        if e['text'] =~# '\\v\\[%(isort|mccabe|pep257|pylint)\\]$'\n            if has_key(e, 'col')\n                let e['col'] += 1\n            endif\n        endif\n        if e['text'] =~# '\\v\\[pylint\\]$'\n            if has_key(e, 'vcol')\n                let e['vcol'] = 0\n            endif\n        endif\n        if e['text'] =~# '\\v\\[%(isort|mccabe|pep257|pep8)\\]$'\n            let e['subtype'] = 'Style'\n        endif\n    endfor\n\n    return loclist\nendfunction\n\nruntime! syntax_checkers/python/pyflakes.vim\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'python',\n    \\ 'name': 'pylama' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/python/pylint.vim",
    "content": "\"============================================================================\n\"File:        pylint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Parantapa Bhattacharya <parantapa at gmail dot com>\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_python_pylint_checker')\n    finish\nendif\nlet g:loaded_syntastic_python_pylint_checker = 1\n\nif !exists('g:syntastic_python_pylint_sort')\n    let g:syntastic_python_pylint_sort = 1\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nlet s:pylint_new = -1\n\nfunction! SyntaxCheckers_python_pylint_IsAvailable() dict \" {{{1\n    if !executable(self.getExec())\n        return 0\n    endif\n\n    try\n        \" On Windows the version is shown as \"pylint-script.py 1.0.0\".\n        \" On Gentoo Linux it's \"pylint-python2.7 0.28.0\".\n        \" On NixOS, that would be \".pylint-wrapped 0.26.0\".\n        \" On Arch Linux it's \"pylint2 1.1.0\".\n        \" On new-ish Fedora it's \"python3-pylint 1.2.0\".\n        \" Have you guys considered switching to creative writing yet? ;)\n\n        let version_output = syntastic#util#system(self.getExecEscaped() . ' --version')\n        let pylint_version = filter( split(version_output, '\\m, \\=\\|\\n'), 'v:val =~# ''\\m^\\(python[-0-9]*-\\|\\.\\)\\=pylint[-0-9]*\\>''' )[0]\n        let parsed_ver = syntastic#util#parseVersion(substitute(pylint_version, '\\v^\\S+\\s+', '', ''))\n        call self.setVersion(parsed_ver)\n\n        let s:pylint_new = syntastic#util#versionIsAtLeast(parsed_ver, [1])\n    catch /\\m^Vim\\%((\\a\\+)\\)\\=:E684/\n        call syntastic#log#ndebug(g:_SYNTASTIC_DEBUG_LOCLIST, 'checker output:', split(version_output, \"\\n\", 1))\n        call syntastic#log#error(\"checker python/pylint: can't parse version string (abnormal termination?)\")\n        let s:pylint_new = -1\n    endtry\n\n    return s:pylint_new >= 0\nendfunction \" }}}1\n\nfunction! SyntaxCheckers_python_pylint_GetLocList() dict \" {{{1\n    let makeprg = self.makeprgBuild({\n        \\ 'args_after': (s:pylint_new ?\n        \\       '-f text --msg-template=\"{path}:{line}:{column}:{C}: [{symbol}] {msg}\" -r n' :\n        \\       '-f parseable -r n -i y') })\n\n    let errorformat =\n        \\ '%A%f:%l:%c:%t: %m,' .\n        \\ '%A%f:%l: %m,' .\n        \\ '%A%f:(%l): %m,' .\n        \\ '%-Z%p^%.%#,' .\n        \\ '%-G%.%#'\n\n    let env = syntastic#util#isRunningWindows() ? {} : { 'TERM': 'dumb' }\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'env': env,\n        \\ 'returns': range(32) })\n\n    for e in loclist\n        if !s:pylint_new\n            let e['type'] = e['text'][1]\n        endif\n\n        if e['type'] =~? '\\m^[EF]'\n            let e['type'] = 'E'\n        elseif e['type'] =~? '\\m^[CRW]'\n            let e['type'] = 'W'\n        else\n            let e['valid'] = 0\n        endif\n\n        let e['col'] += 1\n        let e['vcol'] = 0\n    endfor\n\n    return loclist\nendfunction \" }}}1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'python',\n    \\ 'name': 'pylint' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/python/python.vim",
    "content": "\"============================================================================\n\"File:        python.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_python_python_checker')\n    finish\nendif\nlet g:loaded_syntastic_python_python_checker = 1\n\nif !exists('g:syntastic_python_python_use_codec')\n    let g:syntastic_python_python_use_codec = 0\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nlet s:base_path = expand('<sfile>:p:h', 1) . syntastic#util#Slash()\n\nfunction! SyntaxCheckers_python_python_IsAvailable() dict\n    if !executable(self.getExec())\n        return 0\n    endif\n    return syntastic#util#versionIsAtLeast(self.getVersion(), [2, 6])\nendfunction\n\nfunction! SyntaxCheckers_python_python_GetLocList() dict\n    let compiler = s:base_path . (g:syntastic_python_python_use_codec ? 'codec.py' : 'compile.py')\n    call self.log('using compiler script', compiler)\n    let makeprg = self.makeprgBuild({ 'exe': [self.getExec(), compiler] })\n\n    let errorformat = '%E%f:%l:%c: %m'\n\n    let env = syntastic#util#isRunningWindows() ? {} : { 'TERM': 'dumb' }\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'env': env,\n        \\ 'returns': [0] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'python',\n    \\ 'name': 'python'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/qml/qmllint.vim",
    "content": "\"============================================================================\n\"File:        qmllint.vim\n\"Description: Syntax checking plugin for syntastic using qmllint\n\"Maintainer:  Peter Wu <peter@lekensteyn.nl>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_qml_qmllint_checker')\n    finish\nendif\nlet g:loaded_syntastic_qml_qmllint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_qml_qmllint_GetLocList() dict\n    let makeprg = self.makeprgBuild({})\n\n    let errorformat = '%f:%l : %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'postprocess': ['guards'],\n        \\ 'returns': [0, 255] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'qml',\n    \\ 'name': 'qmllint'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/r/lint.vim",
    "content": "\"============================================================================\n\"File:        lint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_r_lint_checker')\n    finish\nendif\nlet g:loaded_syntastic_r_lint_checker = 1\n\nif !exists('g:syntastic_r_lint_styles')\n    let g:syntastic_r_lint_styles = 'lint.style'\nendif\n\nif !exists('g:syntastic_r_lint_sort')\n    let g:syntastic_r_lint_sort = 1\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_r_lint_GetHighlightRegex(item)\n    let term = matchstr(a:item['text'], '\\m`\\zs[^`]\\+\\ze`')\n    if term ==# ''\n        let term = matchstr(a:item['text'], \"\\\\m'\\\\zs[^']\\\\+\\\\ze'\")\n    endif\n    return term !=# '' ? '\\V' . escape(term, '\\') : ''\nendfunction\n\nfunction! SyntaxCheckers_r_lint_IsAvailable() dict\n    if !executable(self.getExec())\n        return 0\n    endif\n    call syntastic#util#system(self.getExecEscaped() . ' --slave --restore --no-save -e ' . syntastic#util#shescape('library(lint)'))\n    return v:shell_error == 0\nendfunction\n\nfunction! SyntaxCheckers_r_lint_GetLocList() dict\n    let buf = bufnr('')\n\n    let setwd = syntastic#util#isRunningWindows() ? 'setwd(\"' . escape(getcwd(), '\"\\') . '\"); ' : ''\n    let makeprg = self.getExecEscaped() . ' --slave --restore --no-save' .\n        \\ ' -e ' . syntastic#util#shescape(setwd . 'library(lint); ' .\n        \\       'try(lint(commandArgs(TRUE), ' . g:syntastic_r_lint_styles . '))') .\n        \\ ' --args ' . syntastic#util#shescape(bufname(buf))\n\n    let errorformat =\n        \\ '%t:%f:%l:%v: %m,' .\n        \\ '%t:%f:%l: %m'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'subtype': 'Style',\n        \\ 'preprocess': 'rparse',\n        \\ 'returns': [0] })\n\n    for e in loclist\n        if e['type'] ==? 'F'\n            \" parse error\n            let e['type'] = 'E'\n            call remove(e, 'subtype')\n        endif\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'r',\n    \\ 'name': 'lint',\n    \\ 'exec': 'R' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/r/lintr.vim",
    "content": "\"============================================================================\n\"File:        lintr.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Jim Hester <james.f.hester at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\"\n\" Security:\n\"\n\" This checker runs the code in your file.  This is probably fine if you\n\" wrote the file yourself, but it can be a problem if you're trying to\n\" check third party files.  If you are 100% willing to let Vim run the\n\" code in your file, set g:syntastic_enable_r_lintr_checker to 1 in\n\" your vimrc to enable this checker:\n\"\n\" let g:syntastic_enable_r_lintr_checker = 1\n\nif exists(\"g:loaded_syntastic_r_lintr_checker\")\n    finish\nendif\nlet g:loaded_syntastic_r_lintr_checker = 1\n\nif !exists('g:syntastic_r_lintr_linters')\n    let g:syntastic_r_lintr_linters = 'default_linters'\nendif\n\nif !exists('g:syntastic_r_lintr_cache')\n    let g:syntastic_r_lintr_cache = 'FALSE'\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_r_lintr_GetHighlightRegex(item)\n    let term = matchstr(a:item['text'], \"\\\\m'\\\\zs[^']\\\\+\\\\ze'\")\n    return term !=# '' ? '\\V' . escape(term, '\\') : ''\nendfunction\n\nfunction! SyntaxCheckers_r_lintr_IsAvailable() dict\n    if !executable(self.getExec())\n        return 0\n    endif\n    call system(self.getExecEscaped() . ' --slave --no-restore --no-save -e ' . syntastic#util#shescape('library(lintr)'))\n    return v:shell_error == 0\nendfunction\n\nfunction! SyntaxCheckers_r_lintr_GetLocList() dict\n    let buf = bufnr('')\n\n    let setwd = syntastic#util#isRunningWindows() ? 'setwd(\"' . escape(getcwd(), '\"\\') . '\"); ' : ''\n    let makeprg = self.getExecEscaped() . ' --slave --no-restore --no-save' .\n        \\ ' -e ' . syntastic#util#shescape(setwd . 'suppressPackageStartupMessages(library(lintr)); ' .\n        \\       'lint(cache = ' . g:syntastic_r_lintr_cache . ', commandArgs(TRUE), ' . g:syntastic_r_lintr_linters . ')') .\n        \\ ' --args ' . syntastic#util#shescape(bufname(buf))\n\n    let errorformat =\n        \\ '%W%f:%l:%c: style: %m,' .\n        \\ '%W%f:%l:%c: warning: %m,' .\n        \\ '%E%f:%l:%c: error: %m,'\n\n    call self.setWantSort(1)\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'returns': [0] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'r',\n    \\ 'name': 'lintr',\n    \\ 'exec': 'R',\n    \\ 'enable': 'enable_r_lintr_checker'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/r/svtools.vim",
    "content": "\"============================================================================\n\"File:        svtools.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\"\n\" Security:\n\"\n\" This checker runs the code in your file.  This is probably fine if you\n\" wrote the file yourself, but it can be a problem if you're trying to\n\" check third party files.  If you are 100% willing to let Vim run the\n\" code in your file, set g:syntastic_enable_r_svtools_checker to 1 in\n\" your vimrc to enable this checker:\n\"\n\"   let g:syntastic_enable_r_svtools_checker = 1\n\nif exists('g:loaded_syntastic_r_svtools_checker')\n    finish\nendif\nlet g:loaded_syntastic_r_svtools_checker = 1\n\nif !exists('g:syntastic_r_svtools_styles')\n    let g:syntastic_r_svtools_styles = 'lint.style'\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_r_svtools_GetHighlightRegex(item)\n    let term = matchstr(a:item['text'], \"\\\\m'\\\\zs[^']\\\\+\\\\ze'\")\n    return term !=# '' ? '\\V' . escape(term, '\\') : ''\nendfunction\n\nfunction! SyntaxCheckers_r_svtools_IsAvailable() dict\n    if !executable(self.getExec())\n        return 0\n    endif\n    call syntastic#util#system(self.getExecEscaped() . ' --slave --restore --no-save -e ' . syntastic#util#shescape('library(svTools)'))\n    return v:shell_error == 0\nendfunction\n\nfunction! SyntaxCheckers_r_svtools_GetLocList() dict\n    let buf = bufnr('')\n\n    let setwd = syntastic#util#isRunningWindows() ? 'setwd(\"' . escape(getcwd(), '\"\\') . '\"); ' : ''\n    let makeprg = self.getExecEscaped() . ' --slave --restore --no-save' .\n        \\ ' -e ' . syntastic#util#shescape(setwd . 'library(svTools); ' .\n        \\       'try(lint(commandArgs(TRUE), filename = commandArgs(TRUE), type = \"flat\", sep = \":\"))') .\n        \\ ' --args ' . syntastic#util#shescape(bufname(buf))\n\n    let errorformat =\n        \\ '%trror:%f:%\\s%#%l:%\\s%#%v:%m,' .\n        \\ '%tarning:%f:%\\s%#%l:%\\s%#%v:%m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'returns': [0] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'r',\n    \\ 'name': 'svtools',\n    \\ 'exec': 'R',\n    \\ 'enable': 'enable_r_svtools_checker'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/racket/code-ayatollah.vim",
    "content": "\"============================================================================\n\"File:        code-ayatollah.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_racket_code_ayatollah_checker')\n    finish\nendif\nlet g:loaded_syntastic_racket_code_ayatollah_checker = 1\n\nif !exists('g:syntastic_racket_code_ayatollah_script')\n    let g:syntastic_racket_code_ayatollah_script = 'code-ayatollah.rkt'\nendif\n\nif !exists('g:syntastic_racket_code_ayatollah_sort')\n    let g:syntastic_racket_code_ayatollah_sort = 1\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_racket_code_ayatollah_IsAvailable() dict\n    let s:script = expand(g:syntastic_racket_code_ayatollah_script, 1)\n    return executable(self.getExec()) && filereadable(s:script)\nendfunction\n\nfunction! SyntaxCheckers_racket_code_ayatollah_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'exe': [self.getExec(), s:script] })\n\n    let errorformat =\n        \\ '  %l:%v: %m,' .\n        \\ '%PErrors in %f:,' .\n        \\ '%-G%.%#'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'subtype': 'Style' })\n\n    for e in loclist\n        let e['col'] += 1\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'racket',\n    \\ 'name': 'code_ayatollah',\n    \\ 'exec': 'racket' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/racket/racket.vim",
    "content": "\"============================================================================\n\"File:        racket.vim\n\"Description: Syntax checking plugin for syntastic\n\"Author:      Steve Bragg <steve at empresseffects dot com>\n\"\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_racket_racket_checker')\n    finish\nendif\nlet g:loaded_syntastic_racket_racket_checker=1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_racket_racket_GetLocList() dict\n    let makeprg = self.makeprgBuild({})\n\n    \" example of error message\n    \"eval-apply.rkt:460:30: the-empty-environment: unbound identifier in module\n    \"  in: the-empty-environment\n    let errorformat = '%f:%l:%v: %m'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\n\n    for e in loclist\n        if has_key(e, 'col')\n            let e['col'] += 1\n        endif\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'racket',\n    \\ 'name': 'racket',\n    \\ 'enable': 'enable_racket_racket_checker' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/raku/raku.vim",
    "content": "\"============================================================================\n\"File:        raku.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Claudio Ramirez <pub.claudio at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\"\n\" Security:\n\"\n\" This checker runs 'raku -c' against your file, which in turn executes\n\" any BEGIN and CHECK blocks in your file. This is probably fine if you\n\" wrote the file yourself, but it can be a problem if you're trying to\n\" check third party files. If you are 100% willing to let Vim run the code\n\" in your file, set g:syntastic_enable_raku_checker to 1 in your vimrc\n\" to enable this\n\" checker:\n\"\n\"   let g:syntastic_enable_raku_checker = 1\n\"\n\" Reference:\n\"\n\" - https://docs.raku.org/programs/03-environment-variables\n\nif exists('g:loaded_syntastic_raku_raku_checker')\n    finish\nendif\nlet g:loaded_syntastic_raku_raku_checker = 1\n\nif !exists('g:syntastic_raku_lib_path')\n    let g:syntastic_raku_lib_path = []\nendif\n\nif !exists('g:syntastic_raku_raku_sort')\n    let g:syntastic_raku_raku_sort = 1\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_raku_raku_IsAvailable() dict \" {{{1\n    \" don't call executable() here, to allow things like\n    \" let g:syntastic_raku_raku_exec = '/usr/bin/env raku'\n    silent! call syntastic#util#system(self.getExecEscaped() . ' -e ' . syntastic#util#shescape('exit(0)'))\n    return (v:shell_error == 0) && syntastic#util#versionIsAtLeast(self.getVersion(), [2017, 1])\nendfunction \" }}}1\n\nfunction! SyntaxCheckers_raku_raku_GetHighlightRegex(item) \" {{{1\n    let term = matchstr(a:item['text'], '\\m''\\zs.\\{-}\\ze''')\n    if term !=# ''\n        return '\\V' . escape(term, '\\')\n    endif\n    let term = matchstr(a:item['text'], '\\m^Undeclared .\\+:\\W\\zs\\S\\+\\ze')\n    if term !=# ''\n        return '\\V' . escape(term, '\\')\n    endif\n    let term = matchstr(a:item['text'], '\\mCould not find \\zs.\\{-}\\ze at')\n    if term !=# ''\n        return '\\V' . escape(term, '\\')\n    endif\n    let term = matchstr(a:item['text'], '\\mCould not find \\zs\\S\\+$')\n    return term !=# '' ? '\\V' . escape(term, '\\') : ''\nendfunction \" }}}1\n\nfunction! SyntaxCheckers_raku_raku_GetLocList() dict \" {{{1\n    if type(g:syntastic_raku_lib_path) == type('')\n        call syntastic#log#oneTimeWarn('variable g:syntastic_raku_lib_path should be a list')\n        let includes = split(g:syntastic_raku_lib_path, ',')\n    else\n        let includes = copy(syntastic#util#var('raku_lib_path', []))\n    endif\n    \" support for RAKULIB environment variable\n    if $RAKULIB !=# ''\n        let includes += split($RAKULIB, ':')\n    endif\n    call map(includes, '\"-I\" . v:val')\n\n    let errorformat =\n        \\ '%f:%l:%c:%m,' .\n        \\ ':%l:%c:%m'\n\n    let makeprg = self.makeprgBuild({ 'args_before': ['-c'] + includes })\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'env': { 'RAKU_EXCEPTIONS_HANDLER': 'JSON' },\n        \\ 'defaults': { 'bufnr': bufnr(''), 'type': 'E' },\n        \\ 'returns': [0, 1],\n        \\ 'preprocess': 'raku',\n        \\ 'postprocess': ['guards', 'iconv'] })\nendfunction \" }}}1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'raku',\n    \\ 'name': 'raku',\n    \\ 'enable': 'enable_raku_checker'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/rmd/lintr.vim",
    "content": "\"============================================================================\n\"File:        lintr.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Jim Hester <james.f.hester at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_rmd_lintr_checker')\n    finish\nendif\nlet g:loaded_syntastic_rmd_lintr_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'rmd',\n    \\ 'name': 'lintr',\n    \\ 'redirect': 'r/lintr'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/rnc/rnv.vim",
    "content": "\"============================================================================\n\"File:        rnv.vim\n\"Description: RelaxNG RNV syntax checking plugin for syntastic\n\"Maintainer:  Remko Tronçon <remko at el-tramo dot be>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_rnc_rnv_checker')\n    finish\nendif\nlet g:loaded_syntastic_rnc_rnv_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_rnc_rnv_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args': '-c' })\n\n    let errorformat =\n        \\ '%f:%l:%c: %trror: %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'rnc',\n    \\ 'name': 'rnv'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/rst/proselint.vim",
    "content": "\"============================================================================\n\"File:        proselint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_rst_proselint_checker')\n    finish\nendif\nlet g:loaded_syntastic_rst_proselint_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'rst',\n    \\ 'name': 'proselint',\n    \\ 'redirect': 'text/proselint'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/rst/rst2pseudoxml.vim",
    "content": "\"============================================================================\n\"File:        rst.vim\n\"Description: Syntax checking plugin for docutils' reStructuredText files\n\"Maintainer:  James Rowe <jnrowe at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\n\" We use rst2pseudoxml.py, as it is ever so marginally faster than the other\n\" rst2${x} tools in docutils.\n\nif exists('g:loaded_syntastic_rst_rst2pseudoxml_checker')\n    finish\nendif\nlet g:loaded_syntastic_rst_rst2pseudoxml_checker = 1\n\nlet s:rst2pseudoxml = (executable('rst2pseudoxml.py') && !syntastic#util#isRunningWindows()) ? 'rst2pseudoxml.py' : 'rst2pseudoxml'\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_rst_rst2pseudoxml_IsAvailable() dict\n    call self.log('exec =', self.getExec())\n    return executable(self.getExec())\nendfunction\n\nfunction! SyntaxCheckers_rst_rst2pseudoxml_GetLocList() dict\n    let makeprg = self.makeprgBuild({\n        \\ 'args_after': '--report=2 --exit-status=1',\n        \\ 'tail': syntastic#util#DevNull() })\n\n    let errorformat =\n        \\ '%f:%l: (%t%\\w%\\+/%\\d%\\+) %m,'.\n        \\ '%f:: (%t%\\w%\\+/%\\d%\\+) %m,'.\n        \\ '%-G%.%#'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\n\n    for e in loclist\n        if e['type'] ==? 'I'\n            let e['type'] = 'W'\n            let e['subtype'] = 'Style'\n        else\n            let e['type'] = 'E'\n        endif\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'rst',\n    \\ 'name': 'rst2pseudoxml',\n    \\ 'exec': s:rst2pseudoxml })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/rst/rstcheck.vim",
    "content": "\"============================================================================\n\"File:        rstcheck.vim\n\"Description: Syntax checking for reStructuredText and embedded code blocks\n\"Authors:     Steven Myint <git@stevenmyint.com>\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_rst_rstcheck_checker')\n    finish\nendif\nlet g:loaded_syntastic_rst_rstcheck_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_rst_rstcheck_GetLocList() dict\n    let makeprg = self.makeprgBuild({})\n\n    let errorformat =\n        \\ '%f:%l: (%tNFO/1) %m,'.\n        \\ '%f:%l: (%tARNING/2) %m,'.\n        \\ '%f:%l: (%tRROR/3) %m,'.\n        \\ '%f:%l: (%tEVERE/4) %m,'.\n        \\ '%-G%.%#'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'returns': [0, 1] })\n\n    for e in loclist\n        if e['type'] ==? 'S'\n            let e['type'] = 'E'\n        elseif e['type'] ==? 'I'\n            let e['type'] = 'W'\n            let e['subtype'] = 'Style'\n        endif\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'rst',\n    \\ 'name': 'rstcheck'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/rst/sphinx.vim",
    "content": "\"============================================================================\n\"File:        sphinx.vim\n\"Description: Syntax checking plugin for Sphinx reStructuredText files\n\"Maintainer:  Buck Evan <buck dot 2019 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists(\"g:loaded_syntastic_rst_sphinx_checker\")\n    finish\nendif\nlet g:loaded_syntastic_rst_sphinx_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nlet s:sphinx_cache_location = syntastic#util#tmpdir()\nlockvar s:sphinx_cache_location\n\naugroup syntastic\n    autocmd VimLeave * call syntastic#util#rmrf(s:sphinx_cache_location)\naugroup END\n\nfunction! SyntaxCheckers_rst_sphinx_GetLocList() dict\n    let buf = bufnr('')\n\n    let srcdir = syntastic#util#bufVar(buf, 'rst_sphinx_source_dir')\n    call self.log('syntastic_rst_sphinx_source_dir =', srcdir)\n    if srcdir ==# ''\n        let config = syntastic#util#findFileInParent('conf.py',  fnamemodify(bufname(buf), ':p:h'))\n        if config ==# '' || !filereadable(config)\n            call self.log('conf.py file not found')\n            return []\n        endif\n        let srcdir = fnamemodify(config, ':p:h')\n    endif\n\n    let confdir = syntastic#util#bufVar(buf, 'rst_sphinx_config_dir')\n    call self.log('syntastic_rst_sphinx_config_dir =', confdir)\n    if confdir ==# ''\n        let config = syntastic#util#findFileInParent('conf.py',  fnamemodify(bufname(buf), ':p:h'))\n        let confdir = (config !=# '' && filereadable(config)) ? fnamemodify(config, ':p:h') : srcdir\n    endif\n\n    let makeprg = self.makeprgBuild({\n        \\ 'args': '-n -E',\n        \\ 'args_after': '-q -N -b pseudoxml -c ' . syntastic#util#shescape(confdir),\n        \\ 'fname': syntastic#util#shescape(srcdir),\n        \\ 'fname_after': syntastic#util#shescape(s:sphinx_cache_location) })\n\n    let errorformat =\n        \\ '%E%f:%l: SEVER%t: %m,' .\n        \\ '%f:%l: %tRROR: %m,' .\n        \\ '%f:%l: %tARNING: %m,' .\n        \\ '%E%f:: SEVER%t: %m,' .\n        \\ '%f:: %tRROR: %m,' .\n        \\ '%f:: %tARNING: %m,' .\n        \\ '%trror: %m,' .\n        \\ '%+C%.%#'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'returns': [0] })\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'rst',\n    \\ 'name': 'sphinx',\n    \\ 'exec': 'sphinx-build' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/ruby/flog.vim",
    "content": "\"============================================================================\n\"File:        flog.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Tim Carry <tim at pixelastic dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_ruby_flog_checker')\n    finish\nendif\nlet g:loaded_syntastic_ruby_flog_checker = 1\n\nif !exists('g:syntastic_ruby_flog_threshold_warning')\n    let g:syntastic_ruby_flog_threshold_warning = 45\nendif\n\nif !exists('g:syntastic_ruby_flog_threshold_error')\n    let g:syntastic_ruby_flog_threshold_error = 90\nendif\n\nif !exists('g:syntastic_ruby_flog_sort')\n    let g:syntastic_ruby_flog_sort = 1\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_ruby_flog_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args': '-a' })\n\n    \" Example output:\n    \"   93.25: MyClass::my_method my_file:42\n    let errorformat = '%\\m%\\s%#%m: %.%# %f:%l'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'subtype': 'Style' })\n\n    let trail_w = syntastic#util#float2str(g:syntastic_ruby_flog_threshold_warning) . ')'\n    let trail_e = syntastic#util#float2str(g:syntastic_ruby_flog_threshold_error) . ')'\n    for e in loclist\n      let score = syntastic#util#str2float(e['text'])\n\n      let e['text'] = 'Complexity is too high (' . syntastic#util#float2str(score) . '/'\n      if score < g:syntastic_ruby_flog_threshold_warning\n          let e['valid'] = 0\n      elseif score < g:syntastic_ruby_flog_threshold_error\n          let e['type'] = 'W'\n          let e['text'] .= trail_w\n      else\n          let e['type'] = 'E'\n          let e['text'] .= trail_e\n      endif\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'ruby',\n    \\ 'name': 'flog'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/ruby/jruby.vim",
    "content": "\"============================================================================\n\"File:        jruby.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Leonid Shevtsov <leonid at shevtsov dot me>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_ruby_jruby_checker')\n    finish\nendif\nlet g:loaded_syntastic_ruby_jruby_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_ruby_jruby_GetLocList() dict\n    let makeprg = self.makeprgBuild({\n        \\ 'args': (syntastic#util#isRunningWindows() ? '-T1 -W1' : '-W1'),\n        \\ 'args_after': '-c' })\n\n    let errorformat =\n        \\ '%-GSyntax OK for %f,'.\n        \\ '%ESyntaxError in %f:%l: syntax error\\, %m,'.\n        \\ '%Z%p^,'.\n        \\ '%W%f:%l: warning: %m,'.\n        \\ '%Z%p^,'.\n        \\ '%W%f:%l: %m,'.\n        \\ '%-C%.%#'\n\n    let env = syntastic#util#isRunningWindows() ? {} : { 'RUBYOPT': '' }\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'env': env })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'ruby',\n    \\ 'name': 'jruby'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/ruby/macruby.vim",
    "content": "\"============================================================================\n\"File:        macruby.vim\n\"Description: Syntax checking plugin for syntastic\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_ruby_macruby_checker')\n    finish\nendif\nlet g:loaded_syntastic_ruby_macruby_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_ruby_macruby_GetLocList() dict\n    let makeprg = self.makeprgBuild({\n        \\ 'args': '-W1',\n        \\ 'args_after': '-c' })\n\n    let errorformat =\n        \\ '%-GSyntax OK,'.\n        \\ '%E%f:%l: syntax error\\, %m,'.\n        \\ '%Z%p^,'.\n        \\ '%W%f:%l: warning: %m,'.\n        \\ '%Z%p^,'.\n        \\ '%W%f:%l: %m,'.\n        \\ '%-C%.%#'\n\n    let env = { 'RUBYOPT': '' }\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'env': env })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'ruby',\n    \\ 'name': 'macruby'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/ruby/mri.vim",
    "content": "\"============================================================================\n\"File:        mri.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Martin Grenfell <martin.grenfell at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_ruby_mri_checker')\n    finish\nendif\nlet g:loaded_syntastic_ruby_mri_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_ruby_mri_IsAvailable() dict\n    if !exists('g:syntastic_ruby_mri_exec') && exists('g:syntastic_ruby_exec')\n        let g:syntastic_ruby_mri_exec = g:syntastic_ruby_exec\n        call self.log('g:syntastic_ruby_exec =', g:syntastic_ruby_exec)\n    endif\n    return executable(self.getExec())\nendfunction\n\nfunction! SyntaxCheckers_ruby_mri_GetHighlightRegex(i)\n    if stridx(a:i['text'], 'assigned but unused variable') >= 0\n        let term = split(a:i['text'], ' - ')[1]\n        return '\\V\\<' . escape(term, '\\') . '\\>'\n    endif\n\n    return ''\nendfunction\n\nfunction! SyntaxCheckers_ruby_mri_GetLocList() dict\n    let makeprg = self.makeprgBuild({\n        \\ 'args': '-w -T1',\n        \\ 'args_after': '-c' })\n\n    \"this is a hack to filter out a repeated useless warning in rspec files\n    \"containing lines like\n    \"\n    \"  foo.should == 'bar'\n    \"\n    \"Which always generate the warning below. Note that ruby >= 1.9.3 includes\n    \"the word \"possibly\" in the warning\n    let errorformat = '%-G%\\m%.%#warning: %\\%%(possibly %\\)%\\?useless use of == in void context,'\n\n    \" filter out lines starting with ...\n    \" long lines are truncated and wrapped in ... %p then returns the wrong\n    \" column offset\n    let errorformat .= '%-G%\\%.%\\%.%\\%.%.%#,'\n\n    let errorformat .=\n        \\ '%-GSyntax OK,'.\n        \\ '%E%f:%l: syntax error\\, %m,'.\n        \\ '%Z%p^,'.\n        \\ '%W%f:%l: warning: %m,'.\n        \\ '%Z%p^,'.\n        \\ '%W%f:%l: %m,'.\n        \\ '%-C%.%#'\n\n    let env = syntastic#util#isRunningWindows() ? {} : { 'RUBYOPT': '' }\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'env': env })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'ruby',\n    \\ 'name': 'mri',\n    \\ 'exec': 'ruby'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/ruby/reek.vim",
    "content": "\"============================================================================\n\"File:        reek.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Mindaugas Mozūras\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_ruby_reek_checker')\n    finish\nendif\nlet g:loaded_syntastic_ruby_reek_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_ruby_reek_IsAvailable() dict\n    if !executable(self.getExec())\n        return 0\n    endif\n    return syntastic#util#versionIsAtLeast(self.getVersion(), [1, 3, 0])\nendfunction\n\nfunction! SyntaxCheckers_ruby_reek_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_before': '--no-color --line-number --single-line' })\n\n    let errorformat =\n        \\ '%E%.%#: Racc::ParseError: %f:%l :: %m,' .\n        \\ '%W%f:%l: %m'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'returns': [0, 2] })\n\n    for e in loclist\n        if e['type'] ==? 'W'\n            let e['subtype'] = 'Style'\n        endif\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'ruby',\n    \\ 'name': 'reek'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/ruby/rubocop.vim",
    "content": "\"============================================================================\n\"File:        rubocop.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Recai Oktaş <roktas@bil.omu.edu.tr>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_ruby_rubocop_checker')\n    finish\nendif\nlet g:loaded_syntastic_ruby_rubocop_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_ruby_rubocop_IsAvailable() dict\n    if !executable(self.getExec())\n        return 0\n    endif\n    return syntastic#util#versionIsAtLeast(self.getVersion(), [0, 12, 0])\nendfunction\n\nfunction! SyntaxCheckers_ruby_rubocop_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_after': '--format emacs' })\n\n    let errorformat = '%f:%l:%c: %t: %m'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'subtype': 'Style'})\n\n    \" convert rubocop severities to error types recognized by syntastic\n    for e in loclist\n        if e['type'] ==# 'F'\n            let e['type'] = 'E'\n        elseif e['type'] !=# 'W' && e['type'] !=# 'E'\n            let e['type'] = 'W'\n        endif\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'ruby',\n    \\ 'name': 'rubocop'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/ruby/rubylint.vim",
    "content": "\"============================================================================\n\"File:        rubylint.vim\n\"Description: Checks Ruby source code using ruby-lint\n\"Maintainer:  Yorick Peterse <yorickpeterse@gmail.com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_ruby_rubylint_checker')\n    finish\nendif\n\nlet g:loaded_syntastic_ruby_rubylint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_ruby_rubylint_GetLocList() dict\n    if !exists('s:rubylint_new')\n        let s:rubylint_new = syntastic#util#versionIsAtLeast(self.getVersion(), [2])\n    endif\n    let makeprg = self.makeprgBuild({\n        \\ 'args': (s:rubylint_new ? '' : 'analyze '),\n        \\ 'args_after': '--presenter=syntastic' })\n\n    let errorformat = '%f:%t:%l:%c: %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'ruby',\n    \\ 'name': 'rubylint',\n    \\ 'exec': 'ruby-lint'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/ruby/sorbet.vim",
    "content": "\"============================================================================\n\"File:        sorbet.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Tom Morton <tomm@riseup.net>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_ruby_sorbet_checker')\n    finish\nendif\nlet g:loaded_syntastic_ruby_sorbet_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_ruby_sorbet_IsAvailable() dict\n    if !executable(self.getExec())\n        return 0\n    endif\n    return syntastic#util#versionIsAtLeast(self.getVersion(), [0, 1, 0])\nendfunction\n\nfunction! SyntaxCheckers_ruby_sorbet_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_before': 'tc' })\n\n    let errorformat = '%f:%l: %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'type': 'E',\n        \\ 'subtype': 'Style' })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'ruby',\n    \\ 'name': 'sorbet',\n    \\ 'exec': 'srb' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/sass/sass.vim",
    "content": "\"============================================================================\n\"File:        sass.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Martin Grenfell <martin.grenfell at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_sass_sass_checker')\n    finish\nendif\nlet g:loaded_syntastic_sass_sass_checker = 1\n\n\" sass caching for large files drastically speeds up the checking, but store it\n\" in a temp location otherwise sass puts .sass_cache dirs in the users project\nlet s:sass_cache_location = syntastic#util#tmpdir()\nlockvar s:sass_cache_location\n\naugroup syntastic\n    autocmd VimLeave * call syntastic#util#rmrf(s:sass_cache_location)\naugroup END\n\n\" By default do not check partials as unknown variables are a syntax error\nif !exists('g:syntastic_sass_check_partials')\n    let g:syntastic_sass_check_partials = 0\nendif\n\n\" use compass imports if available\nlet s:imports = ''\nif executable('compass')\n    let s:imports = '--compass'\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_sass_sass_GetLocList() dict\n    let buf = bufnr('')\n    if !syntastic#util#bufVar(buf, 'sass_check_partials') && fnamemodify(bufname(buf), ':t')[0] ==# '_'\n        return []\n    endif\n\n    let makeprg = self.makeprgBuild({\n        \\ 'args_before': '--cache-location ' . s:sass_cache_location . ' ' . s:imports . ' --check' })\n\n    let errorformat =\n        \\ '%E%\\m%\\%%(Syntax %\\)%\\?%trror: %m,' .\n        \\ '%+C              %.%#,' .\n        \\ '%C        on line %l of %f\\, %.%#,' .\n        \\ '%C        on line %l of %f,' .\n        \\ '%-G %\\+from line %.%#,' .\n        \\ '%-G %\\+Use --trace for backtrace.,' .\n        \\ '%W%>DEPRECATION WARNING on line %l of %f:,' .\n        \\ '%+C%>  %.%#,' .\n        \\ '%W%>WARNING: on line %l of %f:,' .\n        \\ '%+C%>  %.%#,' .\n        \\ '%W%>WARNING on line %l of %f: %m,' .\n        \\ '%+C%>  %.%#,' .\n        \\ '%W%>WARNING on line %l of %f:,' .\n        \\ '%Z%m,' .\n        \\ '%W%>WARNING: %m,' .\n        \\ '%C         on line %l of %f\\, %.%#,' .\n        \\ '%C         on line %l of %f,' .\n        \\ '%-G %\\+from line %.%#,' .\n        \\ 'Syntax %trror on line %l: %m,' .\n        \\ '%-G%.%#'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'postprocess': ['compressWhitespace'] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'sass',\n    \\ 'name': 'sass'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/sass/sass_lint.vim",
    "content": "\"============================================================================\n\"File:        sass_lint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_sass_sass_lint_checker')\n    finish\nendif\nlet g:loaded_syntastic_sass_sass_lint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_sass_sass_lint_IsAvailable() dict\n    if !executable(self.getExec())\n        return 0\n    endif\n    return syntastic#util#versionIsAtLeast(self.getVersion(), [1, 5])\nendfunction\n\nfunction! SyntaxCheckers_sass_sass_lint_GetLocList() dict\n    let makeprg = self.makeprgBuild({\n        \\ 'args': '-v',\n        \\ 'args_after': '-q -f compact' })\n\n    let errorformat =\n        \\ '%f: line %l\\, col %c\\, %trror - %m,' .\n        \\ '%f: line %l\\, col %c\\, %tarning - %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'returns': [0, 1] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'sass',\n    \\ 'name': 'sass_lint',\n    \\ 'exec': 'sass-lint' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/sass/sassc.vim",
    "content": "\"============================================================================\n\"File:        sassc.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_sass_sassc_checker')\n    finish\nendif\nlet g:loaded_syntastic_sass_sassc_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_sass_sassc_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'fname_after': syntastic#util#DevNull() })\n\n    let errorformat = '%f:%l: %trror: %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'sass',\n    \\ 'name': 'sassc'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/scala/fsc.vim",
    "content": "\"============================================================================\n\"File:        fsc.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Gregor Uhlenheuer <kongo2002 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_scala_fsc_checker')\n    finish\nendif\nlet g:loaded_syntastic_scala_fsc_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_scala_fsc_GetLocList() dict\n    call syntastic#log#deprecationWarn('scala_options', 'scala_fsc_args')\n\n    \" fsc has some serious problems with the\n    \" working directory changing after being started\n    \" that's why we better pass an absolute path\n    let buf = bufnr('')\n    let makeprg = self.makeprgBuild({\n        \\ 'args': '-Ystop-after:parser',\n        \\ 'fname': syntastic#util#shescape(fnamemodify(bufname(buf), ':p')) })\n\n    let errorformat =\n        \\ '%E%f:%l: %trror: %m,' .\n        \\ '%W%f:%l: %tarning:%m,' .\n        \\ '%Z%p^,' .\n        \\ '%-G%.%#'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'scala',\n    \\ 'name': 'fsc'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/scala/scalac.vim",
    "content": "\"============================================================================\n\"File:        scala.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Rickey Visinski <rickeyvisinski at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_scala_scalac_checker')\n    finish\nendif\nlet g:loaded_syntastic_scala_scalac_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_scala_scalac_GetLocList() dict\n    call syntastic#log#deprecationWarn('scala_options', 'scala_scalac_args')\n\n    let makeprg = self.makeprgBuild({ 'args': '-Ystop-after:parser' })\n\n    let errorformat =\n        \\ '%E%f:%l: %trror: %m,' .\n        \\ '%W%f:%l: %tarning:%m,' .\n        \\ '%Z%p^,' .\n        \\ '%-G%.%#'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'scala',\n    \\ 'name': 'scalac'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/scala/scalastyle.vim",
    "content": "\"============================================================================\n\"File:        scalastyle.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_scala_scalastyle_checker')\n    finish\nendif\nlet g:loaded_syntastic_scala_scalastyle_checker = 1\n\nif !exists('g:syntastic_scala_scalastyle_jar')\n    let g:syntastic_scala_scalastyle_jar = 'scalastyle-batch_2.10.jar'\nendif\n\nif !exists('g:syntastic_scala_scalastyle_config_file')\n    let g:syntastic_scala_scalastyle_config_file = 'scalastyle_config.xml'\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_scala_scalastyle_IsAvailable() dict\n    if !executable(self.getExec())\n        return 0\n    endif\n\n    let jar = expand(g:syntastic_scala_scalastyle_jar, 1)\n    let conf_file = expand(g:syntastic_scala_scalastyle_config_file, 1)\n    call self.log('filereadable(' . string(jar) . ') = ' . filereadable(jar) . ', ' .\n        \\ 'filereadable(' . string(conf_file) . ') = ' . filereadable(conf_file))\n\n    return filereadable(jar) && filereadable(conf_file)\nendfunction\n\nfunction! SyntaxCheckers_scala_scalastyle_GetLocList() dict\n\n    let makeprg = self.makeprgBuild({\n        \\ 'exe_after': ['-jar', expand(g:syntastic_scala_scalastyle_jar, 1)],\n        \\ 'args_before': ['-c', expand(g:syntastic_scala_scalastyle_config_file, 1)] })\n\n    let errorformat =\n        \\ '%trror file=%f message=%m line=%l column=%c,' .\n        \\ '%trror file=%f message=%m line=%l,' .\n        \\ '%tarning file=%f message=%m line=%l column=%c,' .\n        \\ '%tarning file=%f message=%m line=%l'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'subtype': 'Style',\n        \\ 'returns': [0, 1] })\n\n    for e in loclist\n        if has_key(e, 'col')\n            let e['col'] += 1\n        endif\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'scala',\n    \\ 'name': 'scalastyle',\n    \\ 'exec': 'java'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/scss/mixedindentlint.vim",
    "content": "\"============================================================================\n\"File:        mixedindentlint.vim\n\"Description: Mixed indentation linter for vim\n\"Maintainer:  Payton Swick <payton@foolord.com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_scss_mixedindentlint_checker')\n    finish\nendif\nlet g:loaded_syntastic_scss_mixedindentlint_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'scss',\n    \\ 'name': 'mixedindentlint',\n    \\ 'redirect': 'javascript/mixedindentlint'})\n\n\" vim: set et sts=4 sw=4:\n"
  },
  {
    "path": "syntax_checkers/scss/sass.vim",
    "content": "\"============================================================================\n\"File:        scss.vim\n\"Description: scss syntax checking plugin for syntastic\n\"Maintainer:  Martin Grenfell <martin.grenfell at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_scss_sass_checker')\n    finish\nendif\nlet g:loaded_syntastic_scss_sass_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'scss',\n    \\ 'name': 'sass',\n    \\ 'redirect': 'sass/sass'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/scss/sass_lint.vim",
    "content": "\"============================================================================\n\"File:        sass_lint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_scss_sass_lint_checker')\n    finish\nendif\nlet g:loaded_syntastic_scss_sass_lint_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'scss',\n    \\ 'name': 'sass_lint',\n    \\ 'redirect': 'sass/sass_lint'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/scss/sassc.vim",
    "content": "\"============================================================================\n\"File:        sassc.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_scss_sassc_checker')\n    finish\nendif\nlet g:loaded_syntastic_scss_sassc_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'scss',\n    \\ 'name': 'sassc',\n    \\ 'redirect': 'sass/sassc'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/scss/scss_lint.vim",
    "content": "\"============================================================================\n\"File:        scss_lint.vim\n\"Description: SCSS style and syntax checker plugin for Syntastic\n\"Maintainer:  Shane da Silva <shane@dasilva.io>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_scss_scss_lint_checker')\n    finish\nendif\nlet g:loaded_syntastic_scss_scss_lint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_scss_scss_lint_IsAvailable() dict\n    if !executable(self.getExec())\n        return 0\n    endif\n    return syntastic#util#versionIsAtLeast(self.getVersion(), [0, 29])\nendfunction\n\nfunction! SyntaxCheckers_scss_scss_lint_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_after': '-f JSON' })\n\n    let errorformat = '%f:%t:%l:%c:%n:%m'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'preprocess': 'scss_lint',\n        \\ 'postprocess': ['guards'],\n        \\ 'returns': [0, 1, 2, 65, 66] })\n\n    let cutoff = strlen('Syntax Error: ')\n    for e in loclist\n        if e['nr'] > 1\n            let e['hl'] = '\\%>' . (e['col'] - 1) . 'c\\%<' . (e['col'] + e['nr']) . 'c'\n        endif\n        let e['nr'] = 0\n\n        if e['text'][: cutoff-1] ==# 'Syntax Error: '\n            let e['text'] = e['text'][cutoff :]\n        else\n            let e['subtype'] = 'Style'\n        endif\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'scss',\n    \\ 'name': 'scss_lint',\n    \\ 'exec': 'scss-lint' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/sh/bashate.vim",
    "content": "\"============================================================================\n\"File:        bashate.vim\n\"Description: Bash script style checking plugin for syntastic\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_sh_bashate_checker')\n    finish\nendif\nlet g:loaded_syntastic_sh_bashate_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_sh_bashate_GetLocList() dict\n    let makeprg = self.makeprgBuild({})\n\n    let errorformat =\n        \\ '%\\m%f:%l:%c: %t%n %m,' .\n        \\ '%A%\\s%#[%t] E%n: %m,' .\n        \\ '%EE%n: %m,' .\n        \\ '%Z - %f%\\s%\\+: L%l,' .\n        \\ '%-G%.%#'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'subtype': 'Style',\n        \\ 'returns': [0, 1] })\n\n    for e in loclist\n        let e['text'] = substitute(e['text'], \"\\\\m: '.*\", '', '')\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'sh',\n    \\ 'name': 'bashate' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/sh/checkbashisms.vim",
    "content": "\"============================================================================\n\"File:        checkbashisms.vim\n\"Description: Shell script syntax/style checking plugin for syntastic\n\"Notes:       checkbashisms.pl can be downloaded from\n\"             http://debian.inode.at/debian/pool/main/d/devscripts/\n\"             as part of the devscripts package.\n\"============================================================================\n\nif exists('g:loaded_syntastic_sh_checkbashisms_checker')\n    finish\nendif\nlet g:loaded_syntastic_sh_checkbashisms_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_sh_checkbashisms_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args': '-fx' })\n\n    let errorformat =\n        \\ '%-Gscript %f is already a bash script; skipping,' .\n        \\ '%Eerror: %f: %m\\, opened in line %l,' .\n        \\ '%Eerror: %f: %m,' .\n        \\ '%Ecannot open script %f for reading: %m,' .\n        \\ '%Wscript %f %m,%C%.# lines,' .\n        \\ '%Wpossible bashism in %f line %l (%m):,%C%.%#,%Z.%#,' .\n        \\ '%-G%.%#'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'subtype': 'Style' })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'sh',\n    \\ 'name': 'checkbashisms' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/sh/sh.vim",
    "content": "\"============================================================================\n\"File:        sh.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Gregor Uhlenheuer <kongo2002 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_sh_sh_checker')\n    finish\nendif\nlet g:loaded_syntastic_sh_sh_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_sh_sh_IsAvailable() dict \" {{{1\n    let buf = bufnr('')\n    call self.log('shell =', s:GetShell(buf))\n    return s:IsShellValid(buf)\nendfunction \" }}}1\n\nfunction! SyntaxCheckers_sh_sh_GetLocList() dict \" {{{1\n    let buf = bufnr('')\n    if s:GetShell(buf) ==# 'zsh'\n        return s:ForwardToZshChecker()\n    endif\n\n    if !s:IsShellValid(buf)\n        return []\n    endif\n\n    let makeprg = self.makeprgBuild({\n        \\ 'exe': s:GetShell(buf),\n        \\ 'args_after': '-n' })\n\n    let errorformat =\n        \\ '%f: %tarning: line %l: %m,' .\n        \\ '%f: line %l: %m,' .\n        \\ '%f: syntax error at line %l: %m,' .\n        \\ '%f[%l]: %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\nendfunction \" }}}1\n\n\" Utilities {{{1\n\nfunction! s:GetShell(buf) \" {{{2\n    let shell = syntastic#util#getbufvar(a:buf, 'shell')\n    if shell ==# ''\n        let shebang = syntastic#util#parseShebang(a:buf)['exe']\n        if shebang !=# ''\n            if shebang[-strlen('bash'):-1] ==# 'bash'\n                let shell = 'bash'\n            elseif shebang[-strlen('zsh'):-1] ==# 'zsh'\n                let shell = 'zsh'\n            elseif shebang[-strlen('sh'):-1] ==# 'sh'\n                let shell = 'sh'\n            endif\n        endif\n        \" try to use env variable in case no shebang could be found\n        if shell ==# ''\n            let shell = fnamemodify($SHELL, ':t')\n        endif\n    endif\n    return shell\nendfunction \" }}}2\n\nfunction! s:IsShellValid(buf) \" {{{2\n    let shell = s:GetShell(a:buf)\n    return shell !=# '' && executable(shell)\nendfunction \" }}}2\n\nfunction! s:ForwardToZshChecker() \" {{{2\n    let registry = g:SyntasticRegistry.Instance()\n    let zsh_checkers = registry.getCheckersAvailable('zsh', ['zsh'])\n    if !empty(zsh_checkers)\n        return zsh_checkers[0].getLocListRaw()\n    else\n        return []\n    endif\nendfunction \" }}}2\n\n\" }}}1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'sh',\n    \\ 'name': 'sh' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/sh/shellcheck.vim",
    "content": "\"============================================================================\n\"File:        shellcheck.vim\n\"Description: Shell script syntax/style checking plugin for syntastic\n\"============================================================================\n\nif exists('g:loaded_syntastic_sh_shellcheck_checker')\n    finish\nendif\nlet g:loaded_syntastic_sh_shellcheck_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_sh_shellcheck_GetLocList() dict \" {{{1\n    let buf = bufnr('')\n    let makeprg = self.makeprgBuild({\n        \\ 'args': s:GetShell(buf),\n        \\ 'args_after': '-f gcc' })\n\n    let errorformat =\n        \\ '%f:%l:%c: %trror: %m,' .\n        \\ '%f:%l:%c: %tarning: %m,' .\n        \\ '%f:%l:%c: %tote: %m'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'returns': [0, 1] })\n\n    for e in loclist\n        if e['type'] ==? 'n'\n            let e['type'] = 'w'\n            let e['subtype'] = 'Style'\n        endif\n    endfor\n\n    return loclist\nendfunction \" }}}1\n\n\" Utilities {{{1\n\nfunction! s:GetShell(buf) \" {{{2\n    let sh = ''\n\n    if syntastic#util#parseShebang(a:buf)['exe'] ==# ''\n        if syntastic#util#bufRawVar(a:buf, 'is_kornshell', 0) || syntastic#util#bufRawVar(a:buf, 'is_posix', 0)\n            let sh = 'ksh'\n        elseif syntastic#util#bufRawVar(a:buf, 'is_bash', 0)\n            let sh = 'bash'\n        elseif syntastic#util#bufRawVar(a:buf, 'is_sh', 0)\n            let sh = 'sh'\n        endif\n    endif\n\n    return sh !=# '' ? '-s ' . sh : ''\nendfunction \" }}}2\n\n\" }}}1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'sh',\n    \\ 'name': 'shellcheck' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/sh/shfmt.vim",
    "content": "\"============================================================================\n\"File:        shfmt.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_sh_shfmt_checker')\n    finish\nendif\nlet g:loaded_syntastic_sh_shfmt_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_sh_shfmt_GetLocList() dict\n    let makeprg = self.makeprgBuild({})\n\n    let errorformat =\n        \\ '%f:%l:%c: %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'returns': [0, 1] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'sh',\n    \\ 'name': 'shfmt'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/slim/slim_lint.vim",
    "content": "\"============================================================================\n\"File:        slim_lint.vim\n\"Description: Slim style and syntax checker plugin for Syntastic\n\"Maintainer:  Vasily Kolesnikov <re.vkolesnikov@gmail.com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_slim_slim_lint_checker')\n    finish\nendif\nlet g:loaded_syntastic_slim_slim_lint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_slim_slim_lint_GetLocList() dict\n    let makeprg = self.makeprgBuild({})\n\n    let errorformat = '%f:%l [%t] %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'subtype': 'Style'})\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'slim',\n    \\ 'name': 'slim_lint',\n    \\ 'exec': 'slim-lint' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/slim/slimrb.vim",
    "content": "\"============================================================================\n\"File:        slim.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Martin Grenfell <martin.grenfell at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_slim_slimrb_checker')\n    finish\nendif\nlet g:loaded_syntastic_slim_slimrb_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_slim_slimrb_GetLocList() dict\n    if !exists('s:slimrb_new')\n        let ver = self.getVersion(self.getExecEscaped() . ' --version 2>'. syntastic#util#DevNull())\n        let s:slimrb_new = syntastic#util#versionIsAtLeast(ver, [1, 3, 1])\n    endif\n\n    let makeprg = self.makeprgBuild({ 'args_after': '-c' })\n\n    if s:slimrb_new\n        let errorformat =\n            \\ '%C %#%f\\, Line %l\\, Column %c,'.\n            \\ '%-G %.%#,'.\n            \\ '%ESlim::Parser::SyntaxError: %m,'.\n            \\ '%+C%.%#'\n    else\n        let errorformat =\n            \\ '%C %#%f\\, Line %l,'.\n            \\ '%-G %.%#,'.\n            \\ '%ESlim::Parser::SyntaxError: %m,'.\n            \\ '%+C%.%#'\n    endif\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'slim',\n    \\ 'name': 'slimrb'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/sml/smlnj.vim",
    "content": "\"============================================================================\n\"File:        smlnj.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_sml_smlnj_checker')\n    finish\nendif\nlet g:loaded_syntastic_sml_smlnj_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_sml_smlnj_GetLocList() dict\n    let makeprg = self.makeprgBuild({})\n\n    let errorformat =\n        \\ '%E%f:%l%\\%.%c %trror: %m,' .\n        \\ '%E%f:%l%\\%.%c-%\\d%\\+%\\%.%\\d%\\+ %trror: %m,' .\n        \\ '%W%f:%l%\\%.%c %tarning: %m,' .\n        \\ '%W%f:%l%\\%.%c-%\\d%\\+%\\%.%\\d%\\+ %tarning: %m,' .\n        \\ '%C%\\s%\\+%m,' .\n        \\ '%-G%.%#'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'postprocess': ['compressWhitespace'],\n        \\ 'returns': [0, 1] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'sml',\n    \\ 'name': 'smlnj',\n    \\ 'exec': 'sml'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/solidity/solc.vim",
    "content": "\"============================================================================\n\"File:        solc.vim\n\"Description: Solidity syntax checker - using solc\n\"Maintainer:  Jacob Cholewa <jacob@cholewa.dk>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_solidity_solc_checker')\n    finish\nendif\nlet g:loaded_syntastic_solidity_solc_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_solidity_solc_GetLocList() dict\n    let makeprg = self.makeprgBuild({})\n\n    let errorformat =\n        \\ '%f:%l:%c: %trror: %m,' .\n        \\ '%f:%l:%c: %tarning: %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'solidity',\n    \\ 'name': 'solc'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/solidity/solhint.vim",
    "content": "\"============================================================================\n\"File:        solhint.vim\n\"Description: Solidity syntax checker - using solhint\n\"Maintainer:  Brett Sun <qisheng.brett.sun@gmail.com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_solidity_solhint_checker')\n    finish\nendif\nlet g:loaded_syntastic_solidity_solhint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_solidity_solhint_GetLocList() dict\n    let makeprg = self.makeprgBuild({\n        \\ 'args_after': '-f compact' })\n\n    let errorformat =\n        \\ '%E%f: line %l\\, col %c\\, Error - %m,' .\n        \\ '%W%f: line %l\\, col %c\\, Warning - %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'subtype': 'Style',\n        \\ 'returns': [0, 1] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'solidity',\n    \\ 'name': 'solhint'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/solidity/solium.vim",
    "content": "\"============================================================================\n\"File:        solium.vim\n\"Description: Solidity syntax checker - using solium\n\"Maintainer:  Matthijs van den Bos <matthijs@vandenbos.org>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_solidity_solium_checker')\n    finish\nendif\nlet g:loaded_syntastic_solidity_solium_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_solidity_solium_GetLocList() dict\n    let makeprg = self.makeprgBuild({\n        \\ 'args_after': '-R gcc',\n        \\ 'fname_before': '--file'})\n\n    let errorformat =\n        \\ '%f:%l:%c: %trror: %m,' .\n        \\ '%f:%l:%c: %tarning: %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'returns': [0, 1] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'solidity',\n    \\ 'name': 'solium'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/spec/rpmlint.vim",
    "content": "\"============================================================================\n\"File:        rpmlint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_spec_rpmlint_checker')\n    finish\nendif\nlet g:loaded_syntastic_spec_rpmlint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_spec_rpmlint_GetLocList() dict\n    let makeprg = self.makeprgBuild({})\n\n    let errorformat =\n        \\ '%E%f:%l: E: %m,' .\n        \\ '%E%f: E: %m,' .\n        \\ '%W%f:%l: W: %m,' .\n        \\ '%W%f: W: %m,' .\n        \\ '%-G%.%#'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'spec',\n    \\ 'name': 'rpmlint'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/sql/sqlint.vim",
    "content": "\"============================================================================\n\"File:        sqlint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Steve Purcell <steve@sanityinc.com>\n\"License:     MIT\n\"============================================================================\n\nif exists('g:loaded_syntastic_sql_sqlint_checker')\n    finish\nendif\nlet g:loaded_syntastic_sql_sqlint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_sql_sqlint_GetHighlightRegex(i)\n    let term = matchstr(a:i['text'], '\\m at or near \"\\zs[^\"]\\+\\ze\"')\n    return term !=# '' ? '\\V\\<' . escape(term, '\\') . '\\>' : ''\nendfunction\n\nfunction! SyntaxCheckers_sql_sqlint_IsAvailable() dict\n    if !executable(self.getExec())\n        return 0\n    endif\n    return syntastic#util#versionIsAtLeast(self.getVersion(), [0, 0, 3])\nendfunction\n\nfunction! SyntaxCheckers_sql_sqlint_GetLocList() dict\n    let makeprg = self.makeprgBuild({})\n\n    let errorformat =\n        \\ '%E%f:%l:%c:ERROR %m,' .\n        \\ '%W%f:%l:%c:WARNING %m,' .\n        \\ '%C %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'subtype': 'Style',\n        \\ 'returns': [0, 1] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'sql',\n    \\ 'name': 'sqlint'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/sql/tsqllint.vim",
    "content": "\"============================================================================\n\"File:        tsqllint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Daniel Walker <dwalker@fifo99.com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_sql_tsqllint_checker')\n    finish\nendif\n\nlet g:loaded_syntastic_sql_tsqllint_checker = 1\n\nif exists('g:syntastic_sql_tsqllint_sort')\n    let g:syntastic_sql_tsqllint_sort = 1\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_sql_tsqllint_GetLocList() dict\n    let makeprg = self.makeprgBuild({})\n\n    let errorformat = '%f(%l\\,%c): %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'sql',\n    \\ 'name': 'tsqllint'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/stylus/stylint.vim",
    "content": "\"============================================================================\n\"File:        stylint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_stylus_stylint_checker')\n    finish\nendif\nlet g:loaded_syntastic_stylus_stylint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_stylus_stylint_GetLocList() dict\n    if !exists('s:stylint_new')\n        let s:stylint_new = syntastic#util#versionIsAtLeast(self.getVersion(), [1, 5, 7])\n    endif\n\n    let makeprg = self.makeprgBuild({})\n\n    if s:stylint_new\n        let errorformat =\n            \\ '%P%f,' .\n            \\ '%-Q,' .\n            \\ '%\\m%l:%c%\\s%\\+%t%\\%%(rror%\\|arning%\\)%\\s%\\+%m%\\s%\\+%\\S%\\+%\\s%#,' .\n            \\ '%\\m%l%\\s%\\+%t%\\%%(rror%\\|arning%\\)%\\s%\\+%m%\\s%\\+%\\S%\\+%\\s%#'\n    else\n        let errorformat =\n            \\ '%WWarning: %m,' .\n            \\ '%EError: %m,' .\n            \\ '%CFile: %f,' .\n            \\ '%CLine: %l:%.%#'\n    endif\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'subtype': 'Style' })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'stylus',\n    \\ 'name': 'stylint'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/svg/validator.vim",
    "content": "\"============================================================================\n\"File:        validator.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_svg_validator_checker')\n    finish\nendif\nlet g:loaded_syntastic_svg_validator_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'svg',\n    \\ 'name': 'validator',\n    \\ 'redirect': 'html/validator'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/svg/w3.vim",
    "content": "\"============================================================================\n\"File:        w3.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Kevin Locke <kevin@kevinlocke.name>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_svg_w3_checker')\n    finish\nendif\nlet g:loaded_syntastic_svg_w3_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'svg',\n    \\ 'name': 'w3',\n    \\ 'redirect': 'html/w3'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/tcl/nagelfar.vim",
    "content": "\"============================================================================\n\"File:        nagelfar.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  James Pickard <james.pickard at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\"\n\"Notes:       Requires nagelfar v1.1.12 or later with support for -H option.\n\"             See nagelfar homepage http://nagelfar.berlios.de/.\n\nif exists('g:loaded_syntastic_tcl_nagelfar_checker')\n    finish\nendif\nlet g:loaded_syntastic_tcl_nagelfar_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_tcl_nagelfar_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_after': '-H' })\n\n    let errorformat =\n        \\ '%I%f: %l: N %m,'.\n        \\ '%f: %l: %t %m,'.\n        \\ '%-GChecking file %f'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'tcl',\n    \\ 'name': 'nagelfar'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/tex/chktex.vim",
    "content": "\"============================================================================\n\"File:        chktex.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_tex_chktex_checker')\n    finish\nendif\nlet g:loaded_syntastic_tex_chktex_checker = 1\n\nif !exists('g:syntastic_tex_chktex_showmsgs')\n    let g:syntastic_tex_chktex_showmsgs = 1\nendif\n\nif !exists('g:syntastic_tex_chktex_sort')\n    let g:syntastic_tex_chktex_sort = 1\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_tex_chktex_GetLocList() dict\n    if !exists('s:sumb_quoting')\n        let s:dumb_quoting = syntastic#util#isRunningWindows() && exists('+shellslash') && !&shellslash\n    endif\n    let makeprg = self.makeprgBuild({ 'args_after': (s:dumb_quoting ? ['-q', '-v1'] : ['-q', '-f', \"%k:%n:%f:%l:%c:%m\\n\"]) })\n\n    let errorformat =\n        \\ '%EError:%n:%f:%l:%v:%m,' .\n        \\ '%WWarning:%n:%f:%l:%v:%m,' .\n        \\ (g:syntastic_tex_chktex_showmsgs ? '%WMessage:%n:%f:%l:%v:%m,' : '') .\n        \\ '%EError %n in %f line %l: %m,' .\n        \\ '%WWarning %n in %f line %l: %m,' .\n        \\ (g:syntastic_tex_chktex_showmsgs ? '%WMessage %n in %f line %l: %m,' : '') .\n        \\ '%Z%p^,' .\n        \\ '%-G%.%#'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'subtype': 'Style' })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'tex',\n    \\ 'name': 'chktex'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/tex/lacheck.vim",
    "content": "\"============================================================================\n\"File:        tex.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Martin Grenfell <martin.grenfell at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_tex_lacheck_checker')\n    finish\nendif\nlet g:loaded_syntastic_tex_lacheck_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_tex_lacheck_GetLocList() dict\n    let makeprg = self.makeprgBuild({})\n\n    let errorformat =\n        \\ '%-G** %f:,' .\n        \\ '%E\"%f\"\\, line %l: %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'tex',\n    \\ 'name': 'lacheck'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/tex/proselint.vim",
    "content": "\"============================================================================\n\"File:        proselint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_tex_proselint_checker')\n    finish\nendif\nlet g:loaded_syntastic_tex_proselint_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'tex',\n    \\ 'name': 'proselint',\n    \\ 'redirect': 'text/proselint'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/texinfo/makeinfo.vim",
    "content": "\"============================================================================\n\"File:        makeinfo.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_texinfo_makeinfo_checker')\n    finish\nendif\nlet g:loaded_syntastic_texinfo_makeinfo_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_texinfo_makeinfo_GetHighlightRegex(item)\n    let term = matchstr(a:item['text'], \"\\\\m`\\\\zs[^']\\\\+\\\\ze'\")\n    return term !=# '' ? '\\V' . escape(term, '\\') : ''\nendfunction\n\nfunction! SyntaxCheckers_texinfo_makeinfo_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_after': syntastic#c#NullOutput() })\n\n    let errorformat =\n        \\ '%f:%l: %tarning: %m,' .\n        \\ '%f:%l: %m,' .\n        \\ '%-G%.%#'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'type': 'e' })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'texinfo',\n    \\ 'name': 'makeinfo'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/texinfo/proselint.vim",
    "content": "\"============================================================================\n\"File:        proselint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_texinfo_proselint_checker')\n    finish\nendif\nlet g:loaded_syntastic_texinfo_proselint_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'texinfo',\n    \\ 'name': 'proselint',\n    \\ 'redirect': 'text/proselint'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/text/atdtool.vim",
    "content": "\"============================================================================\n\"File:        atdtool.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_text_atdtool_checker')\n    finish\nendif\nlet g:loaded_syntastic_text_atdtool_checker = 1\n\nif !exists('g:syntastic_text_atdtool_sort')\n    let g:syntastic_text_atdtool_sort = 1\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_text_atdtool_GetHighlightRegex(item)\n    let term = matchstr(a:item['text'], '\\m \"\\zs[^\"]\\+\\ze\"\\($\\| | suggestions:\\)')\n    if term !=# ''\n        let col = get(a:item, 'col', 0)\n        let term = (col != 0 ? '\\%' . col . 'c' : '') . '\\V' . escape(term, '\\')\n    endif\n    return term\nendfunction\n\nfunction! SyntaxCheckers_text_atdtool_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'tail': '2> ' . syntastic#util#DevNull() })\n\n    let errorformat =\n        \\ '%W%f:%l:%c: %m,'.\n        \\ '%+C  suggestions:%.%#'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'returns': [0],\n        \\ 'subtype': 'Style' })\n\n    for e in loclist\n        let e['text'] = substitute(e['text'], '\\m\\n\\s\\+', ' | ', 'g')\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'text',\n    \\ 'name': 'atdtool'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/text/igor.vim",
    "content": "\"============================================================================\n\"File:        igor.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_text_igor_checker')\n    finish\nendif\nlet g:loaded_syntastic_text_igor_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'text',\n    \\ 'name': 'igor',\n    \\ 'redirect': 'docbk/igor'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/text/language_check.vim",
    "content": "\"============================================================================\n\"File:        language_check.vim\n\"Description: Grammar checker (https://github.com/myint/language-check)\n\"Authors:     Steven Myint <git@stevenmyint.com>\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_text_language_check_checker')\n    finish\nendif\nlet g:loaded_syntastic_text_language_check_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_text_language_check_GetLocList() dict\n    let makeprg = self.makeprgBuild({})\n\n    let errorformat =\n        \\ '%f:%l:%c: %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'subtype': 'Style',\n        \\ 'returns': [0, 2] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'text',\n    \\ 'name': 'language_check',\n    \\ 'exec': 'language-check'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/text/proselint.vim",
    "content": "\"============================================================================\n\"File:        proselint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_text_proselint_checker')\n    finish\nendif\nlet g:loaded_syntastic_text_proselint_checker = 1\n\nif !exists('g:syntastic_text_proselint_sort')\n    let g:syntastic_text_proselint_sort = 1\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_text_proselint_GetLocList() dict\n    let makeprg = self.makeprgBuild({})\n\n    let errorformat = '%f:%l:%c: %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'defaults': { 'type': 'W', 'subtype': 'Style' },\n        \\ 'preprocess': 'iconv',\n        \\ 'returns': [0, 1] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'text',\n    \\ 'name': 'proselint'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/text/textlint.vim",
    "content": "\"============================================================================\n\"File:        textlint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_text_textlint_checker')\n    finish\nendif\nlet g:loaded_syntastic_text_textlint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_text_textlint_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_after': '-f compact' })\n\n    let errorformat =\n        \\ '%f: line %l\\, col %c\\, %tarning - %m,' .\n        \\ '%f: line %l\\, col %c\\, %trror - %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'subtype': 'Style',\n        \\ 'returns': [0, 1] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'text',\n    \\ 'name': 'textlint'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/trig/rapper.vim",
    "content": "\"============================================================================\n\"File:        rapper.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Sebastian Tramp <mail@sebastian.tramp.name>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_trig_rapper_checker')\n    finish\nendif\nlet g:loaded_syntastic_trig_rapper_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'trig',\n    \\ 'name': 'rapper',\n    \\ 'redirect': 'turtle/rapper'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/turtle/rapper.vim",
    "content": "\"============================================================================\n\"File:        rapper.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Sebastian Tramp <mail@sebastian.tramp.name>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_turtle_rapper_checker')\n    finish\nendif\nlet g:loaded_syntastic_turtle_rapper_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_turtle_rapper_GetHighlightRegex(item)\n    let term = matchstr(a:item['text'], '\\mFailed to convert qname \\zs\\S\\+\\ze to URI')\n    return term !=# '' ? '\\V\\<' . escape(term, '\\') . '\\>' : ''\nendfunction\n\nfunction! SyntaxCheckers_turtle_rapper_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args': '-i guess -q --count' })\n\n    let errorformat =\n        \\ 'rapper: %trror - URI file://%f:%l - %m,' .\n        \\ 'rapper: %tarning - URI file://%f:%l - %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'returns': [0, 1] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'turtle',\n    \\ 'name': 'rapper'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/turtle/ttl.vim",
    "content": "\"============================================================================\n\"File:        ttl.vim\n\"Description: turtle syntax checker - using ttl from turtle-validator (npm)\n\"Maintainer:  Antoine Reilles (tonio@NetBSD.org)\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"============================================================================\n\nif exists('g:loaded_syntastic_turtle_ttl_checker')\n    finish\nendif\nlet g:loaded_syntastic_turtle_ttl_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_turtle_ttl_GetHighlightRegex(item)\n    let term = matchstr(a:item['text'], '\\m\"\\zs[^\"]\\+\\ze\"')\n    return term !=# '' ? '\\V\\<' . escape(term, '\\') . '\\>' : ''\nendfunction\n\nfunction! SyntaxCheckers_turtle_ttl_GetLocList() dict\n    let makeprg = self.makeprgBuild({})\n\n    let errorformat = '%\\m[Error: %m %\\%%(at%\\|on%\\) line %l%\\%.]'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'defaults': {'bufnr': bufnr('')} })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'turtle',\n    \\ 'name': 'ttl'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/twig/twigcs.vim",
    "content": "\"============================================================================\n\"File:        twigcs.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Ciloe <escrichjimmy at yahoo dot fr>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_twig_twigcs_checker')\n    finish\nendif\nlet g:loaded_syntastic_twig_twigcs_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_twig_twigcs_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_after': '--reporter=emacs' })\n\n    let errorformat =\n        \\ '%f:%l:%c: %trror - %m,' .\n        \\ '%f:%l:%c: %tarning - %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'subtype': 'Style' })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'twig',\n    \\ 'name': 'twigcs' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/twig/twiglint.vim",
    "content": "\"============================================================================\n\"File:        twig.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Alexander <iam.asm89 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_twig_twiglint_checker')\n    finish\nendif\nlet g:loaded_syntastic_twig_twiglint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_twig_twiglint_GetLocList() dict\n    let makeprg = self.makeprgBuild({\n        \\ 'args_before': 'lint',\n        \\ 'args_after': '--format=csv' })\n\n    let errorformat = '\"%f\"\\,%l\\,%m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat})\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'twig',\n    \\ 'name': 'twiglint',\n    \\ 'exec': 'twig-lint'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/typescript/eslint.vim",
    "content": "\"============================================================================\n\"File:        eslint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_typescript_eslint_checker')\n    finish\nendif\nlet g:loaded_syntastic_typescript_eslint_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'typescript',\n    \\ 'name': 'eslint',\n    \\ 'redirect': 'javascript/eslint'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/typescript/lynt.vim",
    "content": "\"============================================================================\n\"File:        lynt.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_typescript_lynt_checker')\n    finish\nendif\nlet g:loaded_syntastic_typescript_lynt_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'typescript',\n    \\ 'name': 'lynt',\n    \\ 'redirect': 'javascript/lynt'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/typescript/tslint.vim",
    "content": "\"============================================================================\n\"File:        typescript/tslint.vim\n\"Description: TypeScript linter\n\"Maintainer:  Seon-Wook Park <seon.wook@swook.net>\n\"============================================================================\n\nif exists('g:loaded_syntastic_typescript_tslint_checker')\n    finish\nendif\nlet g:loaded_syntastic_typescript_tslint_checker = 1\n\nif !exists('g:syntastic_typescript_tslint_sort')\n    let g:syntastic_typescript_tslint_sort = 1\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_typescript_tslint_GetHighlightRegex(item)\n    let term = matchstr(a:item['text'], \"\\\\m\\\\s'\\\\zs.\\\\{-}\\\\ze'\\\\s\")\n    return term !=# '' ? '\\V' . escape(term, '\\') : ''\nendfunction\n\nfunction! SyntaxCheckers_typescript_tslint_GetLocList() dict\n    if !exists('s:tslint_new')\n        let s:tslint_new = syntastic#util#versionIsAtLeast(self.getVersion(), [2, 4])\n    endif\n\n    let makeprg = self.makeprgBuild({\n        \\ 'args_after': '--format verbose',\n        \\ 'fname_before': (s:tslint_new ? '' : '-f') })\n\n    let errorformat =\n        \\ '%EERROR: %f[%l\\, %c]: %m,' .\n        \\ '%WWARNING: %f[%l\\, %c]: %m,' .\n        \\ '%E%f[%l\\, %c]: %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'preprocess': 'tslint',\n        \\ 'subtype': 'Style',\n        \\ 'returns': [0, 2] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'typescript',\n    \\ 'name': 'tslint'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/verilog/iverilog.vim",
    "content": "\"============================================================================\n\"File:        iverilog.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Psidium <psiidium at gmail dot com>\n\"License:     The MIT License\n\"============================================================================\n\nif exists('g:loaded_syntastic_verilog_iverilog_checker')\n    finish\nendif\nlet g:loaded_syntastic_verilog_iverilog_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_verilog_iverilog_GetLocList() dict\n    let makeprg = self.makeprgBuild({\n        \\ 'args_before': '-t null',\n        \\ 'args': '-Wall' })\n\n    let errorformat =\n        \\ '%f:%l: %trror: %m,' .\n        \\ '%f:%l: %tarning: %m,' .\n        \\ '%E%f:%l:      : %m,' .\n        \\ '%W%f:%l:        : %m,' .\n        \\ '%f:%l: %m'\n\n    return SyntasticMake({'makeprg': makeprg, 'errorformat': errorformat})\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'verilog',\n    \\ 'name': 'iverilog'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/verilog/verilator.vim",
    "content": "\"============================================================================\n\"File:        verilator.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Kocha <kocha dot lsifrontend at gmail dot com>\n\"============================================================================\n\nif exists('g:loaded_syntastic_verilog_verilator_checker')\n    finish\nendif\nlet g:loaded_syntastic_verilog_verilator_checker = 1\n\nif !exists('g:syntastic_verilog_compiler_options')\n    let g:syntastic_verilog_compiler_options = '-Wall'\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_verilog_verilator_IsAvailable() dict\n    if !exists('g:syntastic_verilog_compiler')\n        let g:syntastic_verilog_compiler = self.getExec()\n    endif\n    call self.log('g:syntastic_verilog_compiler =', g:syntastic_verilog_compiler)\n    return executable(expand(g:syntastic_verilog_compiler, 1))\nendfunction\n\nfunction! SyntaxCheckers_verilog_verilator_GetLocList() dict\n    return syntastic#c#GetLocList('verilog', 'verilator', {\n        \\ 'errorformat':\n        \\     '%%%trror-%\\=%\\w%#: %f:%l:%c: %m,' .\n        \\     '%%%tarning-%\\=%\\w%#: %f:%l:%c: %m,' .\n        \\     '%%%trror-%\\=%\\w%#: %f:%l: %m,' .\n        \\     '%%%tarning-%\\=%\\w%#: %f:%l: %m',\n        \\ 'main_flags': '--lint-only' })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'verilog',\n    \\ 'name': 'verilator' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/vhdl/ghdl.vim",
    "content": "\"============================================================================\n\"File:        ghdl.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Jan Wagner <jaydyou at janidom dot de>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_vhdl_ghdl_checker')\n    finish\nendif\nlet g:loaded_syntastic_vhdl_ghdl_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_vhdl_ghdl_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_before': '-s' })\n\n    let errorformat =  '%f:%l:%c: %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'vhdl',\n    \\ 'name': 'ghdl'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/vhdl/vcom.vim",
    "content": "\"============================================================================\n\"File:        vcom.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Jim Vogel <jim dot e dot vogel at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_vhdl_vcom_checker')\n    finish\nendif\nlet g:loaded_syntastic_vhdl_vcom_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_vhdl_vcom_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_before': '-lint' })\n\n    let errorformat =\n        \\ '** %tRROR: %f(%l): %m,' .\n        \\ '** %tRROR: %m,' .\n        \\ '** %tARNING: %f(%l): %m,' .\n        \\ '** %tARNING: %m,' .\n        \\ '** %tOTE: %m,' .\n        \\ '%tRROR: %f(%l): %m,' .\n        \\ '%tARNING[%*[0-9]]: %f(%l): %m,' .\n        \\ '%tRROR: %m,' .\n        \\ '%tARNING[%*[0-9]]: %m'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\n\n    for e in loclist\n        if e['type'] !=? 'E' && e['type'] !=? 'W'\n            let e['type'] = 'W'\n        endif\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'vhdl',\n    \\ 'name': 'vcom'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/vim/vimlint.vim",
    "content": "\"============================================================================\n\"File:        vimlint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_vim_vimlint_checker')\n    finish\nendif\nlet g:loaded_syntastic_vim_vimlint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_vim_vimlint_GetHighlightRegex(item) \" {{{1\n    let term = matchstr(a:item['text'], '\\m `\\zs[^`]\\+\\ze`')\n    if term !=# ''\n        let col = get(a:item, 'col', 0)\n\n        if col && term[0:1] ==# 'l:'\n            if getline(a:item.lnum)[col-1:col] !=# 'l:'\n                let term = term[2:]\n            endif\n        endif\n\n        return col ? '\\%>' . (col - 1) . 'c\\%<' . (col + strlen(term)) . 'c' : '\\V' . escape(term, '\\')\n    endif\n\n    return ''\nendfunction \" }}}1\n\nfunction! SyntaxCheckers_vim_vimlint_IsAvailable() dict \" {{{1\n    try\n        \" Vim 7.2-051 and later\n        let vimlparser = globpath(&runtimepath, 'autoload/vimlparser.vim', 1)\n        let vimlint    = globpath(&runtimepath, 'autoload/vimlint.vim', 1)\n    catch /\\m^Vim\\%((\\a\\+)\\)\\=:E118/\n        let vimlparser = globpath(&runtimepath, 'autoload/vimlparser.vim')\n        let vimlint    = globpath(&runtimepath, 'autoload/vimlint.vim')\n    endtry\n    call self.log(\"globpath(&runtimepath, 'autoload/vimlparser.vim', 1) = \" . string(vimlparser) . ', ' .\n                \\ \"globpath(&runtimepath, 'autoload/vimlint.vim', 1) = \" .    string(vimlint))\n    return vimlparser !=# '' && vimlint !=# ''\nendfunction \" }}}1\n\nfunction! SyntaxCheckers_vim_vimlint_GetLocList() dict \" {{{1\n    let buf = bufnr('')\n\n    \" EVL102: unused variable v\n    \" EVL103: unused argument v\n    \" EVL104: variable may not be initialized on some execution path: v\n    \" EVL105: global variable v is defined without g:\n    \" EVL106: local variable v is used without l:\n    \" EVL201: unreachable code\n    \" EVL204: constant in conditional context\n    \" EVL205: missing scriptencoding\n    \" value 3: the message is a warning\n    \"\n    \" References: :help vimlint-errorcode and :help vimlint-variables\n    let param = {\n        \\ 'output': function('s:vimlintOutput'),\n        \\ 'quiet':  1,\n        \\ 'EVL102': 3,\n        \\ 'EVL103': 3,\n        \\ 'EVL104': 3,\n        \\ 'EVL105': 3,\n        \\ 'EVL106': 3,\n        \\ 'EVL201': 3,\n        \\ 'EVL204': 3,\n        \\ 'EVL205': 3 }\n\n    let opts = syntastic#util#bufVar(buf, 'vimlint_options')\n    if type(opts) == type({})\n        let options = filter(copy(opts), 'v:key =~# \"\\\\m^EVL\"')\n        call extend(param, options, 'force')\n    endif\n\n    call self.log('options =', param)\n\n    return vimlint#vimlint(bufname(buf), param)\nendfunction \" }}}1\n\n\" Utilities {{{1\n\n\" @vimlint(EVL103, 1, a:filename)\nfunction! s:vimlintOutput(filename, pos, ev, eid, mes, obj) \" {{{2\n    call add(a:obj.error, {\n        \\ 'bufnr': bufnr(''),\n        \\ 'lnum': a:pos.lnum,\n        \\ 'col': a:pos.col,\n        \\ 'vcol': 0,\n        \\ 'type': a:ev[0],\n        \\ 'text': '[' . a:eid . '] ' . a:mes,\n        \\ 'valid': a:pos.lnum > 0 })\nendfunction \" }}}2\n\" @vimlint(EVL103, 0, a:filename)\n\n\" }}}1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'vim',\n    \\ 'name': 'vimlint' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/vim/vint.vim",
    "content": "\"============================================================================\n\"File:        vint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_vim_vint_checker')\n    finish\nendif\nlet g:loaded_syntastic_vim_vint_checker = 1\n\nif !exists('g:syntastic_vim_vint_sort')\n    let g:syntastic_vim_vint_sort = 1\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_vim_vint_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'post_args': '--json' })\n\n    let errorformat = '%f:%l:%c:%t: %m'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'preprocess': 'vint',\n        \\ 'returns': [0, 1] })\n\n    for e in loclist\n        if e['type'] ==? 's'\n            let e['type'] = 'w'\n            let e['subtype'] = 'Style'\n        elseif e['type'] !=? 'e' && e['type'] !=? 'w'\n            let e['type'] = 'e'\n        endif\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'vim',\n    \\ 'name': 'vint'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/vue/eslint.vim",
    "content": "\"============================================================================\n\"File:        eslint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_vue_eslint_checker')\n    finish\nendif\nlet g:loaded_syntastic_vue_eslint_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'vue',\n    \\ 'name': 'eslint',\n    \\ 'redirect': 'javascript/eslint'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/vue/pug_lint_vue.vim",
    "content": "\"============================================================================\n\"File:        pug_lint_vue.vim\n\"Description: Syntax checking plugin for syntastic using pug-lint-vue\n\"             (https://github.com/sourceboat/pug-lint-vue)\n\"Maintainer:  Tim Carry <tim at pixelastic dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_vue_pug_lint_vue_checker')\n    finish\nendif\nlet g:loaded_syntastic_vue_pug_lint_vue_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_vue_pug_lint_vue_GetLocList() dict\n    let buf = bufnr('')\n    let makeprg = self.makeprgBuild({ 'fname': syntastic#util#shescape(fnamemodify(bufname(buf), ':p')) })\n\n    let errorformat = '%\\s%#%l:%c %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'defaults': { 'bufnr': buf, 'type': 'E' } })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'vue',\n    \\ 'name': 'pug_lint_vue',\n    \\ 'exec': 'pug-lint-vue' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/vue/stylelint.vim",
    "content": "\"============================================================================\n\"File:        stylelint.vim\n\"Description: Syntax checking plugin for syntastic using `stylelint`\n\"             (https://github.com/stylelint/stylelint).\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_vue_stylelint_checker')\n    finish\nendif\nlet g:loaded_syntastic_vue_stylelint_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n\t\\ 'filetype': 'vue',\n\t\\ 'name': 'stylelint',\n\t\\ 'redirect': 'css/stylelint'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/xhtml/jshint.vim",
    "content": "\"============================================================================\n\"File:        jshint.vim\n\"Description: Javascript syntax checker for xHTML - using jshint\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_xhtml_jshint_checker')\n    finish\nendif\nlet g:loaded_syntastic_xhtml_jshint_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'xhtml',\n    \\ 'name': 'jshint',\n    \\ 'redirect': 'html/jshint'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/xhtml/proselint.vim",
    "content": "\"============================================================================\n\"File:        proselint.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_xhtml_proselint_checker')\n    finish\nendif\nlet g:loaded_syntastic_xhtml_proselint_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'xhtml',\n    \\ 'name': 'proselint',\n    \\ 'redirect': 'text/proselint'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/xhtml/tidy.vim",
    "content": "\"============================================================================\n\"File:        xhtml.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Martin Grenfell <martin.grenfell at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_xhtml_tidy_checker')\n    finish\nendif\nlet g:loaded_syntastic_xhtml_tidy_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nif !exists('g:syntastic_xhtml_tidy_ignore_errors')\n    let g:syntastic_xhtml_tidy_ignore_errors = []\nendif\n\n\" Constants {{{1\n\n\" TODO: join this with html.vim DRY's sake?\nfunction! s:TidyEncOptByFenc()\n    let TIDY_OPTS = {\n            \\ 'utf-8':        '-utf8',\n            \\ 'ascii':        '-ascii',\n            \\ 'latin1':       '-latin1',\n            \\ 'iso-2022-jp':  '-iso-2022',\n            \\ 'cp1252':       '-win1252',\n            \\ 'macroman':     '-mac',\n            \\ 'utf-16le':     '-utf16le',\n            \\ 'utf-16':       '-utf16',\n            \\ 'big5':         '-big5',\n            \\ 'cp932':        '-shiftjis',\n            \\ 'sjis':         '-shiftjis',\n            \\ 'cp850':        '-ibm858',\n        \\ }\n    return get(TIDY_OPTS, &fileencoding, '-utf8')\nendfunction\n\n\" }}}1\n\nfunction! SyntaxCheckers_xhtml_tidy_GetLocList() dict \" {{{1\n    let encopt = s:TidyEncOptByFenc()\n    let makeprg = self.makeprgBuild({ 'args_after': encopt . ' -xml -e' })\n\n    let errorformat=\n        \\ '%Wline %l column %v - Warning: %m,' .\n        \\ '%Eline %l column %v - Error: %m,' .\n        \\ '%-G%.%#'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'defaults': {'bufnr': bufnr('')},\n        \\ 'returns': [0, 1, 2] })\n\n    for e in loclist\n        if e['valid'] && s:IgnoreError(e['text']) == 1\n            let e['valid'] = 0\n        endif\n    endfor\n\n    return loclist\nendfunction \" }}}1\n\n\" Utilities {{{1\n\nfunction! s:IgnoreError(text) \" {{{2\n    for item in g:syntastic_xhtml_tidy_ignore_errors\n        if stridx(a:text, item) != -1\n            return 1\n        endif\n    endfor\n    return 0\nendfunction \" }}}2\n\n\" }}}1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'xhtml',\n    \\ 'name': 'tidy'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/xhtml/validator.vim",
    "content": "\"============================================================================\n\"File:        validator.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_xhtml_validator_checker')\n    finish\nendif\nlet g:loaded_syntastic_xhtml_validator_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'xhtml',\n    \\ 'name': 'validator',\n    \\ 'redirect': 'html/validator'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/xhtml/w3.vim",
    "content": "\"============================================================================\n\"File:        w3.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Kevin Locke <kevin@kevinlocke.name>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_xhtml_w3_checker')\n    finish\nendif\nlet g:loaded_syntastic_xhtml_w3_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'xhtml',\n    \\ 'name': 'w3',\n    \\ 'redirect': 'html/w3'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/xml/plutil.vim",
    "content": "\"============================================================================\n\"File:        plutil.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_xml_plutil_checker')\n    finish\nendif\nlet g:loaded_syntastic_xml_plutil_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_xml_plutil_GetLocList() dict\n    let makeprg = self.makeprgBuild({\n        \\ 'args_before': '-lint -s',\n        \\ 'fname_before': '--' })\n\n    let errorformat =\n        \\ '%E%f: %m at line %l'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'returns': [0, 1] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'xml',\n    \\ 'name': 'plutil'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/xml/xmllint.vim",
    "content": "\"============================================================================\n\"File:        xml.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Sebastian Kusnier <sebastian at kusnier dot net>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_xml_xmllint_checker')\n    finish\nendif\nlet g:loaded_syntastic_xml_xmllint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\n\" You can use a local installation of DTDs to significantly speed up validation\n\" and allow you to validate XML data without network access, see xmlcatalog(1)\n\" and http://www.xmlsoft.org/catalog.html for more information.\n\nfunction! SyntaxCheckers_xml_xmllint_GetLocList() dict\n    let makeprg = self.makeprgBuild({\n        \\ 'args': '--xinclude --postvalid',\n        \\ 'args_after': '--noout' })\n\n    let errorformat=\n        \\ '%E%f:%l: error : %m,' .\n        \\ '%-G%f:%l: validity error : Validation failed: no DTD found %m,' .\n        \\ '%W%f:%l: warning : %m,' .\n        \\ '%W%f:%l: validity warning : %m,' .\n        \\ '%E%f:%l: validity error : %m,' .\n        \\ '%E%f:%l: parser error : %m,' .\n        \\ '%E%f:%l: %m,' .\n        \\ '%-Z%p^,' .\n        \\ '%-G%.%#'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'returns': [0, 1, 2, 3, 4, 5] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'xml',\n    \\ 'name': 'xmllint'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/xquery/basex.vim",
    "content": "\"============================================================================\n\"File:        basex.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  James Wright <james dot jw at hotmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_xquery_basex_checker')\n    finish\nendif\nlet g:loaded_syntastic_xquery_basex_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_xquery_basex_GetLocList() dict\n    let buf = bufnr('')\n    let makeprg = self.makeprgBuild({\n        \\ 'args_after': '-z',\n        \\ 'fname_before': '-q',\n        \\ 'fname': syntastic#util#shescape('inspect:module(\"' . escape(fnamemodify(bufname(buf), ':p'), '\"') . '\")') })\n\n    let errorformat =\n        \\ '%f:%l:%c:%t:%n:%m,' .\n        \\ '%m'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'preprocess': 'basex' })\n\n    for e in loclist\n        if e['type'] !=# 'W' && e['type'] !=# 'E'\n            let e['type'] = 'E'\n        endif\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'xquery',\n    \\ 'name': 'basex'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/xslt/xmllint.vim",
    "content": "\"============================================================================\n\"File:        xslt.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Sebastian Kusnier <sebastian at kusnier dot net>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_xslt_xmllint_checker')\n    finish\nendif\nlet g:loaded_syntastic_xslt_xmllint_checker = 1\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'xslt',\n    \\ 'name': 'xmllint',\n    \\ 'redirect': 'xml/xmllint'})\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/yacc/bison.vim",
    "content": "\"============================================================================\n\"File:        yacc.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_yacc_bison_checker')\n    finish\nendif\nlet g:loaded_syntastic_yacc_bison_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_yacc_bison_GetLocList() dict\n    let makeprg = self.makeprgBuild({\n        \\ 'args_after': syntastic#c#NullOutput() })\n\n    let errorformat =\n        \\ '%E%f:%l%.%v-%.%\\{-}: %trror: %m,' .\n        \\ '%E%f:%l%.%v: %trror: %m,' .\n        \\ '%W%f:%l%.%v-%.%\\{-}: %tarning: %m,' .\n        \\ '%W%f:%l%.%v: %tarning: %m,' .\n        \\ '%I%f:%l%.%v-%.%\\{-}: %\\s%\\+%m,' .\n        \\ '%I%f:%l%.%v: %\\s%\\+%m'\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\n\n    let last_type = 'E'\n    for e in loclist\n        if e['type'] ==? 'I'\n            let e['type'] = last_type\n        endif\n        let last_type = e['type']\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'yacc',\n    \\ 'name': 'bison'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/yaml/jsyaml.vim",
    "content": "\"============================================================================\n\"File:        yaml.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Martin Grenfell <martin.grenfell at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_yaml_jsyaml_checker')\n    finish\nendif\nlet g:loaded_syntastic_yaml_jsyaml_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_yaml_jsyaml_GetLocList() dict\n    if !exists('s:js_yaml_new')\n        let s:js_yaml_new = syntastic#util#versionIsAtLeast(self.getVersion(), [2])\n    endif\n\n    let makeprg = self.makeprgBuild({ 'args_after': (s:js_yaml_new ? '' : '--compact') })\n\n    let errorformat =\n        \\ 'Error on line %l\\, col %c:%m,' .\n        \\ 'JS-YAML: %m at line %l\\, column %c:,' .\n        \\ 'YAMLException: %m at line %l\\, column %c:,' .\n        \\ '%-G%.%#'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'defaults': {'bufnr': bufnr('')} })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'yaml',\n    \\ 'name': 'jsyaml',\n    \\ 'exec': 'js-yaml'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/yaml/yamllint.vim",
    "content": "\"============================================================================\n\"File:        yamllint.vim\n\"Description: YAML files linting for syntastic\n\"Maintainer:  Adrien Vergé\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_yaml_yamllint_checker')\n    finish\nendif\nlet g:loaded_syntastic_yaml_yamllint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_yaml_yamllint_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_after': '-f parsable' })\n\n    let errorformat =\n        \\ '%f:%l:%c: [%trror] %m,' .\n        \\ '%f:%l:%c: [%tarning] %m'\n\n    let env = syntastic#util#isRunningWindows() ? {} : { 'TERM': 'dumb' }\n\n    let loclist = SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'env': env,\n        \\ 'returns': [0, 1] })\n\n    for e in loclist\n        if e['type'] ==? 'W'\n            let e['subtype'] = 'Style'\n        endif\n    endfor\n\n    return loclist\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'yaml',\n    \\ 'name': 'yamllint' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/yaml/yamlxs.vim",
    "content": "\"============================================================================\n\"File:        yamlxs.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  LCD 47 <lcd047 at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_yaml_yamlxs_checker')\n    finish\nendif\nlet g:loaded_syntastic_yaml_yamlxs_checker = 1\n\nif !exists('g:syntastic_perl_lib_path')\n    let g:syntastic_perl_lib_path = []\nendif\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_yaml_yamlxs_IsAvailable() dict\n    if !exists('g:syntastic_yaml_yamlxs_exec') && exists('g:syntastic_perl_interpreter')\n        let g:syntastic_yaml_yamlxs_exec = g:syntastic_perl_interpreter\n    endif\n\n    \" don't call executable() here, to allow things like\n    \" let g:syntastic_perl_interpreter='/usr/bin/env perl'\n    silent! call syntastic#util#system(self.getExecEscaped() . ' ' . s:Modules(bufnr('')) . ' -e ' . syntastic#util#shescape('exit(0)'))\n    return v:shell_error == 0\nendfunction\n\nfunction! SyntaxCheckers_yaml_yamlxs_GetLocList() dict\n    let buf = bufnr('')\n    let makeprg = self.makeprgBuild({\n        \\ 'args_before': s:Modules(buf) . ' -e ' . syntastic#util#shescape('YAML::XS::LoadFile($ARGV[0])') })\n\n    let errorformat =\n        \\ '%EYAML::XS::Load Error: The problem:,' .\n        \\ '%-C,' .\n        \\ '%C    %m,' .\n        \\ '%Cwas found at document: %\\d%\\+\\, line: %l\\, column: %c,' .\n        \\ '%-G%.%#'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'postprocess': ['compressWhitespace'],\n        \\ 'defaults': {'bufnr': bufnr('')} })\nendfunction\n\nfunction s:Modules(buf)\n    let lib_path = syntastic#util#bufVar(a:buf, 'perl_lib_path')\n    if type(lib_path) == type('')\n        call syntastic#log#oneTimeWarn('variable syntastic_perl_lib_path should be a list')\n        let includes = split(lib_path, ',')\n    else\n        let includes = copy(lib_path)\n    endif\n    return join(map(includes, '\"-I\" . v:val') + ['-MYAML::XS'])\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'yaml',\n    \\ 'name': 'yamlxs',\n    \\ 'exec': 'perl' })\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/yang/pyang.vim",
    "content": "\"============================================================================\n\"File:        pyang.vim\n\"Description: Syntax checking plugin for syntastic\n\"Authors:     joshua.downer@gmail.com\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_yang_pyang_checker')\n    finish\nendif\nlet g:loaded_syntastic_yang_pyang_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_yang_pyang_GetHighlightRegex(item)\n    let term = matchstr(a:item['text'], '\\m\"\\zs[^\"]\\+\\ze\"')\n    return term != '' ? '\\V\\<' . escape(term, '\\') . '\\>' : ''\nendfunction\n\nfunction! SyntaxCheckers_yang_pyang_GetLocList() dict\n    let makeprg = self.makeprgBuild({})\n\n    let errorformat =\n        \\ '%f:%l: %trror: %m,' .\n        \\ '%f:%l: %tarning: %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat,\n        \\ 'postprocess': ['filterForeignErrors'] })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'yang',\n    \\ 'name': 'pyang'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/yara/yara.vim",
    "content": "\"============================================================================\n\"File:        yara.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Albert Song (albb@teamt5.org)\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_yara_yarac_checker')\n    finish\nendif\nlet g:loaded_syntastic_yara_yarac_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_yara_yarac_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'fname_after' : syntastic#util#DevNull() })\n\n    let errorformat =\n        \\ '%f(%l): %trror: %m,' .\n        \\ '%f(%l): %tarning: %m,' .\n        \\ '%f(%l): %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'yara',\n    \\ 'name': 'yarac'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/z80/z80syntaxchecker.vim",
    "content": "\"============================================================================\n\"File:        z80syntaxchecker.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Romain Giot <giot.romain at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_z80_z80syntaxchecker_checker')\n    finish\nendif\nlet g:loaded_syntastic_z80_z80syntaxchecker_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_z80_z80syntaxchecker_GetLocList() dict\n    let makeprg = self.makeprgBuild({})\n\n    let errorformat =  '%f:%l %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'z80',\n    \\ 'name': 'z80syntaxchecker',\n    \\ 'exec': 'z80_syntax_checker.py'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/zpt/zptlint.vim",
    "content": "\"============================================================================\n\"File:        zpt.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  claytron <robots at claytron dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_zpt_zptlint_checker')\n    finish\nendif\nlet g:loaded_syntastic_zpt_zptlint_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_zpt_zptlint_GetLocList() dict\n    let makeprg = self.makeprgBuild({})\n\n    let errorformat=\n        \\ '%-P*** Error in: %f,'.\n        \\ '%Z%*\\s\\, at line %l\\, column %c,'.\n        \\ '%E%*\\s%m,'.\n        \\ '%-Q'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat })\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'zpt',\n    \\ 'name': 'zptlint'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  },
  {
    "path": "syntax_checkers/zsh/zsh.vim",
    "content": "\"============================================================================\n\"File:        zsh.vim\n\"Description: Syntax checking plugin for syntastic\n\"Maintainer:  Martin Grenfell <martin.grenfell at gmail dot com>\n\"License:     This program is free software. It comes without any warranty,\n\"             to the extent permitted by applicable law. You can redistribute\n\"             it and/or modify it under the terms of the Do What The Fuck You\n\"             Want To Public License, Version 2, as published by Sam Hocevar.\n\"             See http://sam.zoy.org/wtfpl/COPYING for more details.\n\"\n\"============================================================================\n\nif exists('g:loaded_syntastic_zsh_zsh_checker')\n    finish\nendif\nlet g:loaded_syntastic_zsh_zsh_checker = 1\n\nlet s:save_cpo = &cpo\nset cpo&vim\n\nfunction! SyntaxCheckers_zsh_zsh_GetLocList() dict\n    let makeprg = self.makeprgBuild({ 'args_after': '-n' })\n\n    let errorformat = '%f:%l: %m'\n\n    return SyntasticMake({\n        \\ 'makeprg': makeprg,\n        \\ 'errorformat': errorformat})\nendfunction\n\ncall g:SyntasticRegistry.CreateAndRegisterChecker({\n    \\ 'filetype': 'zsh',\n    \\ 'name': 'zsh'})\n\nlet &cpo = s:save_cpo\nunlet s:save_cpo\n\n\" vim: set sw=4 sts=4 et fdm=marker:\n"
  }
]