Răsfoiți Sursa

remove old vim plugins

raylu 8 luni în urmă
părinte
comite
d8c452ad53
100 a modificat fișierele cu 0 adăugiri și 12916 ștergeri
  1. 0 345
      vim/autoload/syntastic/c.vim
  2. 0 182
      vim/autoload/syntastic/log.vim
  3. 0 73
      vim/autoload/syntastic/postprocess.vim
  4. 0 316
      vim/autoload/syntastic/preprocess.vim
  5. 0 414
      vim/autoload/syntastic/util.vim
  6. 0 361
      vim/doc/fugitive.txt
  7. 0 956
      vim/doc/syntastic.txt
  8. 0 22
      vim/initialize.py
  9. 0 3126
      vim/plugin/fugitive.vim
  10. 0 672
      vim/plugin/syntastic.vim
  11. 0 38
      vim/plugin/syntastic/autoloclist.vim
  12. 0 59
      vim/plugin/syntastic/balloons.vim
  13. 0 228
      vim/plugin/syntastic/checker.vim
  14. 0 138
      vim/plugin/syntastic/cursor.vim
  15. 0 104
      vim/plugin/syntastic/highlighting.vim
  16. 0 434
      vim/plugin/syntastic/loclist.vim
  17. 0 117
      vim/plugin/syntastic/modemap.vim
  18. 0 86
      vim/plugin/syntastic/notifiers.vim
  19. 0 333
      vim/plugin/syntastic/registry.vim
  20. 0 138
      vim/plugin/syntastic/signs.vim
  21. 0 67
      vim/syntax_checkers/actionscript/mxmlc.vim
  22. 0 47
      vim/syntax_checkers/ada/gcc.vim
  23. 0 66
      vim/syntax_checkers/apiblueprint/snowcrash.vim
  24. 0 49
      vim/syntax_checkers/applescript/osacompile.vim
  25. 0 47
      vim/syntax_checkers/asciidoc/asciidoc.vim
  26. 0 58
      vim/syntax_checkers/asm/gcc.vim
  27. 0 35
      vim/syntax_checkers/bemhtml/bemhtmllint.vim
  28. 0 60
      vim/syntax_checkers/bro/bro.vim
  29. 0 57
      vim/syntax_checkers/c/avrgcc.vim
  30. 0 60
      vim/syntax_checkers/c/checkpatch.vim
  31. 0 61
      vim/syntax_checkers/c/clang_check.vim
  32. 0 61
      vim/syntax_checkers/c/clang_tidy.vim
  33. 0 62
      vim/syntax_checkers/c/cppcheck.vim
  34. 0 59
      vim/syntax_checkers/c/gcc.vim
  35. 0 61
      vim/syntax_checkers/c/make.vim
  36. 0 65
      vim/syntax_checkers/c/oclint.vim
  37. 0 66
      vim/syntax_checkers/c/pc_lint.vim
  38. 0 48
      vim/syntax_checkers/c/sparse.vim
  39. 0 55
      vim/syntax_checkers/c/splint.vim
  40. 0 55
      vim/syntax_checkers/cabal/cabal.vim
  41. 0 39
      vim/syntax_checkers/chef/foodcritic.vim
  42. 0 47
      vim/syntax_checkers/co/coco.vim
  43. 0 47
      vim/syntax_checkers/cobol/cobc.vim
  44. 0 58
      vim/syntax_checkers/coffee/coffee.vim
  45. 0 47
      vim/syntax_checkers/coffee/coffeelint.vim
  46. 0 40
      vim/syntax_checkers/coq/coqtop.vim
  47. 0 25
      vim/syntax_checkers/cpp/clang_check.vim
  48. 0 25
      vim/syntax_checkers/cpp/clang_tidy.vim
  49. 0 24
      vim/syntax_checkers/cpp/cppcheck.vim
  50. 0 52
      vim/syntax_checkers/cpp/cpplint.vim
  51. 0 56
      vim/syntax_checkers/cpp/gcc.vim
  52. 0 24
      vim/syntax_checkers/cpp/oclint.vim
  53. 0 26
      vim/syntax_checkers/cpp/pc_lint.vim
  54. 0 39
      vim/syntax_checkers/cs/mcs.vim
  55. 0 47
      vim/syntax_checkers/css/csslint.vim
  56. 0 25
      vim/syntax_checkers/css/phpcs.vim
  57. 0 61
      vim/syntax_checkers/css/prettycss.vim
  58. 0 26
      vim/syntax_checkers/css/recess.vim
  59. 0 42
      vim/syntax_checkers/cucumber/cucumber.vim
  60. 0 66
      vim/syntax_checkers/cuda/nvcc.vim
  61. 0 60
      vim/syntax_checkers/d/dmd.vim
  62. 0 76
      vim/syntax_checkers/dart/dartanalyzer.vim
  63. 0 55
      vim/syntax_checkers/docbk/igor.vim
  64. 0 25
      vim/syntax_checkers/docbk/xmllint.vim
  65. 0 38
      vim/syntax_checkers/dustjs/swiffer.vim
  66. 0 61
      vim/syntax_checkers/elixir/elixir.vim
  67. 0 76
      vim/syntax_checkers/erlang/erlang_check_file.erl
  68. 0 61
      vim/syntax_checkers/erlang/escript.vim
  69. 0 42
      vim/syntax_checkers/erlang/syntaxerl.vim
  70. 0 82
      vim/syntax_checkers/eruby/ruby.vim
  71. 0 99
      vim/syntax_checkers/fortran/gfortran.vim
  72. 0 81
      vim/syntax_checkers/glsl/cgc.vim
  73. 0 96
      vim/syntax_checkers/go/go.vim
  74. 0 45
      vim/syntax_checkers/go/gofmt.vim
  75. 0 42
      vim/syntax_checkers/go/golint.vim
  76. 0 46
      vim/syntax_checkers/go/gotype.vim
  77. 0 52
      vim/syntax_checkers/go/govet.vim
  78. 0 46
      vim/syntax_checkers/haml/haml.vim
  79. 0 37
      vim/syntax_checkers/haml/haml_lint.vim
  80. 0 43
      vim/syntax_checkers/handlebars/handlebars.vim
  81. 0 83
      vim/syntax_checkers/haskell/ghc-mod.vim
  82. 0 56
      vim/syntax_checkers/haskell/hdevtools.vim
  83. 0 39
      vim/syntax_checkers/haskell/hlint.vim
  84. 0 43
      vim/syntax_checkers/haskell/scan.vim
  85. 0 63
      vim/syntax_checkers/haxe/haxe.vim
  86. 0 38
      vim/syntax_checkers/hss/hss.vim
  87. 0 50
      vim/syntax_checkers/html/jshint.vim
  88. 0 212
      vim/syntax_checkers/html/tidy.vim
  89. 0 69
      vim/syntax_checkers/html/validator.vim
  90. 0 62
      vim/syntax_checkers/html/w3.vim
  91. 0 77
      vim/syntax_checkers/java/checkstyle.vim
  92. 0 420
      vim/syntax_checkers/java/javac.vim
  93. 0 76
      vim/syntax_checkers/javascript/closurecompiler.vim
  94. 0 60
      vim/syntax_checkers/javascript/eslint.vim
  95. 0 60
      vim/syntax_checkers/javascript/flow.vim
  96. 0 45
      vim/syntax_checkers/javascript/gjslint.vim
  97. 0 44
      vim/syntax_checkers/javascript/jscs.vim
  98. 0 60
      vim/syntax_checkers/javascript/jshint.vim
  99. 0 48
      vim/syntax_checkers/javascript/jsl.vim
  100. 0 51
      vim/syntax_checkers/javascript/jslint.vim

+ 0 - 345
vim/autoload/syntastic/c.vim

@@ -1,345 +0,0 @@
-if exists('g:loaded_syntastic_c_autoload') || !exists('g:loaded_syntastic_plugin')
-    finish
-endif
-let g:loaded_syntastic_c_autoload = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-" Public functions {{{1
-
-" convenience function to determine the 'null device' parameter
-" based on the current operating system
-function! syntastic#c#NullOutput() abort " {{{2
-    let known_os = has('unix') || has('mac') || syntastic#util#isRunningWindows()
-    return known_os ? '-o ' . syntastic#util#DevNull() : ''
-endfunction " }}}2
-
-" read additional compiler flags from the given configuration file
-" the file format and its parsing mechanism is inspired by clang_complete
-function! syntastic#c#ReadConfig(file) abort " {{{2
-    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_CHECKERS, 'ReadConfig: looking for', a:file)
-
-    " search upwards from the current file's directory
-    let config = findfile(a:file, '.;')
-    if config ==# ''
-        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_CHECKERS, 'ReadConfig: file not found')
-        return ''
-    endif
-    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_CHECKERS, 'ReadConfig: config file:', config)
-    if !filereadable(config)
-        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_CHECKERS, 'ReadConfig: file unreadable')
-        return ''
-    endif
-
-    " convert filename into absolute path
-    let filepath = fnamemodify(config, ':p:h')
-
-    " try to read config file
-    try
-        let lines = readfile(config)
-    catch /\m^Vim\%((\a\+)\)\=:E48[45]/
-        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_CHECKERS, 'ReadConfig: error reading file')
-        return ''
-    endtry
-
-    " filter out empty lines and comments
-    call filter(lines, 'v:val !~# ''\v^(\s*#|$)''')
-
-    " remove leading and trailing spaces
-    call map(lines, 'substitute(v:val, ''\m^\s\+'', "", "")')
-    call map(lines, 'substitute(v:val, ''\m\s\+$'', "", "")')
-
-    let parameters = []
-    for line in lines
-        let matches = matchstr(line, '\m\C^\s*-I\s*\zs.\+')
-        if matches !=# ''
-            " this one looks like an absolute path
-            if match(matches, '\m^\%(/\|\a:\)') != -1
-                call add(parameters, '-I' . matches)
-            else
-                call add(parameters, '-I' . filepath . syntastic#util#Slash() . matches)
-            endif
-        else
-            call add(parameters, line)
-        endif
-    endfor
-
-    return join(map(parameters, 'syntastic#util#shescape(v:val)'))
-endfunction " }}}2
-
-" GetLocList() for C-like compilers
-function! syntastic#c#GetLocList(filetype, subchecker, options) abort " {{{2
-    try
-        let flags = s:_get_cflags(a:filetype, a:subchecker, a:options)
-    catch /\m\C^Syntastic: skip checks$/
-        return []
-    endtry
-
-    let makeprg = syntastic#util#shexpand(g:syntastic_{a:filetype}_compiler) .
-        \ ' ' . flags . ' ' . syntastic#util#shexpand('%')
-
-    let errorformat = s:_get_checker_var('g', a:filetype, a:subchecker, 'errorformat', a:options['errorformat'])
-
-    let postprocess = s:_get_checker_var('g', a:filetype, a:subchecker, 'remove_include_errors', 0) ?
-        \ ['filterForeignErrors'] : []
-
-    " process makeprg
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'postprocess': postprocess })
-endfunction " }}}2
-
-" }}}1
-
-" Private functions {{{1
-
-" initialize c/cpp syntax checker handlers
-function! s:_init() abort " {{{2
-    let s:handlers = []
-    let s:cflags = {}
-
-    call s:_registerHandler('\m\<cairo',       's:_checkPackage', ['cairo', 'cairo'])
-    call s:_registerHandler('\m\<freetype',    's:_checkPackage', ['freetype', 'freetype2', 'freetype'])
-    call s:_registerHandler('\m\<glade',       's:_checkPackage', ['glade', 'libglade-2.0', 'libglade'])
-    call s:_registerHandler('\m\<glib',        's:_checkPackage', ['glib', 'glib-2.0', 'glib'])
-    call s:_registerHandler('\m\<gtk',         's:_checkPackage', ['gtk', 'gtk+-2.0', 'gtk+', 'glib-2.0', 'glib'])
-    call s:_registerHandler('\m\<libsoup',     's:_checkPackage', ['libsoup', 'libsoup-2.4', 'libsoup-2.2'])
-    call s:_registerHandler('\m\<libxml',      's:_checkPackage', ['libxml', 'libxml-2.0', 'libxml'])
-    call s:_registerHandler('\m\<pango',       's:_checkPackage', ['pango', 'pango'])
-    call s:_registerHandler('\m\<SDL',         's:_checkPackage', ['sdl', 'sdl'])
-    call s:_registerHandler('\m\<opengl',      's:_checkPackage', ['opengl', 'gl'])
-    call s:_registerHandler('\m\<webkit',      's:_checkPackage', ['webkit', 'webkit-1.0'])
-
-    call s:_registerHandler('\m\<php\.h\>',    's:_checkPhp',    [])
-    call s:_registerHandler('\m\<Python\.h\>', 's:_checkPython', [])
-    call s:_registerHandler('\m\<ruby',        's:_checkRuby',   [])
-endfunction " }}}2
-
-" register a handler dictionary object
-function! s:_registerHandler(regex, function, args) abort " {{{2
-    let handler = {}
-    let handler['regex'] = a:regex
-    let handler['func'] = function(a:function)
-    let handler['args'] = a:args
-    call add(s:handlers, handler)
-endfunction " }}}2
-
-" try to find library with 'pkg-config'
-" search possible libraries from first to last given
-" argument until one is found
-function! s:_checkPackage(name, ...) abort " {{{2
-    if executable('pkg-config')
-        if !has_key(s:cflags, a:name)
-            for pkg in a:000
-                let pkg_flags = syntastic#util#system('pkg-config --cflags ' . pkg)
-                " since we cannot necessarily trust the pkg-config exit code
-                " we have to check for an error output as well
-                if v:shell_error == 0 && pkg_flags !~? 'not found'
-                    let pkg_flags = ' ' . substitute(pkg_flags, "\n", '', '')
-                    let s:cflags[a:name] = pkg_flags
-                    return pkg_flags
-                endif
-            endfor
-        else
-            return s:cflags[a:name]
-        endif
-    endif
-    return ''
-endfunction " }}}2
-
-" try to find PHP includes with 'php-config'
-function! s:_checkPhp() abort " {{{2
-    if executable('php-config')
-        if !has_key(s:cflags, 'php')
-            let s:cflags['php'] = syntastic#util#system('php-config --includes')
-            let s:cflags['php'] = ' ' . substitute(s:cflags['php'], "\n", '', '')
-        endif
-        return s:cflags['php']
-    endif
-    return ''
-endfunction " }}}2
-
-" try to find the python headers with distutils
-function! s:_checkPython() abort " {{{2
-    if executable('python')
-        if !has_key(s:cflags, 'python')
-            let s:cflags['python'] = syntastic#util#system('python -c ''from distutils import ' .
-                \ 'sysconfig; import sys; sys.stdout.write(sysconfig.get_python_inc())''')
-            let s:cflags['python'] = substitute(s:cflags['python'], "\n", '', '')
-            let s:cflags['python'] = ' -I' . s:cflags['python']
-        endif
-        return s:cflags['python']
-    endif
-    return ''
-endfunction " }}}2
-
-" try to find the ruby headers with 'rbconfig'
-function! s:_checkRuby() abort " {{{2
-    if executable('ruby')
-        if !has_key(s:cflags, 'ruby')
-            let s:cflags['ruby'] = syntastic#util#system('ruby -r rbconfig -e ' .
-                \ '''puts RbConfig::CONFIG["rubyhdrdir"] || RbConfig::CONFIG["archdir"]''')
-            let s:cflags['ruby'] = substitute(s:cflags['ruby'], "\n", '', '')
-            let s:cflags['ruby'] = ' -I' . s:cflags['ruby']
-        endif
-        return s:cflags['ruby']
-    endif
-    return ''
-endfunction " }}}2
-
-" }}}1
-
-" Utilities {{{1
-
-" resolve checker-related user variables
-function! s:_get_checker_var(scope, filetype, subchecker, name, default) abort " {{{2
-    let prefix = a:scope . ':' . 'syntastic_'
-    if exists(prefix . a:filetype . '_' . a:subchecker . '_' . a:name)
-        return {a:scope}:syntastic_{a:filetype}_{a:subchecker}_{a:name}
-    elseif exists(prefix . a:filetype . '_' . a:name)
-        return {a:scope}:syntastic_{a:filetype}_{a:name}
-    else
-        return a:default
-    endif
-endfunction " }}}2
-
-" resolve user CFLAGS
-function! s:_get_cflags(ft, ck, opts) abort " {{{2
-    " determine whether to parse header files as well
-    if has_key(a:opts, 'header_names') && expand('%', 1) =~? a:opts['header_names']
-        if s:_get_checker_var('g', a:ft, a:ck, 'check_header', 0)
-            let flags = get(a:opts, 'header_flags', '') . ' -c ' . syntastic#c#NullOutput()
-        else
-            " checking headers when check_header is unset: bail out
-            throw 'Syntastic: skip checks'
-        endif
-    else
-        let flags = get(a:opts, 'main_flags', '')
-    endif
-
-    let flags .= ' ' . s:_get_checker_var('g', a:ft, a:ck, 'compiler_options', '') . ' ' . s:_get_include_dirs(a:ft)
-
-    " check if the user manually set some cflags
-    let b_cflags = s:_get_checker_var('b', a:ft, a:ck, 'cflags', '')
-    if b_cflags ==# ''
-        if a:ft ==# 'c' || a:ft ==# 'cpp'
-            " check whether to search for include files at all
-            if !s:_get_checker_var('g', a:ft, a:ck, 'no_include_search', 0)
-                " refresh the include file search if desired
-                if s:_get_checker_var('g', a:ft, a:ck, 'auto_refresh_includes', 0)
-                    let flags .= ' ' . s:_search_headers()
-                else
-                    " search for header includes if not cached already
-                    if !exists('b:syntastic_' . a:ft . '_includes')
-                        let b:syntastic_{a:ft}_includes = s:_search_headers()
-                    endif
-                    let flags .= ' ' . b:syntastic_{a:ft}_includes
-                endif
-            endif
-        endif
-    else
-        " user-defined cflags
-        let flags .= ' ' . b_cflags
-    endif
-
-    " add optional config file parameters
-    let config_file = s:_get_checker_var('g', a:ft, a:ck, 'config_file', '.syntastic_' . a:ft . '_config')
-    let flags .= ' ' . syntastic#c#ReadConfig(config_file)
-
-    return flags
-endfunction " }}}2
-
-" get the gcc include directory argument depending on the default
-" includes and the optional user-defined 'g:syntastic_c_include_dirs'
-function! s:_get_include_dirs(filetype) abort " {{{2
-    let include_dirs = []
-
-    if a:filetype =~# '\v^%(c|cpp|objc|objcpp)$' &&
-                \ (!exists('g:syntastic_'.a:filetype.'_no_default_include_dirs') ||
-                \ !g:syntastic_{a:filetype}_no_default_include_dirs)
-        let include_dirs = copy(s:default_includes)
-    endif
-
-    if exists('g:syntastic_'.a:filetype.'_include_dirs')
-        call extend(include_dirs, g:syntastic_{a:filetype}_include_dirs)
-    endif
-
-    return join(map(syntastic#util#unique(include_dirs), 'syntastic#util#shescape("-I" . v:val)'))
-endfunction " }}}2
-
-" search the first 100 lines for include statements that are
-" given in the handlers dictionary
-function! s:_search_headers() abort " {{{2
-    let includes = ''
-    let files = []
-    let found = []
-    let lines = filter(getline(1, 100), 'v:val =~# ''\m^\s*#\s*include''')
-
-    " search current buffer
-    for line in lines
-        let file = matchstr(line, '\m"\zs\S\+\ze"')
-        if file !=# ''
-            call add(files, file)
-            continue
-        endif
-
-        for handler in s:handlers
-            if line =~# handler['regex']
-                let includes .= call(handler['func'], handler['args'])
-                call add(found, handler['regex'])
-                break
-            endif
-        endfor
-    endfor
-
-    " search included headers
-    for hfile in files
-        if hfile !=# ''
-            let filename = expand('%:p:h', 1) . syntastic#util#Slash() . hfile
-
-            try
-                let lines = readfile(filename, '', 100)
-            catch /\m^Vim\%((\a\+)\)\=:E484/
-                continue
-            endtry
-
-            call filter(lines, 'v:val =~# ''\m^\s*#\s*include''')
-
-            for handler in s:handlers
-                if index(found, handler['regex']) != -1
-                    continue
-                endif
-
-                for line in lines
-                    if line =~# handler['regex']
-                        let includes .= call(handler['func'], handler['args'])
-                        call add(found, handler['regex'])
-                        break
-                    endif
-                endfor
-            endfor
-        endif
-    endfor
-
-    return includes
-endfunction " }}}2
-
-" }}}1
-
-" default include directories
-let s:default_includes = [
-    \ '.',
-    \ '..',
-    \ 'include',
-    \ 'includes',
-    \ '..' . syntastic#util#Slash() . 'include',
-    \ '..' . syntastic#util#Slash() . 'includes' ]
-
-call s:_init()
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 182
vim/autoload/syntastic/log.vim

@@ -1,182 +0,0 @@
-if exists('g:loaded_syntastic_log_autoload') || !exists('g:loaded_syntastic_plugin')
-    finish
-endif
-let g:loaded_syntastic_log_autoload = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-let s:one_time_notices_issued = []
-
-" Public functions {{{1
-
-function! syntastic#log#info(msg) abort " {{{2
-    echomsg 'syntastic: info: ' . a:msg
-endfunction " }}}2
-
-function! syntastic#log#warn(msg) abort " {{{2
-    echohl WarningMsg
-    echomsg 'syntastic: warning: ' . a:msg
-    echohl None
-endfunction " }}}2
-
-function! syntastic#log#error(msg) abort " {{{2
-    execute "normal \<Esc>"
-    echohl ErrorMsg
-    echomsg 'syntastic: error: ' . a:msg
-    echohl None
-endfunction " }}}2
-
-function! syntastic#log#oneTimeWarn(msg) abort " {{{2
-    if index(s:one_time_notices_issued, a:msg) >= 0
-        return
-    endif
-
-    call add(s:one_time_notices_issued, a:msg)
-    call syntastic#log#warn(a:msg)
-endfunction " }}}2
-
-" @vimlint(EVL102, 1, l:OLD_VAR)
-function! syntastic#log#deprecationWarn(old, new, ...) abort " {{{2
-    if exists('g:syntastic_' . a:old) && !exists('g:syntastic_' . a:new)
-        let msg = 'variable g:syntastic_' . a:old . ' is deprecated, please use '
-
-        if a:0
-            let OLD_VAR = g:syntastic_{a:old}
-            try
-                let NEW_VAR = eval(a:1)
-                let msg .= 'in its stead: let g:syntastic_' . a:new . ' = ' . string(NEW_VAR)
-                let g:syntastic_{a:new} = NEW_VAR
-            catch
-                let msg .= 'g:syntastic_' . a:new . ' instead'
-            endtry
-        else
-            let msg .= 'g:syntastic_' . a:new . ' instead'
-            let g:syntastic_{a:new} = g:syntastic_{a:old}
-        endif
-
-        call syntastic#log#oneTimeWarn(msg)
-    endif
-endfunction " }}}2
-" @vimlint(EVL102, 0, l:OLD_VAR)
-
-function! syntastic#log#debug(level, msg, ...) abort " {{{2
-    if !s:_isDebugEnabled(a:level)
-        return
-    endif
-
-    let leader = s:_log_timestamp()
-    call s:_logRedirect(1)
-
-    if a:0 > 0
-        " filter out dictionary functions
-        echomsg leader . a:msg . ' ' .
-            \ strtrans(string(type(a:1) == type({}) || type(a:1) == type([]) ?
-            \ filter(copy(a:1), 'type(v:val) != type(function("tr"))') : a:1))
-    else
-        echomsg leader . a:msg
-    endif
-
-    call s:_logRedirect(0)
-endfunction " }}}2
-
-function! syntastic#log#debugShowOptions(level, names) abort " {{{2
-    if !s:_isDebugEnabled(a:level)
-        return
-    endif
-
-    let leader = s:_log_timestamp()
-    call s:_logRedirect(1)
-
-    let vlist = copy(type(a:names) == type('') ? [a:names] : a:names)
-    if !empty(vlist)
-        call map(vlist, "'&' . v:val . ' = ' . strtrans(string(eval('&' . v:val)))")
-        echomsg leader . join(vlist, ', ')
-    endif
-    call s:_logRedirect(0)
-endfunction " }}}2
-
-function! syntastic#log#debugShowVariables(level, names) abort " {{{2
-    if !s:_isDebugEnabled(a:level)
-        return
-    endif
-
-    let leader = s:_log_timestamp()
-    call s:_logRedirect(1)
-
-    let vlist = type(a:names) == type('') ? [a:names] : a:names
-    for name in vlist
-        let msg = s:_format_variable(name)
-        if msg !=# ''
-            echomsg leader . msg
-        endif
-    endfor
-
-    call s:_logRedirect(0)
-endfunction " }}}2
-
-function! syntastic#log#debugDump(level) abort " {{{2
-    if !s:_isDebugEnabled(a:level)
-        return
-    endif
-
-    call syntastic#log#debugShowVariables( a:level, sort(keys(g:_SYNTASTIC_DEFAULTS)) )
-endfunction " }}}2
-
-" }}}1
-
-" Private functions {{{1
-
-function! s:_isDebugEnabled_smart(level) abort " {{{2
-    return and(g:syntastic_debug, a:level)
-endfunction " }}}2
-
-function! s:_isDebugEnabled_dumb(level) abort " {{{2
-    " poor man's bit test for bit N, assuming a:level == 2**N
-    return (g:syntastic_debug / a:level) % 2
-endfunction " }}}2
-
-let s:_isDebugEnabled = function(exists('*and') ? 's:_isDebugEnabled_smart' : 's:_isDebugEnabled_dumb')
-lockvar s:_isDebugEnabled
-
-function! s:_logRedirect(on) abort " {{{2
-    if exists('g:syntastic_debug_file')
-        if a:on
-            try
-                execute 'redir >> ' . fnameescape(expand(g:syntastic_debug_file, 1))
-            catch /\m^Vim\%((\a\+)\)\=:/
-                silent! redir END
-                unlet g:syntastic_debug_file
-            endtry
-        else
-            silent! redir END
-        endif
-    endif
-endfunction " }}}2
-
-" }}}1
-
-" Utilities {{{1
-
-function! s:_log_timestamp() abort " {{{2
-    return 'syntastic: ' . split(reltimestr(reltime(g:_SYNTASTIC_START)))[0] . ': '
-endfunction " }}}2
-
-function! s:_format_variable(name) abort " {{{2
-    let vals = []
-    if exists('g:syntastic_' . a:name)
-        call add(vals, 'g:syntastic_' . a:name . ' = ' . strtrans(string(g:syntastic_{a:name})))
-    endif
-    if exists('b:syntastic_' . a:name)
-        call add(vals, 'b:syntastic_' . a:name . ' = ' . strtrans(string(b:syntastic_{a:name})))
-    endif
-
-    return join(vals, ', ')
-endfunction " }}}2
-
-" }}}1
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 73
vim/autoload/syntastic/postprocess.vim

@@ -1,73 +0,0 @@
-if exists('g:loaded_syntastic_postprocess_autoload') || !exists('g:loaded_syntastic_plugin')
-    finish
-endif
-let g:loaded_syntastic_postprocess_autoload = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-" Public functions {{{1
-
-" merge consecutive blanks
-function! syntastic#postprocess#compressWhitespace(errors) abort " {{{2
-    for e in a:errors
-        let e['text'] = substitute(e['text'], "\001", '', 'g')
-        let e['text'] = substitute(e['text'], '\n', ' ', 'g')
-        let e['text'] = substitute(e['text'], '\m\s\{2,}', ' ', 'g')
-        let e['text'] = substitute(e['text'], '\m^\s\+', '', '')
-        let e['text'] = substitute(e['text'], '\m\s\+$', '', '')
-    endfor
-
-    return a:errors
-endfunction " }}}2
-
-" remove spurious CR under Cygwin
-function! syntastic#postprocess#cygwinRemoveCR(errors) abort " {{{2
-    if has('win32unix')
-        for e in a:errors
-            let e['text'] = substitute(e['text'], '\r', '', 'g')
-        endfor
-    endif
-
-    return a:errors
-endfunction " }}}2
-
-" decode XML entities
-function! syntastic#postprocess#decodeXMLEntities(errors) abort " {{{2
-    for e in a:errors
-        let e['text'] = syntastic#util#decodeXMLEntities(e['text'])
-    endfor
-
-    return a:errors
-endfunction " }}}2
-
-" filter out errors referencing other files
-function! syntastic#postprocess#filterForeignErrors(errors) abort " {{{2
-    return filter(copy(a:errors), 'get(v:val, "bufnr") == ' . bufnr(''))
-endfunction " }}}2
-
-" make sure line numbers are not past end of buffers
-" XXX: this loads all referenced buffers in memory
-function! syntastic#postprocess#guards(errors) abort " {{{2
-    let buffers = syntastic#util#unique(map(filter(copy(a:errors), 'v:val["valid"]'), 'str2nr(v:val["bufnr"])'))
-
-    let guards = {}
-    for b in buffers
-        let guards[b] = len(getbufline(b, 1, '$'))
-    endfor
-
-    for e in a:errors
-        if e['valid'] && e['lnum'] > guards[e['bufnr']]
-            let e['lnum'] = guards[e['bufnr']]
-        endif
-    endfor
-
-    return a:errors
-endfunction " }}}2
-
-" }}}1
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 316
vim/autoload/syntastic/preprocess.vim

@@ -1,316 +0,0 @@
-if exists('g:loaded_syntastic_preprocess_autoload') || !exists('g:loaded_syntastic_plugin')
-    finish
-endif
-let g:loaded_syntastic_preprocess_autoload = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-" Public functions {{{1
-
-function! syntastic#preprocess#cabal(errors) abort " {{{2
-    let out = []
-    let star = 0
-    for err in a:errors
-        if star
-            if err ==# ''
-                let star = 0
-            else
-                let out[-1] .= ' ' . err
-            endif
-        else
-            call add(out, err)
-            if err =~# '\m^*\s'
-                let star = 1
-            endif
-        endif
-    endfor
-    return out
-endfunction " }}}2
-
-function! syntastic#preprocess#checkstyle(errors) abort " {{{2
-    let out = []
-    let fname = expand('%', 1)
-    for err in a:errors
-        if match(err, '\m<error\>') > -1
-            let line = str2nr(matchstr(err, '\m\<line="\zs\d\+\ze"'))
-            if line == 0
-                continue
-            endif
-
-            let col = str2nr(matchstr(err, '\m\<column="\zs\d\+\ze"'))
-
-            let type = matchstr(err, '\m\<severity="\zs.\ze')
-            if type !~? '^[EW]'
-                let type = 'E'
-            endif
-
-            let message = syntastic#util#decodeXMLEntities(matchstr(err, '\m\<message="\zs[^"]\+\ze"'))
-
-            call add(out, join([fname, type, line, col, message], ':'))
-        elseif match(err, '\m<file name="') > -1
-            let fname = syntastic#util#decodeXMLEntities(matchstr(err, '\v\<file name\="\zs[^"]+\ze"'))
-        endif
-    endfor
-    return out
-endfunction " }}}2
-
-function! syntastic#preprocess#cppcheck(errors) abort " {{{2
-    return map(copy(a:errors), 'substitute(v:val, ''\v^\[[^]]+\]\zs( -\> \[[^]]+\])+\ze:'', "", "")')
-endfunction " }}}2
-
-" @vimlint(EVL102, 1, l:true)
-" @vimlint(EVL102, 1, l:false)
-" @vimlint(EVL102, 1, l:null)
-function! syntastic#preprocess#flow(errors) abort " {{{2
-    " JSON artifacts
-    let true = 1
-    let false = 0
-    let null = ''
-
-    " A hat tip to Marc Weber for this trick
-    " http://stackoverflow.com/questions/17751186/iterating-over-a-string-in-vimscript-or-parse-a-json-file/19105763#19105763
-    try
-        let errs = eval(join(a:errors, ''))
-    catch
-        let errs = {}
-    endtry
-
-    let out = []
-    if type(errs) == type({}) && has_key(errs, 'errors') && type(errs['errors']) == type([])
-        for e in errs['errors']
-            if type(e) == type({}) && has_key(e, 'message') && type(e['message']) == type([]) && len(e['message'])
-                let m = e['message'][0]
-                let t = e['message'][1:]
-
-                try
-                    let msg =
-                        \ m['path'] . ':' .
-                        \ m['line'] . ':' .
-                        \ m['start'] . ':' .
-                        \ (m['line'] ==# m['endline'] && str2nr(m['end']) > 0 ? m['end'] . ':' : '') .
-                        \ ' ' . m['descr']
-
-                    if len(t)
-                        let msg .= ' ' . join(map(t,
-                            \ 'v:val["descr"] . " (" . v:val["path"] . ":" . v:val["line"] . ":" . v:val["start"] . ' .
-                            \ '"," . (v:val["line"] !=# v:val["endline"] ? v:val["endline"] . ":" : "") . ' .
-                            \ 'v:val["end"] . ")"'))
-                    endif
-
-                    let msg = substitute(msg, '\r', '', 'g')
-                    let msg = substitute(msg, '\n', ' ', 'g')
-
-                    call add(out, msg)
-                catch /\m^Vim\%((\a\+)\)\=:E716/
-                    call syntastic#log#warn('checker javascript/flow: unknown error format')
-                    let out = []
-                    break
-                endtry
-            else
-                call syntastic#log#warn('checker javascript/flow: unknown error format')
-                let out = []
-                break
-            endif
-        endfor
-    else
-        call syntastic#log#warn('checker javascript/flow: unknown error format')
-    endif
-
-    return out
-endfunction " }}}2
-" @vimlint(EVL102, 0, l:true)
-" @vimlint(EVL102, 0, l:false)
-" @vimlint(EVL102, 0, l:null)
-
-function! syntastic#preprocess#killEmpty(errors) abort " {{{2
-    return filter(copy(a:errors), 'v:val !=# ""')
-endfunction " }}}2
-
-function! syntastic#preprocess#perl(errors) abort " {{{2
-    let out = []
-
-    for e in a:errors
-        let parts = matchlist(e, '\v^(.*)\sat\s(.{-})\sline\s(\d+)(.*)$')
-        if !empty(parts)
-            call add(out, parts[2] . ':' . parts[3] . ':' . parts[1] . parts[4])
-        endif
-    endfor
-
-    return syntastic#util#unique(out)
-endfunction " }}}2
-
-" @vimlint(EVL102, 1, l:true)
-" @vimlint(EVL102, 1, l:false)
-" @vimlint(EVL102, 1, l:null)
-function! syntastic#preprocess#prospector(errors) abort " {{{2
-    " JSON artifacts
-    let true = 1
-    let false = 0
-    let null = ''
-
-    " A hat tip to Marc Weber for this trick
-    " http://stackoverflow.com/questions/17751186/iterating-over-a-string-in-vimscript-or-parse-a-json-file/19105763#19105763
-    try
-        let errs = eval(join(a:errors, ''))
-    catch
-        let errs = {}
-    endtry
-
-    let out = []
-    if type(errs) == type({}) && has_key(errs, 'messages')
-        if type(errs['messages']) == type([])
-            for e in errs['messages']
-                if type(e) == type({})
-                    try
-                        if e['source'] ==# 'pylint'
-                            let e['location']['character'] += 1
-                        endif
-
-                        let msg =
-                            \ e['location']['path'] . ':' .
-                            \ e['location']['line'] . ':' .
-                            \ e['location']['character'] . ': ' .
-                            \ e['code'] . ' ' .
-                            \ e['message'] . ' ' .
-                            \ '[' . e['source'] . ']'
-
-                        call add(out, msg)
-                    catch /\m^Vim\%((\a\+)\)\=:E716/
-                        call syntastic#log#warn('checker python/prospector: unknown error format')
-                        let out = []
-                        break
-                    endtry
-                else
-                    call syntastic#log#warn('checker python/prospector: unknown error format')
-                    let out = []
-                    break
-                endif
-            endfor
-        else
-            call syntastic#log#warn('checker python/prospector: unknown error format')
-        endif
-    endif
-
-    return out
-endfunction " }}}2
-" @vimlint(EVL102, 0, l:true)
-" @vimlint(EVL102, 0, l:false)
-" @vimlint(EVL102, 0, l:null)
-
-function! syntastic#preprocess#rparse(errors) abort " {{{2
-    let errlist = copy(a:errors)
-
-    " remove uninteresting lines and handle continuations
-    let i = 0
-    while i < len(errlist)
-        if i > 0 && errlist[i][:1] ==# '  ' && errlist[i] !~# '\m\s\+\^$'
-            let errlist[i-1] .= errlist[i][1:]
-            call remove(errlist, i)
-        elseif errlist[i] !~# '\m^\(Lint:\|Lint checking:\|Error in\) '
-            call remove(errlist, i)
-        else
-            let i += 1
-        endif
-    endwhile
-
-    let out = []
-    let fname = ''
-    for e in errlist
-        if match(e, '\m^Lint: ') == 0
-            let parts = matchlist(e, '\m^Lint: \(.*\): found on lines \([0-9, ]\+\)\(+\(\d\+\) more\)\=')
-            if len(parts) >= 3
-                for line in split(parts[2], '\m,\s*')
-                    call add(out, 'E:' . fname . ':' . line . ': ' . parts[1])
-                endfor
-            endif
-            if len(parts) >= 5 && parts[4] !=# ''
-                call add(out, 'E:' . fname . ':0: ' . parts[1] . ' - ' . parts[4] . ' messages not shown')
-            endif
-        elseif match(e, '\m^Lint checking: ') == 0
-            let fname = matchstr(e, '\m^Lint checking: \zs.*')
-        elseif match(e, '\m^Error in ') == 0
-            call add(out, substitute(e, '\m^Error in .\+ : .\+\ze:\d\+:\d\+: ', 'E:' . fname, ''))
-        endif
-    endfor
-
-    return out
-endfunction " }}}2
-
-function! syntastic#preprocess#tslint(errors) abort " {{{2
-    return map(copy(a:errors), 'substitute(v:val, ''\m^\(([^)]\+)\)\s\(.\+\)$'', ''\2 \1'', "")')
-endfunction " }}}2
-
-function! syntastic#preprocess#validator(errors) abort " {{{2
-    let out = []
-    for e in a:errors
-        let parts = matchlist(e, '\v^"([^"]+)"(.+)')
-        if len(parts) >= 3
-            " URL decode, except leave alone any "+"
-            let parts[1] = substitute(parts[1], '\m%\(\x\x\)', '\=nr2char("0x".submatch(1))', 'g')
-            let parts[1] = substitute(parts[1], '\m\\"', '"', 'g')
-            let parts[1] = substitute(parts[1], '\m\\\\', '\\', 'g')
-            call add(out, '"' . parts[1] . '"' . parts[2])
-        endif
-    endfor
-    return out
-endfunction " }}}2
-
-" @vimlint(EVL102, 1, l:true)
-" @vimlint(EVL102, 1, l:false)
-" @vimlint(EVL102, 1, l:null)
-function! syntastic#preprocess#vint(errors) abort " {{{2
-    " JSON artifacts
-    let true = 1
-    let false = 0
-    let null = ''
-
-    " A hat tip to Marc Weber for this trick
-    " http://stackoverflow.com/questions/17751186/iterating-over-a-string-in-vimscript-or-parse-a-json-file/19105763#19105763
-    try
-        let errs = eval(join(a:errors, ''))
-    catch
-        let errs = []
-    endtry
-
-    let out = []
-    if type(errs) == type([])
-        for e in errs
-            if type(e) == type({})
-                try
-                    let msg =
-                        \ e['file_path'] . ':' .
-                        \ e['line_number'] . ':' .
-                        \ e['column_number'] . ':' .
-                        \ e['severity'][0] . ': ' .
-                        \ e['description'] . ' (' .
-                        \ e['policy_name'] . ')'
-
-                    call add(out, msg)
-                catch /\m^Vim\%((\a\+)\)\=:E716/
-                    call syntastic#log#warn('checker vim/vint: unknown error format')
-                    let out = []
-                    break
-                endtry
-            else
-                call syntastic#log#warn('checker vim/vint: unknown error format')
-                let out = []
-                break
-            endif
-        endfor
-    else
-        call syntastic#log#warn('checker vim/vint: unknown error format')
-    endif
-
-    return out
-endfunction " }}}2
-" @vimlint(EVL102, 0, l:true)
-" @vimlint(EVL102, 0, l:false)
-" @vimlint(EVL102, 0, l:null)
-
-" }}}1
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 414
vim/autoload/syntastic/util.vim

@@ -1,414 +0,0 @@
-if exists('g:loaded_syntastic_util_autoload') || !exists('g:loaded_syntastic_plugin')
-    finish
-endif
-let g:loaded_syntastic_util_autoload = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-" Public functions {{{1
-
-function! syntastic#util#isRunningWindows() abort " {{{2
-    return has('win16') || has('win32') || has('win64')
-endfunction " }}}2
-
-function! syntastic#util#DevNull() abort " {{{2
-    if syntastic#util#isRunningWindows()
-        return 'NUL'
-    endif
-    return '/dev/null'
-endfunction " }}}2
-
-" Get directory separator
-function! syntastic#util#Slash() abort " {{{2
-    return (!exists('+shellslash') || &shellslash) ? '/' : '\'
-endfunction " }}}2
-
-function! syntastic#util#CygwinPath(path) abort " {{{2
-    return substitute(syntastic#util#system('cygpath -m ' . syntastic#util#shescape(a:path)), "\n", '', 'g')
-endfunction " }}}2
-
-function! syntastic#util#system(command) abort " {{{2
-    let old_shell = &shell
-    let old_lc_messages = $LC_MESSAGES
-    let old_lc_all = $LC_ALL
-
-    let &shell = syntastic#util#var('shell')
-    let $LC_MESSAGES = 'C'
-    let $LC_ALL = ''
-
-    let out = system(a:command)
-
-    let $LC_ALL = old_lc_all
-    let $LC_MESSAGES = old_lc_messages
-
-    let &shell = old_shell
-
-    return out
-endfunction " }}}2
-
-" Create a temporary directory
-function! syntastic#util#tmpdir() abort " {{{2
-    let tempdir = ''
-
-    if (has('unix') || has('mac')) && executable('mktemp')
-        " TODO: option "-t" to mktemp(1) is not portable
-        let tmp = $TMPDIR !=# '' ? $TMPDIR : $TMP !=# '' ? $TMP : '/tmp'
-        let out = split(syntastic#util#system('mktemp -q -d ' . tmp . '/vim-syntastic-' . getpid() . '-XXXXXXXX'), "\n")
-        if v:shell_error == 0 && len(out) == 1
-            let tempdir = out[0]
-        endif
-    endif
-
-    if tempdir ==# ''
-        if has('win32') || has('win64')
-            let tempdir = $TEMP . syntastic#util#Slash() . 'vim-syntastic-' . getpid()
-        elseif has('win32unix')
-            let tempdir = syntastic#util#CygwinPath('/tmp/vim-syntastic-'  . getpid())
-        elseif $TMPDIR !=# ''
-            let tempdir = $TMPDIR . '/vim-syntastic-' . getpid()
-        else
-            let tempdir = '/tmp/vim-syntastic-' . getpid()
-        endif
-
-        try
-            call mkdir(tempdir, 'p', 0700)
-        catch /\m^Vim\%((\a\+)\)\=:E739/
-            call syntastic#log#error(v:exception)
-            let tempdir = '.'
-        endtry
-    endif
-
-    return tempdir
-endfunction " }}}2
-
-" Recursively remove a directory
-function! syntastic#util#rmrf(what) abort " {{{2
-    " try to make sure we don't delete directories we didn't create
-    if a:what !~? 'vim-syntastic-'
-        return
-    endif
-
-    if  getftype(a:what) ==# 'dir'
-        if !exists('s:rmrf')
-            let s:rmrf =
-                \ has('unix') || has('mac') ? 'rm -rf' :
-                \ has('win32') || has('win64') ? 'rmdir /S /Q' :
-                \ has('win16') || has('win95') || has('dos16') || has('dos32') ? 'deltree /Y' : ''
-        endif
-
-        if s:rmrf !=# ''
-            silent! call syntastic#util#system(s:rmrf . ' ' . syntastic#util#shescape(a:what))
-        else
-            call s:_rmrf(a:what)
-        endif
-    else
-        silent! call delete(a:what)
-    endif
-endfunction " }}}2
-
-"search the first 5 lines of the file for a magic number and return a map
-"containing the args and the executable
-"
-"e.g.
-"
-"#!/usr/bin/perl -f -bar
-"
-"returns
-"
-"{'exe': '/usr/bin/perl', 'args': ['-f', '-bar']}
-function! syntastic#util#parseShebang() abort " {{{2
-    for lnum in range(1, 5)
-        let line = getline(lnum)
-        if line =~# '^#!'
-            let line = substitute(line, '\v^#!\s*(\S+/env(\s+-\S+)*\s+)?', '', '')
-            let exe = matchstr(line, '\m^\S*\ze')
-            let args = split(matchstr(line, '\m^\S*\zs.*'))
-            return { 'exe': exe, 'args': args }
-        endif
-    endfor
-
-    return { 'exe': '', 'args': [] }
-endfunction " }}}2
-
-" Get the value of a variable.  Allow local variables to override global ones.
-function! syntastic#util#var(name, ...) abort " {{{2
-    return
-        \ exists('b:syntastic_' . a:name) ? b:syntastic_{a:name} :
-        \ exists('g:syntastic_' . a:name) ? g:syntastic_{a:name} :
-        \ a:0 > 0 ? a:1 : ''
-endfunction " }}}2
-
-" Parse a version string.  Return an array of version components.
-function! syntastic#util#parseVersion(version, ...) abort " {{{2
-    return map(split(matchstr( a:version, a:0 ? a:1 : '\v^\D*\zs\d+(\.\d+)+\ze' ), '\m\.'), 'str2nr(v:val)')
-endfunction " }}}2
-
-" Verify that the 'installed' version is at least the 'required' version.
-"
-" 'installed' and 'required' must be arrays. If they have different lengths,
-" the "missing" elements will be assumed to be 0 for the purposes of checking.
-"
-" See http://semver.org for info about version numbers.
-function! syntastic#util#versionIsAtLeast(installed, required) abort " {{{2
-    return syntastic#util#compareLexi(a:installed, a:required) >= 0
-endfunction " }}}2
-
-" Almost lexicographic comparison of two lists of integers. :) If lists
-" have different lengths, the "missing" elements are assumed to be 0.
-function! syntastic#util#compareLexi(a, b) abort " {{{2
-    for idx in range(max([len(a:a), len(a:b)]))
-        let a_element = str2nr(get(a:a, idx, 0))
-        let b_element = str2nr(get(a:b, idx, 0))
-        if a_element != b_element
-            return a_element > b_element ? 1 : -1
-        endif
-    endfor
-    " still here, thus everything matched
-    return 0
-endfunction " }}}2
-
-" strwidth() was added in Vim 7.3; if it doesn't exist, we use strlen()
-" and hope for the best :)
-let s:_width = function(exists('*strwidth') ? 'strwidth' : 'strlen')
-lockvar s:_width
-
-function! syntastic#util#screenWidth(str, tabstop) abort " {{{2
-    let chunks = split(a:str, "\t", 1)
-    let width = s:_width(chunks[-1])
-    for c in chunks[:-2]
-        let cwidth = s:_width(c)
-        let width += cwidth + a:tabstop - cwidth % a:tabstop
-    endfor
-    return width
-endfunction " }}}2
-
-"print as much of a:msg as possible without "Press Enter" prompt appearing
-function! syntastic#util#wideMsg(msg) abort " {{{2
-    let old_ruler = &ruler
-    let old_showcmd = &showcmd
-
-    "This is here because it is possible for some error messages to
-    "begin with \n which will cause a "press enter" prompt.
-    let msg = substitute(a:msg, "\n", '', 'g')
-
-    "convert tabs to spaces so that the tabs count towards the window
-    "width as the proper amount of characters
-    let chunks = split(msg, "\t", 1)
-    let msg = join(map(chunks[:-2], 'v:val . repeat(" ", &tabstop - s:_width(v:val) % &tabstop)'), '') . chunks[-1]
-    let msg = strpart(msg, 0, &columns - 1)
-
-    set noruler noshowcmd
-    call syntastic#util#redraw(0)
-
-    echo msg
-
-    let &ruler = old_ruler
-    let &showcmd = old_showcmd
-endfunction " }}}2
-
-" Check whether a buffer is loaded, listed, and not hidden
-function! syntastic#util#bufIsActive(buffer) abort " {{{2
-    " convert to number, or hell breaks loose
-    let buf = str2nr(a:buffer)
-
-    if !bufloaded(buf) || !buflisted(buf)
-        return 0
-    endif
-
-    " get rid of hidden buffers
-    for tab in range(1, tabpagenr('$'))
-        if index(tabpagebuflist(tab), buf) >= 0
-            return 1
-        endif
-    endfor
-
-    return 0
-endfunction " }}}2
-
-" start in directory a:where and walk up the parent folders until it
-" finds a file matching a:what; return path to that file
-function! syntastic#util#findInParent(what, where) abort " {{{2
-    let here = fnamemodify(a:where, ':p')
-
-    let root = syntastic#util#Slash()
-    if syntastic#util#isRunningWindows() && here[1] ==# ':'
-        " The drive letter is an ever-green source of fun.  That's because
-        " we don't care about running syntastic on Amiga these days. ;)
-        let root = fnamemodify(root, ':p')
-        let root = here[0] . root[1:]
-    endif
-
-    let old = ''
-    while here !=# ''
-        let p = split(globpath(here, a:what, 1), '\n')
-
-        if !empty(p)
-            return fnamemodify(p[0], ':p')
-        elseif here ==? root || here ==? old
-            break
-        endif
-
-        let old = here
-
-        " we use ':h:h' rather than ':h' since ':p' adds a trailing '/'
-        " if 'here' is a directory
-        let here = fnamemodify(here, ':p:h:h')
-    endwhile
-
-    return ''
-endfunction " }}}2
-
-" Returns unique elements in a list
-function! syntastic#util#unique(list) abort " {{{2
-    let seen = {}
-    let uniques = []
-    for e in a:list
-        if !has_key(seen, e)
-            let seen[e] = 1
-            call add(uniques, e)
-        endif
-    endfor
-    return uniques
-endfunction " }}}2
-
-" A less noisy shellescape()
-function! syntastic#util#shescape(string) abort " {{{2
-    return a:string =~# '\m^[A-Za-z0-9_/.-]\+$' ? a:string : shellescape(a:string)
-endfunction " }}}2
-
-" A less noisy shellescape(expand())
-function! syntastic#util#shexpand(string, ...) abort " {{{2
-    return syntastic#util#shescape(a:0 ? expand(a:string, a:1) : expand(a:string, 1))
-endfunction " }}}2
-
-" Escape arguments
-function! syntastic#util#argsescape(opt) abort " {{{2
-    if type(a:opt) == type('') && a:opt !=# ''
-        return [a:opt]
-    elseif type(a:opt) == type([])
-        return map(copy(a:opt), 'syntastic#util#shescape(v:val)')
-    endif
-
-    return []
-endfunction " }}}2
-
-" decode XML entities
-function! syntastic#util#decodeXMLEntities(string) abort " {{{2
-    let str = a:string
-    let str = substitute(str, '\m&lt;', '<', 'g')
-    let str = substitute(str, '\m&gt;', '>', 'g')
-    let str = substitute(str, '\m&quot;', '"', 'g')
-    let str = substitute(str, '\m&apos;', "'", 'g')
-    let str = substitute(str, '\m&amp;', '\&', 'g')
-    return str
-endfunction " }}}2
-
-function! syntastic#util#redraw(full) abort " {{{2
-    if a:full
-        redraw!
-    else
-        redraw
-    endif
-endfunction " }}}2
-
-function! syntastic#util#dictFilter(errors, filter) abort " {{{2
-    let rules = s:_translateFilter(a:filter)
-    " call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, "applying filter:", rules)
-    try
-        call filter(a:errors, rules)
-    catch /\m^Vim\%((\a\+)\)\=:E/
-        let msg = matchstr(v:exception, '\m^Vim\%((\a\+)\)\=:\zs.*')
-        call syntastic#log#error('quiet_messages: ' . msg)
-    endtry
-endfunction " }}}2
-
-" Return a [seconds, fractions] list of strings, representing the
-" (hopefully high resolution) time since program start
-function! syntastic#util#stamp() abort " {{{2
-    return split( split(reltimestr(reltime(g:_SYNTASTIC_START)))[0], '\.' )
-endfunction " }}}2
-
-" }}}1
-
-" Private functions {{{1
-
-function! s:_translateFilter(filters) abort " {{{2
-    let conditions = []
-    for k in keys(a:filters)
-        if type(a:filters[k]) == type([])
-            call extend(conditions, map(copy(a:filters[k]), 's:_translateElement(k, v:val)'))
-        else
-            call add(conditions, s:_translateElement(k, a:filters[k]))
-        endif
-    endfor
-
-    if conditions == []
-        let conditions = ['1']
-    endif
-    return len(conditions) == 1 ? conditions[0] : join(map(conditions, '"(" . v:val . ")"'), ' && ')
-endfunction " }}}2
-
-function! s:_translateElement(key, term) abort " {{{2
-    let fkey = a:key
-    if fkey[0] ==# '!'
-        let fkey = fkey[1:]
-        let not = 1
-    else
-        let not = 0
-    endif
-
-    if fkey ==? 'level'
-        let op = not ? ' ==? ' : ' !=? '
-        let ret = 'v:val["type"]' . op . string(a:term[0])
-    elseif fkey ==? 'type'
-        if a:term ==? 'style'
-            let op = not ? ' ==? ' : ' !=? '
-            let ret = 'get(v:val, "subtype", "")' . op . '"style"'
-        else
-            let op = not ? '!' : ''
-            let ret = op . 'has_key(v:val, "subtype")'
-        endif
-    elseif fkey ==? 'regex'
-        let op = not ? ' =~? ' : ' !~? '
-        let ret = 'v:val["text"]' . op . string(a:term)
-    elseif fkey ==? 'file' || fkey[:4] ==? 'file:'
-        let op = not ? ' =~# ' : ' !~# '
-        let ret = 'bufname(str2nr(v:val["bufnr"]))'
-        let mod = fkey[4:]
-        if mod !=# ''
-            let ret = 'fnamemodify(' . ret . ', ' . string(mod) . ')'
-        endif
-        let ret .= op . string(a:term)
-    else
-        call syntastic#log#warn('quiet_messages: ignoring invalid key ' . strtrans(string(fkey)))
-        let ret = '1'
-    endif
-    return ret
-endfunction " }}}2
-
-function! s:_rmrf(what) abort " {{{2
-    if !exists('s:rmdir')
-        let s:rmdir = syntastic#util#shescape(get(g:, 'netrw_localrmdir', 'rmdir'))
-    endif
-
-    if getftype(a:what) ==# 'dir'
-        if filewritable(a:what) != 2
-            return
-        endif
-
-        for f in split(globpath(a:what, '*', 1), "\n")
-            call s:_rmrf(f)
-        endfor
-        silent! call syntastic#util#system(s:rmdir . ' ' . syntastic#util#shescape(a:what))
-    else
-        silent! call delete(a:what)
-    endif
-endfunction " }}}2
-
-" }}}1
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 361
vim/doc/fugitive.txt

@@ -1,361 +0,0 @@
-*fugitive.txt*  A Git wrapper so awesome, it should be illegal
-
-Author:  Tim Pope <http://tpo.pe/>
-License: Same terms as Vim itself (see |license|)
-
-This plugin is only available if 'compatible' is not set.
-
-INTRODUCTION                                    *fugitive*
-
-Whenever you edit a file from a Git repository, a set of commands is defined
-that serve as a gateway to Git.
-
-COMMANDS                                        *fugitive-commands*
-
-These commands are local to the buffers in which they work (generally, buffers
-that are part of Git repositories).
-
-                                                *fugitive-:Git*
-:Git [args]             Run an arbitrary git command. Similar to :!git [args]
-                        but chdir to the repository tree first.
-
-                                                *fugitive-:Git!*
-:Git! [args]            Like |:Git|, but capture the output into a temp file,
-                        and edit that temp file.
-
-                                                *fugitive-:Gcd*
-:Gcd [directory]        |:cd| relative to the repository.
-
-                                                *fugitive-:Glcd*
-:Glcd [directory]       |:lcd| relative to the repository.
-
-                                                *fugitive-:Gstatus*
-:Gstatus                Bring up the output of git-status in the preview
-                        window.  The following maps, which work on the cursor
-                        line file where sensible, are provided:
-
-                        g?    show this help
-                        <C-N> next file
-                        <C-P> previous file
-                        <CR>  |:Gedit|
-                        -     |:Git| add
-                        -     |:Git| reset (staged files)
-                        a     Show alternative format
-                        cA    |:Gcommit| --amend --reuse-message=HEAD
-                        ca    |:Gcommit| --amend
-                        cc    |:Gcommit|
-                        cva   |:Gcommit| --amend --verbose
-                        cvc   |:Gcommit| --verbose
-                        D     |:Gdiff|
-                        ds    |:Gsdiff|
-                        dp    |:Git!| diff (p for patch; use :Gw to apply)
-                        dp    |:Git| add --intent-to-add (untracked files)
-                        dv    |:Gvdiff|
-                        O     |:Gtabedit|
-                        o     |:Gsplit|
-                        p     |:Git| add --patch
-                        p     |:Git| reset --patch (staged files)
-                        q     close status
-                        r     reload status
-                        S     |:Gvsplit|
-                        U     |:Git| checkout
-                        U     |:Git| checkout HEAD (staged files)
-                        U     |:Git| clean (untracked files)
-                        U     |:Git| rm (unmerged files)
-
-                                                *fugitive-:Gcommit*
-:Gcommit [args]         A wrapper around git-commit.  If there is nothing
-                        to commit, |:Gstatus| is called instead.  Unless the
-                        arguments given would skip the invocation of an editor
-                        (e.g., -m), a split window will be used to obtain a
-                        commit message, or a new tab if -v is given.  Write
-                        and close that window (:wq or |:Gwrite|) to finish the
-                        commit.  Unlike when running the actual git-commit
-                        command, it is possible (but unadvisable) to alter the
-                        index with commands like git-add and git-reset while a
-                        commit message is pending.
-
-                                                *fugitive-:Gmerge*
-:Gmerge [args]          Calls git-merge and loads errors and conflicted files
-                        into the quickfix list.  Opens a |:Gcommit| style
-                        split window for the commit message if the merge
-                        succeeds.  If called during a merge conflict, the
-                        conflicted files from the current index are loaded
-                        into the quickfix list.
-
-                                                *fugitive-:Gpull*
-:Gpull [args]           Like |:Gmerge|, but for git-pull.
-
-                                                *fugitive-:Gpush*
-:Gpush [args]           Invoke git-push, load the results into the quickfix
-                        list, and invoke |:cwindow| to reveal any errors.
-                        |:Dispatch| is used if available for asynchronous
-                        invocation.
-
-                                                *fugitive-:Gfetch*
-:Gfetch [args]          Like |:Gpush|, but for git-fetch.
-
-                                                *fugitive-:Ggrep*
-:Ggrep[!] [args]        |:grep|[!] with git-grep as 'grepprg'.
-
-                                                *fugitive-:Glgrep*
-:Glgrep[!] [args]       |:lgrep|[!] with git-grep as 'grepprg'.
-
-                                                *fugitive-:Glog*
-:Glog [args]            Load all previous revisions of the current file into
-                        the quickfix list.  Additional git-log arguments can
-                        be given (for example, --reverse).  If "--" appears as
-                        an argument, no file specific filtering is done, and
-                        previous commits rather than previous file revisions
-                        are loaded.
-
-:{range}Glog [args]     Use git-log -L to load previous revisions of the given
-                        range of the current file into the quickfix list.  The
-                        cursor is positioned on the first line of the first
-                        diff hunk for each commit.
-
-                                                *fugitive-:Gllog*
-:Gllog [args]           Like |:Glog|, but use the location list instead of the
-                        quickfix list.
-
-                                        *fugitive-:Gedit* *fugitive-:Ge*
-:Gedit [revision]       |:edit| a |fugitive-revision|.
-
-                                                *fugitive-:Gsplit*
-:Gsplit [revision]      |:split| a |fugitive-revision|.
-
-                                                *fugitive-:Gvsplit*
-:Gvsplit [revision]     |:vsplit| a |fugitive-revision|.
-
-                                                *fugitive-:Gtabedit*
-:Gtabedit [revision]    |:tabedit| a |fugitive-revision|.
-
-                                                *fugitive-:Gpedit*
-:Gpedit [revision]      |:pedit| a |fugitive-revision|.
-
-:Gsplit! [args]                 *fugitive-:Gsplit!* *fugitive-:Gvsplit!*
-:Gvsplit! [args]                *fugitive-:Gtabedit!* *fugitive-:Gpedit!*
-:Gtabedit! [args]       Like |:Git!|, but open the resulting temp file in a
-:Gpedit! [args]         split, tab, or preview window.
-
-                                                *fugitive-:Gread*
-:Gread [revision]       Empty the buffer and |:read| a |fugitive-revision|.
-                        When the argument is omitted, this is similar to
-                        git-checkout on a work tree file or git-add on a stage
-                        file, but without writing anything to disk.
-
-:{range}Gread [revision]
-                        |:read| in a |fugitive-revision| after {range}.
-
-                                                *fugitive-:Gread!*
-:Gread! [args]          Empty the buffer and |:read| the output of a Git
-                        command.  For example, :Gread! show HEAD:%.
-
-:{range}Gread! [args]  |:read| the output of a Git command after {range}.
-
-                                        *fugitive-:Gw* *fugitive-:Gwrite*
-:Gwrite                 Write to the current file's path and stage the results.
-                        When run in a work tree file, it is effectively git
-                        add.  Elsewhere, it is effectively git-checkout.  A
-                        great deal of effort is expended to behave sensibly
-                        when the work tree or index version of the file is
-                        open in another buffer.
-
-:Gwrite {path}          You can give |:Gwrite| an explicit path of where in
-                        the work tree to write.  You can also give a path like
-                        :0:foo.txt or even :0 to write to just that stage in
-                        the index.
-
-                                                *fugitive-:Gwq*
-:Gwq [path]             Like |:Gwrite| followed by |:quit| if the write
-                        succeeded.
-
-:Gwq! [path]            Like |:Gwrite|! followed by |:quit|! if the write
-                        succeeded.
-
-                                                *fugitive-:Gdiff*
-:Gdiff [revision]       Perform a |vimdiff| against the current file in the
-                        given revision.  With no argument, the version in the
-                        index is used (which means a three-way diff during a
-                        merge conflict, making it a git-mergetool
-                        alternative).  The newer of the two files is placed
-                        to the right or bottom, depending on 'diffopt' and
-                        the width of the window relative to 'textwidth'.  Use
-                        |do| and |dp| and write to the index file to simulate
-                        "git add --patch". For the three-way diff, there is
-                        also d2o and d3o pulling the hunk to the middle from
-                        the left or the right window, respectively.
-
-                                                *fugitive-:Gsdiff*
-:Gsdiff [revision]      Like |:Gdiff|, but always split horizontally.
-
-                                                *fugitive-:Gvdiff*
-:Gvdiff [revision]      Like |:Gdiff|, but always split vertically.
-
-                                                *fugitive-:Gmove*
-:Gmove {destination}    Wrapper around git-mv that renames the buffer
-                        afterward.  The destination is relative to the current
-                        directory except when started with a /, in which case
-                        it is relative to the work tree.  Add a ! to pass -f.
-
-                                                *fugitive-:Gdelete*
-:Gdelete                Wrapper around git-rm that deletes the buffer
-                        afterward.  When invoked in an index file, --cached is
-                        passed.  Add a ! to pass -f and forcefully discard the
-                        buffer.
-
-                                                *fugitive-:Gremove*
-:Gremove                Like :Gdelete, but keep the (now empty) buffer around.
-
-                                                *fugitive-:Gblame*
-:Gblame [flags]         Run git-blame on the file and open the results in a
-                        scroll bound vertical split.  You can give any of
-                        ltfnsewMC as flags and they will be passed along to
-                        git-blame.  The following maps, which work on the
-                        cursor line commit where sensible, are provided:
-
-                        g?    show this help
-                        A     resize to end of author column
-                        C     resize to end of commit column
-                        D     resize to end of date/time column
-                        q     close blame and return to blamed window
-                        gq    q, then |:Gedit| to return to work tree version
-                        <CR>  q, then open commit
-                        o     open commit in horizontal split
-                        O     open commit in new tab
-                        -     reblame at commit
-                        ~     reblame at [count]th first grandparent
-                        P     reblame at [count]th parent (like HEAD^[count])
-
-:[range]Gblame [flags]  Run git-blame on the given range.
-
-                                                *fugitive-:Gbrowse*
-:Gbrowse                Open the current file, blob, tree, commit, or tag
-                        in your browser at the upstream hosting provider.
-                        If a range is given, it is appropriately appended to
-                        the URL as an anchor.
-
-                        Upstream providers can be added by installing an
-                        appropriate Vim plugin.  For example, GitHub can be
-                        supported by installing rhubarb.vim, available at
-                        <https://github.com/tpope/vim-rhubarb>.
-
-                        The hosting provider is determined by looking at the
-                        remote for the current or specified branch and falls
-                        back to "origin".  In the special case of a "."
-                        remote, a local instance of git-instaweb will be
-                        started and used.
-
-:Gbrowse {revision}     Like :Gbrowse, but for a given |fugitive-revision|.  A
-                        useful value here is -, which ties the URL to the
-                        latest commit rather than a volatile branch.
-
-:Gbrowse [...]@{remote} Force using the given remote rather than the remote
-                        for the current branch.  The remote is used to
-                        determine which GitHub repository to link to.
-
-:{range}Gbrowse [args]  Appends an anchor to the URL that emphasizes the
-                        selected lines.  You almost certainly want to give a
-                        "-" argument in this case to force the URL to include
-                        an exact revision.
-
-:[range]Gbrowse! [args] Like :Gbrowse, but put the URL on the clipboard rather
-                        than opening it.
-
-MAPPINGS                                        *fugitive-mappings*
-
-These maps are available everywhere.
-
-                                                *fugitive-c_CTRL-R_CTRL-G*
-<C-R><C-G>              On the command line, recall the path to the current
-                        object (that is, a representation of the object
-                        recognized by |:Gedit|).
-
-                                                *fugitive-y_CTRL-G*
-["x]y<C-G>              Yank the commit SHA and path to the current object.
-
-These maps are available in Git objects.
-
-                                                *fugitive-<CR>*
-<CR>                    Jump to the revision under the cursor.
-
-                                                *fugitive-o*
-o                       Jump to the revision under the cursor in a new split.
-
-                                                *fugitive-S*
-S                       Jump to the revision under the cursor in a new
-                        vertical split.
-
-                                                *fugitive-O*
-O                       Jump to the revision under the cursor in a new tab.
-
-                                                *fugitive--*
--                       Go to the tree containing the current tree or blob.
-
-                                                *fugitive-~*
-~                       Go to the current file in the [count]th first
-                        ancestor.
-
-                                                *fugitive-P*
-P                       Go to the current file in the [count]th parent.
-
-                                                *fugitive-C*
-C                       Go to the commit containing the current file.
-
-                                                *fugitive-.*
-.                       Start a |:| command line with the current revision
-                        prepopulated at the end of the line.
-
-                                                *fugitive-a*
-a                       Show the current tag, commit, or tree in an alternate
-                        format.
-
-SPECIFYING REVISIONS                            *fugitive-revision*
-
-Fugitive revisions are similar to Git revisions as defined in the "SPECIFYING
-REVISIONS" section in the git-rev-parse man page.  For commands that accept an
-optional revision, the default is the file in the index for work tree files
-and the work tree file for everything else.  Example revisions follow.
-
-Revision        Meaning ~
-HEAD            .git/HEAD
-master          .git/refs/heads/master
-HEAD^{}         The commit referenced by HEAD
-HEAD^           The parent of the commit referenced by HEAD
-HEAD:           The tree referenced by HEAD
-/HEAD           The file named HEAD in the work tree
-Makefile        The file named Makefile in the work tree
-HEAD^:Makefile  The file named Makefile in the parent of HEAD
-:Makefile       The file named Makefile in the index (writable)
--               The current file in HEAD
-^               The current file in the previous commit
-~3              The current file 3 commits ago
-:               .git/index (Same as |:Gstatus|)
-:0              The current file in the index
-:1              The current file's common ancestor during a conflict
-:2              The current file in the target branch during a conflict
-:3              The current file in the merged branch during a conflict
-:/foo           The most recent commit with "foo" in the message
-
-STATUSLINE                                      *fugitive-statusline*
-
-                                                *fugitive#statusline()*
-Add %{fugitive#statusline()} to your statusline to get an indicator including
-the current branch and the currently edited file's commit.  If you don't have
-a statusline, this one matches the default when 'ruler' is set:
->
-    set statusline=%<%f\ %h%m%r%{fugitive#statusline()}%=%-14.(%l,%c%V%)\ %P
-<
-                                                *fugitive#head(...)*
-Use fugitive#head() to return the name of the current branch. If the current
-HEAD is detached, fugitive#head() will return the empty string, unless the
-optional argument is given, in which case the hash of the current commit will
-be truncated to the given number of characters.
-
-ABOUT                                           *fugitive-about*
-
-Grab the latest version or report a bug on GitHub:
-
-http://github.com/tpope/vim-fugitive
-
- vim:tw=78:et:ft=help:norl:

+ 0 - 956
vim/doc/syntastic.txt

@@ -1,956 +0,0 @@
-*syntastic.txt*   Syntax checking on the fly has never been so pimp.
-*syntastic*
-
-
-                    It's a bird! It's a plane! ZOMG It's ... ~
-
-                   _____             __             __  _      ~
-                  / ___/__  ______  / /_____ ______/ /_(_)____ ~
-                  \__ \/ / / / __ \/ __/ __ `/ ___/ __/ / ___/ ~
-                 ___/ / /_/ / / / / /_/ /_/ (__  ) /_/ / /__   ~
-                /____/\__, /_/ /_/\__/\__,_/____/\__/_/\___/   ~
-                     /____/                                    ~
-
-
-
-                              Reference Manual~
-
-
-==============================================================================
-CONTENTS                                                  *syntastic-contents*
-
-    1.Intro........................................|syntastic-intro|
-        1.1.Quick start............................|syntastic-quickstart|
-        1.2.Recommended settings...................|syntastic-recommended|
-    2.Functionality provided.......................|syntastic-functionality|
-        2.1.The statusline flag....................|syntastic-statusline-flag|
-        2.2.Error signs............................|syntastic-error-signs|
-        2.3.Error window...........................|syntastic-error-window|
-        2.4.Error highlighting.....................|syntastic-highlighting|
-        2.5.Aggregating errors.....................|syntastic-aggregating-errors|
-        2.6.Filtering errors.......................|syntastic-filtering-errors|
-    3.Commands.....................................|syntastic-commands|
-    4.Global Options...............................|syntastic-global-options|
-    5.Checker Options..............................|syntastic-checker-options|
-        5.1.Choosing which checkers to use.........|syntastic-filetype-checkers|
-        5.2.Choosing the executable................|syntastic-config-exec|
-        5.3.Configuring specific checkers..........|syntastic-config-makeprg|
-        5.4.Sorting errors.........................|syntastic-config-sort|
-    6.Notes........................................|syntastic-notes|
-        6.1.Handling of composite filetypes........|syntastic-composite|
-        6.2.Editing files over network.............|syntastic-netrw|
-        6.3.The 'shellslash' option................|syntastic-shellslash|
-    7.Compatibility with other software............|syntastic-compatibility|
-        7.1.The csh and tcsh shells................|syntastic-csh|
-        7.2.Eclim..................................|syntastic-eclim|
-        7.3.The fish shell.........................|syntastic-fish|
-        7.4.The fizsh shell........................|syntastic-fizsh|
-        7.5.powerline..............................|syntastic-powerline|
-        7.6.The PowerShell shell...................|syntastic-powershell|
-        7.7.python-mode............................|syntastic-pymode|
-        7.8.vim-auto-save..........................|syntastic-vim-auto-save|
-        7.9.vim-go.................................|syntastic-vim-go|
-        7.10.vim-virtualenv........................|syntastic-vim-virtualenv|
-        7.11.YouCompleteMe.........................|syntastic-ycm|
-    8.About........................................|syntastic-about|
-    9.License......................................|syntastic-license|
-
-
-==============================================================================
-1. Intro                                                     *syntastic-intro*
-
-Syntastic is a syntax checking plugin that runs files through external syntax
-checkers. This can be done on demand, or automatically as files are saved and
-opened.  If syntax errors are detected, the user is notified and is happy
-because they didn't have to compile their code or execute their script to find
-them.
-
-Syntastic comes in two parts: the syntax checker plugins, and the core. The
-syntax checker plugins are defined on a per-filetype basis where each one wraps
-up an external syntax checking program. The core script delegates off to these
-plugins and uses their output to provide the syntastic functionality.
-
-Take a look at the wiki for a list of supported filetypes and checkers:
-
-    https://github.com/scrooloose/syntastic/wiki/Syntax-Checkers
-
-Note: This doc only deals with using syntastic. To learn how to write syntax
-checker integrations, see the guide on the GitHub wiki:
-
-    https://github.com/scrooloose/syntastic/wiki/Syntax-Checker-Guide
-
-------------------------------------------------------------------------------
-1.1. Quick start                                        *syntastic-quickstart*
-
-Syntastic comes preconfigured with a default list of enabled checkers per
-filetype. This list is kept reasonably short to prevent slowing down Vim or
-trying to use conflicting checkers.
-
-You can see the list of checkers available for the current filetype with the
-|:SyntasticInfo| command.
-
-You probably want to override the configured list of checkers for the
-filetypes you use, and also change the arguments passed to specific checkers
-to suit your needs. See |syntastic-checker-options| below for details.
-
-Use |:SyntasticCheck| to manually check right now. Use |:Errors| to open the
-|location-list| window, and |:lclose| to close it. You can clear the error
-list with |:SyntasticReset|, and you can use |:SyntasticToggleMode| to switch
-between active (checking on writing the buffer) and passive (manual) checking.
-
-You don't have to switch focus to the |location-list| window to jump to the
-different errors.  Vim provides several built-in commands for this, for
-example |:lnext| and |:lprevious|.  You may want to add shortcut mappings for
-these commands, or perhaps install a plugin such as Tim Pope's 'unimpaired'
-(see https://github.com/tpope/vim-unimpaired) that provides such mappings.
-
-------------------------------------------------------------------------------
-1.2. Recommended settings                              *syntastic-recommended*
-
-Syntastic has a large number of options that can be configured, and the
-defaults are not particularly well suitable for new users. It is recommended
-that you start by adding the following lines to your vimrc, and return to them
-later as needed: >
-    set statusline+=%#warningmsg#
-    set statusline+=%{SyntasticStatuslineFlag()}
-    set statusline+=%*
-
-    let g:syntastic_always_populate_loc_list = 1
-    let g:syntastic_auto_loc_list = 1
-    let g:syntastic_check_on_open = 1
-    let g:syntastic_check_on_wq = 0
-<
-==============================================================================
-2. Functionality provided                            *syntastic-functionality*
-
-Syntax checking can be done automatically or on demand (see
-|'syntastic_mode_map'| and |:SyntasticToggleMode| for configuring this).
-
-When syntax checking is done, the features below can be used to notify the
-user of errors. See |syntastic-global-options| for how to configure and
-activate/deactivate these features.
-
-    * A statusline flag
-    * Signs beside lines with errors
-    * The |location-list| can be populated with the errors for the associated
-      buffer
-    * Erroneous parts of lines can be highlighted (this functionality is only
-      provided by some syntax checkers)
-    * Balloons (if the |+balloon_eval| feature is compiled in) can be used to
-      display error messages for erroneous lines when hovering the mouse over
-      them
-    * Error messages from multiple checkers can be aggregated in a single list
-
-------------------------------------------------------------------------------
-2.1. The statusline flag                           *syntastic-statusline-flag*
-
-To use the statusline flag, this must appear in your |'statusline'| setting >
-    %{SyntasticStatuslineFlag()}
-<
-Something like this could be more useful: >
-    set statusline+=%#warningmsg#
-    set statusline+=%{SyntasticStatuslineFlag()}
-    set statusline+=%*
-<
-When syntax errors are detected a flag will be shown. The content of the flag
-is derived from the |syntastic_stl_format| option.
-
-------------------------------------------------------------------------------
-2.2. Error signs                                       *syntastic-error-signs*
-
-Syntastic uses the |:sign| commands to mark lines with errors and warnings in
-the sign column. To enable this feature, use the |'syntastic_enable_signs'|
-option.
-
-Signs are colored using the Error and Todo syntax highlight groups by default.
-If you wish to customize the colors for the signs, you can use the following
-groups:
-    SyntasticErrorSign - For syntax errors, links to 'error' by default
-    SyntasticWarningSign - For syntax warnings, links to 'todo' by default
-    SyntasticStyleErrorSign - For style errors, links to 'SyntasticErrorSign'
-                              by default
-    SyntasticStyleWarningSign - For style warnings, links to
-                                'SyntasticWarningSign' by default
-
-Example: >
-    highlight SyntasticErrorSign guifg=white guibg=red
-<
-To set up highlighting for the line where a sign resides, you can use the
-following highlight groups:
-    SyntasticErrorLine
-    SyntasticWarningLine
-    SyntasticStyleErrorLine - Links to 'SyntasticErrorLine' by default
-    SyntasticStyleWarningLine - Links to 'SyntasticWarningLine' by default
-
-Example: >
-    highlight SyntasticErrorLine guibg=#2f0000
-<
-------------------------------------------------------------------------------
-2.3. The error window                                   *syntastic-error-window*
-
-You can use the |:Errors| command to display the errors for the current buffer
-in the |location-list|.
-
-Note that when you use |:Errors| the current location list is overwritten with
-Syntastic's own location list. The location list is also overwritten when
-|syntastic_auto_jump| is non-zero and the cursor has to jump to an issue.
-
-By default syntastic doesn't fill the |location-list| with the errors found by
-the checkers, in order to reduce clashes with other plugins. Consequently, if
-you run |:lopen| or |:lwindow| rather than |:Errors| to open the error window you
-wouldn't see syntastic's list of errors. If you insist on using |:lopen| or
-|:lwindow| you should either run |:SyntasticSetLoclist| after running the checks,
-or set |syntastic_always_populate_loc_list| which tells syntastic to update the
-|location-list| automatically.
-
-------------------------------------------------------------------------------
-2.4. Error highlighting                               *syntastic-highlighting*
-
-Some checkers provide enough information for syntastic to be able to highlight
-errors. By default the SpellBad syntax highlight group is used to color errors,
-and the SpellCap group is used for warnings. If you wish to customize the
-colors for highlighting you can use the following groups:
-    SyntasticError - Links to 'SpellBad' by default
-    SyntasticWarning - Links to 'SpellCap' by default
-    SyntasticStyleError - Links to SyntasticError by default
-    SyntasticStyleWarning - Links to SyntasticWarning by default
-
-Example: >
-    highlight SyntasticError guibg=#2f0000
-<
-------------------------------------------------------------------------------
-2.5. Aggregating errors                         *syntastic-aggregating-errors*
-
-By default, namely if |'syntastic_aggregate_errors'| is unset, syntastic runs
-in turn the checkers corresponding to the filetype of the current file (see
-|syntastic-filetype-checkers|), and stops as soon as a checker reports any
-errors. It then notifies you of the errors using the notification mechanisms
-above. In this mode error lists are always produced by a single checker, and,
-if you open the error window, the name of the checker that generated the errors
-is shown on the statusline of the error window.
-
-If |'syntastic_aggregate_errors'| is set, syntastic runs all checkers that
-apply (still cf. |syntastic-filetype-checkers|), then aggregates errors found
-by all checkers in a single list, and notifies you. In this mode each error
-message is labeled with the name of the checker that generated it, but you can
-disable generation of these labels by turning off '|syntastic_id_checkers|'.
-
-If |'syntastic_sort_aggregated_errors'| is set (which is the default), messages
-in the aggregated list are grouped by file, then sorted by line number, then
-type, then column number.  Otherwise messages produced by the same checker are
-grouped together, and sorting within each group is decided by the variables
-|'syntastic_<filetype>_<checker>_sort'|.
-
-------------------------------------------------------------------------------
-2.6 Filtering errors                              *syntastic-filtering-errors*
-
-You can selectively disable some of the errors found by checkers either
-using |'syntastic_quiet_messages'|, or by specifying a list of patterns in
-|'syntastic_ignore_files'|.
-
-See also: |'syntastic_<filetype>_<checker>_quiet_messages'|.
-
-==============================================================================
-3. Commands                                               *syntastic-commands*
-
-:Errors                                                              *:Errors*
-
-When errors have been detected, use this command to pop up the |location-list|
-and display the error messages.
-
-Please note that the |:Errors| command overwrites the current location list with
-syntastic's own location list.
-
-:SyntasticToggleMode                                    *:SyntasticToggleMode*
-
-Toggles syntastic between active and passive mode. See |'syntastic_mode_map'|
-for more info.
-
-:SyntasticCheck                                              *:SyntasticCheck*
-
-Manually cause a syntax check to be done.  By default the checkers in the
-|'g:syntastic_<filetype>_checkers'| or |'b:syntastic_checkers'| lists are run,
-cf. |syntastic-filetype-checkers|.  If |syntastic_aggregate_errors| is unset
-(which is the default), checking stops the first time a checker reports any
-errors; if |syntastic_aggregate_errors| is set, all checkers that apply are run
-in turn, and all errors found are aggregated in a single list.
-
-The command may be followed by a (space separated) list of checkers.  In this
-case |'g:syntastic_<filetype>_checkers'| and |'b:syntastic_checkers'| are
-ignored, and the checkers named by the command's arguments are run instead, in
-the order specified.  The rules of |syntastic_aggregate_errors| still apply.
-
-Example: >
-    :SyntasticCheck flake8 pylint
-<
-:SyntasticInfo                                                *:SyntasticInfo*
-
-The command takes an optional argument, and outputs information about the
-checkers available for the filetype named by said argument, or for the current
-filetype if no argument was provided.
-
-:SyntasticReset                                              *:SyntasticReset*
-
-Resets the list of errors and turns off all error notifiers.
-
-:SyntasticSetLoclist                                    *:SyntasticSetLoclist*
-
-If |'syntastic_always_populate_loc_list'| is not set, the |location-list| is
-not filled in automatically with the list of errors detected by the checkers.
-This is useful if you run syntastic along with other plugins that use location
-lists.  The |:SyntasticSetLoclist| command allows you to stick the errors into
-the location list explicitly.
-
-==============================================================================
-4. Global Options                                   *syntastic-global-options*
-
-
-                                                   *'syntastic_check_on_open'*
-Default: 0
-If enabled, syntastic will do syntax checks when buffers are first loaded as
-well as on saving >
-    let g:syntastic_check_on_open = 1
-<
-                                                     *'syntastic_check_on_wq'*
-Default: 1
-Normally syntastic runs syntax checks whenever buffers are written to disk.
-If you want to skip these checks when you issue |:wq|, |:x|, and |:ZZ|, set this
-variable to 0. >
-    let g:syntastic_check_on_wq = 0
-<
-                                                *'syntastic_aggregate_errors'*
-Default: 0
-When enabled, syntastic runs all checkers that apply to the current filetype,
-then aggregates errors found by all checkers and displays them. When disabled,
-syntastic runs each checker in turn, and stops to display the results the first
-time a checker finds any errors. >
-    let g:syntastic_aggregate_errors = 1
-<
-                                                     *'syntastic_id_checkers'*
-Default: 1
-When results from multiple checkers are aggregated in a single error list
-(that is either when |syntastic_aggregate_errors| is enabled, or when checking
-a file with a composite filetype), it might not be immediately obvious which
-checker has produced a given error message. This variable instructs syntastic
-to label error messages with the names of the checkers that created them. >
-    let g:syntastic_id_checkers = 0
-<
-                                          *'syntastic_sort_aggregated_errors'*
-Default: 1
-By default, when results from multiple checkers are aggregated in a single
-error list (that is either when |syntastic_aggregate_errors| is enabled, or
-when checking a file with a composite filetype), errors are grouped by file,
-then sorted by line number, then grouped by type (namely errors take precedence
-over warnings), then they are sorted by column number.  If you want to leave
-messages grouped by checker output, set this variable to 0. >
-    let g:syntastic_sort_aggregated_errors = 0
-<
-                                              *'syntastic_echo_current_error'*
-Default: 1
-If enabled, syntastic will echo current error to the command window. If
-multiple errors are found on the same line, |syntastic_cursor_columns| is used
-to decide which one is shown. >
-    let g:syntastic_echo_current_error = 1
-<
-                                                  *'syntastic_cursor_columns'*
-Default: 1
-This option controls which errors are echoed to the command window if
-|syntastic_echo_current_error| is set and multiple errors are found on the same
-line. When the option is enabled, the first error corresponding to the current
-column is show. Otherwise, the first error on the current line is echoed,
-regardless of the cursor position on the current line.
-
-When dealing with very large lists of errors, disabling this option can speed
-up navigation significantly: >
-    let g:syntastic_cursor_column = 0
-<
-                                                    *'syntastic_enable_signs'*
-Default: 1
-Use this option to tell syntastic whether to use the |:sign| interface to mark
-syntax errors: >
-    let g:syntastic_enable_signs = 1
-<
-                     *'syntastic_error_symbol'* *'syntastic_style_error_symbol'*
-                 *'syntastic_warning_symbol'* *'syntastic_style_warning_symbol'*
-Use this option to control what the syntastic |:sign| text contains. Several
-error symbols can be customized:
-    syntastic_error_symbol - For syntax errors, defaults to '>>'
-    syntastic_style_error_symbol - For style errors, defaults to 'S>'
-    syntastic_warning_symbol - For syntax warnings, defaults to '>>'
-    syntastic_style_warning_symbol - For style warnings, defaults to 'S>'
-
-Example: >
-    let g:syntastic_error_symbol = "✗"
-    let g:syntastic_warning_symbol = "⚠"
-<
-                                                 *'syntastic_enable_balloons'*
-Default: 1
-Use this option to tell syntastic whether to display error messages in balloons
-when the mouse is hovered over erroneous lines: >
-    let g:syntastic_enable_balloons = 1
-<
-Note that Vim must be compiled with |+balloon_eval|.
-
-                                             *'syntastic_enable_highlighting'*
-Default: 1
-Use this option to tell syntastic whether to use syntax highlighting to mark
-errors (where possible). Highlighting can be turned off with the following >
-    let g:syntastic_enable_highlighting = 0
-<
-                                        *'syntastic_always_populate_loc_list'*
-Default: 0
-Enable this option to tell syntastic to always stick any detected errors into
-the |location-list|: >
-    let g:syntastic_always_populate_loc_list = 1
-<
-                                                       *'syntastic_auto_jump'*
-Default: 0
-Enable this option if you want the cursor to jump to the first detected issue
-when saving or opening a file.
-
-When set to 0 the cursor won't jump automatically. >
-    let g:syntastic_auto_jump = 0
-<
-When set to 1 the cursor will always jump to the first issue detected,
-regardless of type. >
-    let g:syntastic_auto_jump = 1
-<
-When set to 2 the cursor will jump to the first issue detected, but only if
-this issue is an error. >
-    let g:syntastic_auto_jump = 2
-<
-When set to 3 the cursor will jump to the first error detected, if any. If
-all issues detected are warnings, the cursor won't jump. >
-    let g:syntastic_auto_jump = 3
-<
-                                                   *'syntastic_auto_loc_list'*
-Default: 2
-Use this option to tell syntastic to automatically open and/or close the
-|location-list| (see |syntastic-error-window|).
-
-When set to 0 the error window will not be opened or closed automatically. >
-    let g:syntastic_auto_loc_list = 0
-<
-When set to 1 the error window will be automatically opened when errors are
-detected, and closed when none are detected. >
-    let g:syntastic_auto_loc_list = 1
-<
-When set to 2 the error window will be automatically closed when no errors are
-detected, but not opened automatically. >
-    let g:syntastic_auto_loc_list = 2
-<
-                                                 *'syntastic_loc_list_height'*
-Default: 10
-Use this option to specify the height of the location lists that syntastic
-opens. >
-    let g:syntastic_loc_list_height = 5
-<
-                                                    *'syntastic_ignore_files'*
-Default: []
-Use this option to specify files that syntastic should never check.  It's a
-list of |regular-expression| patterns.  The full paths of files (see |::p|) are
-matched against these patterns, and the matches are case sensitive. Use |\c|
-to specify case insensitive patterns.  Example: >
-    let g:syntastic_ignore_files = ['\m^/usr/include/', '\m\c\.h$']
-<
-                                                    *'syntastic_filetype_map'*
-Default: {}
-Use this option to map non-standard filetypes to standard ones.  Corresponding
-checkers are mapped accordingly, which allows syntastic to check files with
-non-standard filetypes: >
-    let g:syntastic_filetype_map = {
-        \ "latex": "tex",
-        \ "gentoo-metadata": "xml" }
-<
-Composite filetypes can also be mapped to simple types, which disables the
-default behaviour of running both checkers against the input file: >
-    let g:syntastic_filetype_map = { "handlebars.html": "handlebars" }
-<
-                                                        *'syntastic_mode_map'*
-Default: { "mode": "active",
-           "active_filetypes": [],
-           "passive_filetypes": [] }
-Use this option to fine tune when automatic syntax checking is done (or not
-done).
-
-The option should be set to something like: >
-
-    let g:syntastic_mode_map = {
-        \ "mode": "active",
-        \ "active_filetypes": ["ruby", "php"],
-        \ "passive_filetypes": ["puppet"] }
-<
-"mode" can be mapped to one of two values - "active" or "passive". When set
-to "active", syntastic does automatic checking whenever a buffer is saved or
-initially opened.  When set to "passive" syntastic only checks when the user
-calls |:SyntasticCheck|.
-
-The exceptions to these rules are defined with "active_filetypes" and
-"passive_filetypes". In passive mode, automatic checks are still done for
-filetypes in the "active_filetypes" array (and "passive_filetypes" is
-ignored). In active mode, automatic checks are not done for any filetypes in
-the "passive_filetypes" array ("active_filetypes" is ignored).
-
-If any of "mode", "active_filetypes", or "passive_filetypes" are left
-unspecified, they default to values above.
-
-If local variable |'b:syntastic_mode'| is defined its value takes precedence
-over all calculations involving |'syntastic_mode_map'| for the corresponding
-buffer.
-
-At runtime, the |:SyntasticToggleMode| command can be used to switch between
-active and passive modes.
-
-                                                          *'b:syntastic_mode'*
-Default: unset
-Only the local form |'b:syntastic_mode'| is used. When set to either "active"
-or "passive", it takes precedence over |'syntastic_mode_map'| when deciding
-whether the corresponding buffer should be checked automatically.
-
-                                                  *'syntastic_quiet_messages'*
-Default: {}
-Use this option to filter out some of the messages produced by checkers.  The
-option should be set to something like: >
-    let g:syntastic_quiet_messages = {
-        \ "!level":  "errors",
-        \ "type":    "style",
-        \ "regex":   '\m\[C03\d\d\]',
-        \ "file:p":  ['\m^/usr/include/', '\m\c\.h$'] }
-<
-Each element turns off messages matching the patterns specified by the
-corresponding value. Values are lists, but if a list consist of a single
-element you may omit the brackets (e.g. you may write "style" instead of
-["style"]). Elements with values [] or '' are ignored (this is useful for
-overriding filters, cf. |filter-overrides|).
-
-    "level" - takes one of two values, "warnings" or "errors"
-    "type"  - can be either "syntax" or "style"
-    "regex" - is matched against the messages' text as a case insensitive
-              |regular-expression|
-    "file"  - is matched against the filenames the messages refer to, as a
-              case sensitive |regular-expression|.
-
-If a key is prefixed by an exclamation mark "!", the corresponding filter is
-negated (i.e. the above example silences all messages that are NOT errors).
-
-The "file" key may be followed by one or more filename modifiers (see
-|filename-modifiers|). The modifiers are applied to the filenames the messages
-refer to before matching against the value (i.e. in the above example the full
-path of the issues are matched against '\m^/usr/include/' and '\m\c\.h$').
-
-If |'syntastic_id_checkers'| is set, filters are applied before error messages
-are labeled with the names of the checkers that created them.
-
-There are also checker-specific variants of this option, providing finer
-control. They are named |'syntastic_<filetype>_<checker>_quiet_messages'|.
-
-For a particular checker, if both a |'syntastic_quiet_messages'| filter and
-a checker-specific filter are present, they are both applied (to the list of
-errors produced by the said checker). In case of conflicting values for the
-same keys, the values of the checker-specific filters take precedence.
-
-                                                            *filter-overrides*
-Since filter elements with values [] or '' are ignored, you can disable global
-filters for particular checkers, by setting the values of the corresponding
-elements in |'syntastic_<filetype>_<checker>_quiet_messages'| to [] or ''. For
-example, the following setting will silence all warnings, except for the
-ones produced by "pylint": >
-    let g:syntastic_quiet_messages = { "level": "warnings" }
-    let g:syntastic_python_pylint_quiet_messages = { "level" : [] }
-<
-                                                      *'syntastic_stl_format'*
-Default: [Syntax: line:%F (%t)]
-Use this option to control what the syntastic statusline text contains. Several
-magic flags are available to insert information:
-    %e - number of errors
-    %w - number of warnings
-    %t - total number of warnings and errors
-    %fe - line number of first error
-    %fw - line number of first warning
-    %F - line number of first warning or error
-
-Several additional flags are available to hide text under certain conditions:
-    %E{...} - hide the text in the brackets unless there are errors
-    %W{...} - hide the text in the brackets unless there are warnings
-    %B{...} - hide the text in the brackets unless there are both warnings AND
-              errors
-These flags can't be nested.
-
-Example: >
-    let g:syntastic_stl_format = '[%E{Err: %fe #%e}%B{, }%W{Warn: %fw #%w}]'
-<
-If this format is used and the current buffer has 5 errors and 1 warning
-starting on lines 20 and 10 respectively then this would appear on the
-statusline: >
-    [Err: 20 #5, Warn: 10 #1]
-<
-If the buffer had 2 warnings, starting on line 5 then this would appear: >
-    [Warn: 5 #2]
-<
-                                                   *'b:syntastic_skip_checks'*
-Default: unset
-Only the local form |'b:syntastic_skip_checks'| is used. When set to a true
-value, no checks are run against the corresponding buffer. Example: >
-    let b:syntastic_skip_checks = 1
-<
-                                                    *'syntastic_full_redraws'*
-Default: 0 in GUI Vim and MacVim, 1 otherwise
-Controls whether syntastic calls |:redraw| or |:redraw!| for screen redraws.
-Changing it can in principle make screen redraws smoother, but it can also
-cause screen to flicker, or cause ghost characters. Leaving it to the default
-should be safe.
-
-                                                     *'syntastic_exit_checks'*
-Default: 0 when running under "cmd.exe" on Windows, 1 otherwise
-Syntastic attempts to catch abnormal termination conditions from checkers by
-looking at their exit codes. The "cmd.exe" shell on Windows make these checks
-meaningless, by returning 1 to Vim when the checkers exit with non-zero codes.
-The above variable can be used to disable exit code checks in syntastic.
-
-                                                           *'syntastic_shell'*
-Default: Vim's 'shell'
-
-This is the (full path to) the shell syntastic will use to run the checkers.
-On UNIX and Mac OS-X this shell must accept Bourne-compatible syntax for
-file "stdout" and "stderr" redirections ">file" and "2>file".  Examples of
-compatible shells are "zsh", "bash", "ksh", and of course the original Bourne
-"sh".
-
-This shell is independent of Vim's 'shell', and it isn't used for interactive
-operations.  It must take care to initialize all environment variables needed
-by the checkers you're using.  Example: >
-    let g:syntastic_shell = "/bin/sh"
-<
-                                                           *'syntastic_debug'*
-Default: 0
-Set this to the sum of one or more of the following flags to enable
-debugging:
-
-     1 - trace general workflow
-     2 - dump location lists
-     4 - trace notifiers
-     8 - trace autocommands
-    16 - dump options
-    32 - trace running of specific checkers
-
-Example: >
-    let g:syntastic_debug = 1
-<
-Syntastic will then add debugging messages to Vim's |message-history|. You can
-examine these messages with |:mes|.
-
-                                                      *'syntastic_debug_file'*
-Default: unset
-When set, debugging messages are written to the file named by its value, in
-addition to being added to Vim's |message-history|: >
-    let g:syntastic_debug_file = '~/syntastic.log'
-<
-                                                 *'syntastic_extra_filetypes'*
-Default: []
-List of filetypes handled by checkers external to syntastic.  If you have a Vim
-plugin that adds a checker for syntastic, and if the said checker deals with a
-filetype that is unknown to syntastic, you might consider adding that filetype
-to this list: >
-    let g:syntastic_extra_filetypes = [ "make", "gitcommit" ]
-<
-This will allow |:SyntasticInfo| to do proper tab completion for the new
-filetypes.
-
-==============================================================================
-5. Checker Options                                 *syntastic-checker-options*
-
-------------------------------------------------------------------------------
-5.1 Choosing which checkers to use               *syntastic-filetype-checkers*
-
-                                           *'g:syntastic_<filetype>_checkers'*
-You can tell syntastic which checkers to run for a given filetype by setting a
-variable 'g:syntastic_<filetype>_checkers' to a list of checkers, e.g. >
-    let g:syntastic_php_checkers = ["php", "phpcs", "phpmd"]
-<
-                                                      *'b:syntastic_checkers'*
-There is also a per-buffer version of this setting, 'b:syntastic_checkers'.
-When set, it takes precedence over |'g:syntastic_<filetype>_checkers'|.  You can
-use this in an autocmd to configure specific checkers for particular paths: >
-    autocmd FileType python if stridx(expand("%:p"), "/some/path/") == 0 |
-        \ let b:syntastic_checkers = ["pylint"] | endif
-<
-If neither |'g:syntastic_<filetype>_checkers'| nor |'b:syntastic_checkers'|
-is set, a default list of checker is used. Beware however that this list
-deliberately kept minimal, for performance reasons.
-
-Take a look at the wiki to find out what checkers and filetypes are supported
-by syntastic:
-
-    https://github.com/scrooloose/syntastic/wiki/Syntax-Checkers
-
-Use |:SyntasticInfo| to see which checkers are available for a given filetype.
-
-------------------------------------------------------------------------------
-5.2 Choosing the executable                            *syntastic-config-exec*
-
-                                       *'syntastic_<filetype>_<checker>_exec'*
-The executable run by a checker is normally defined automatically, when the
-checker is registered. You can however override it, by setting the variable
-'g:syntastic_<filetype>_<checker>_exec': >
-    let g:syntastic_ruby_mri_exec = '~/bin/ruby2'
-<
-This variable has a local version, 'b:syntastic_<filetype>_<checker>_exec',
-which takes precedence over the global one in the corresponding buffer.
-
-                                                *'b:syntastic_<checker>_exec'*
-And there is also a local variable named 'b:syntastic_<checker>_exec', which
-takes precedence over both 'b:syntastic_<filetype>_<checker>_exec' and
-'g:syntastic_<filetype>_<checker>_exec' in the buffers where it is defined.
-
-------------------------------------------------------------------------------
-5.3 Configuring specific checkers                   *syntastic-config-makeprg*
-
-Most checkers use the 'makeprgBuild()' function and provide many options by
-default - in fact you can customise every part of the command that gets called.
-
-                                   *'syntastic_<filetype>_<checker>_<option>'*
-Checkers that use 'makeprgBuild()' construct a 'makeprg' like this: >
-    let makeprg = self.makeprgBuild({
-                \ "exe": self.getExec(),
-                \ "args": "-a -b -c",
-                \ "post_args": "--more --args",
-                \ "tail": "2>/dev/null" })
-<
-The result is a 'makeprg' of the form: >
-    <exe> <args> <fname> <post_args> <tail>
-<
-All arguments above are optional, and can be overridden by setting global
-variables 'g:syntastic_<filetype>_<checker-name>_<option-name>' - even
-parameters not specified in the call to makeprgBuild(). These variables also
-have local versions 'b:syntastic_<filetype>_<checker-name>_<option-name>',
-which take precedence over the global ones in the corresponding buffers.
-
-If one of these variables has a non-empty default and you want it to be empty,
-you can set it to an empty string, e.g.: >
-    let g:syntastic_javascript_jslint_args = ""
-<
-                                        *'syntastic_<filetype>_<checker>_exe'*
-The 'exe' is normally the same as the 'exec' attribute described above, in
-which case it may be omitted. However, you can use it to add environment
-variables, or to change the way the checker is run. For example this setup
-allows you to run PC-Lint under Wine emulation on Linux: >
-    let  g:syntastic_c_pc_lint_exec = "wine"
-    let  g:syntastic_c_pc_lint_exe = "wine c:/path/to/lint-nt.exe"
-<
-To override the args and the tail: >
-    let g:syntastic_c_pc_lint_args = "-w5 -Iz:/usr/include/linux"
-    let g:syntastic_c_pc_lint_tail = "2>/dev/null"
-<
-The general form of the override options is: >
-    syntastic_<filetype>_<checker>_<option-name>
-<
-For checkers that do not use the 'makeprgBuild()' function you will have to
-look at the source code of the checker in question. If there are specific
-options that can be set, these are usually documented in the wiki:
-
-    https://github.com/scrooloose/syntastic/wiki/Syntax-Checkers
-
-                             *'syntastic_<filetype>_<checker>_quiet_messages'*
-In the same vein, 'g:syntastic_<filetype>_<checker-name>_quiet_messages' can
-be used to restrict message filters to messages produced by specific checkers.
-Example: >
-    let g:syntastic_python_pylama_quiet_messages = {
-        \ "type":  "style",
-        \ "regex": '\m\[C03\d\d\]' }
-<
-See |syntastic_quiet_messages| for the syntax.
-
-------------------------------------------------------------------------------
-5.4 Sorting errors                                     *syntastic-config-sort*
-
-                                       *'syntastic_<filetype>_<checker>_sort'*
-Syntastic may decide to group the errors produced by some checkers by file,
-then sort them by line number, then by type, then by column number. If you'd
-prefer to see the errors in the order in which they are output by the external
-checker you can set the variable |'g:syntastic_<filetype>_<checker>_sort'| to 0.
-
-Alternatively, if syntastic doesn't reorder the errors produced by a checker
-but you'd like it to sort them, you can set the same variable to 1.
-
-There is also a local version |'b:syntastic_<filetype>_<checker>_sort'| of
-this variable, that takes precedence over it in the buffers where it is
-defined.
-
-For aggregated lists (see |syntastic-aggregating-errors|) these variables are
-ignored if |syntastic_sort_aggregated_errors| is set (which is the default).
-
-==============================================================================
-6. Notes                                                     *syntastic-notes*
-
-------------------------------------------------------------------------------
-6.1. Handling of composite filetypes                     *syntastic-composite*
-
-Some Vim plugins use composite filetypes, such as "django.python" or
-"handlebars.html". Normally, syntastic deals with this situation by splitting
-the filetype in its simple components, and calling all checkers that apply.
-If this behaviour is not desirable, you can disable it by mapping the
-composite filetypes to a simple ones using |syntastic_filetype_map|, e.g.: >
-    let g:syntastic_filetype_map = { "handlebars.html": "handlebars" }
-<
-------------------------------------------------------------------------------
-6.2 Editing files over network                               *syntastic-netrw*
-
-The standard plugin |netrw| allows Vim to transparently edit files over
-network and inside archives.  Currently syntastic doesn't support this mode
-of operation.  It can only check files that can be accessed directly by local
-checkers, without any translation or conversion.
-
-------------------------------------------------------------------------------
-6.3 The 'shellslash' option                             *syntastic-shellslash*
-
-The 'shellslash' option is relevant only on Windows systems.  This option
-determines (among other things) the rules for quoting command lines, and there
-is no easy way for syntastic to make sure its state is appropriate for your
-shell.  It should be turned off if your 'shell' (or |g:syntastic_shell|) is
-"cmd.exe", and on for shells that expect an UNIX-like syntax, such as Cygwin's
-"sh".  Most checkers will stop working if 'shellslash' is set to the wrong
-value.
-
-==============================================================================
-7. Compatibility with other software                 *syntastic-compatibility*
-
-------------------------------------------------------------------------------
-7.1 The csh and tcsh shells                                    *syntastic-csh*
-
-The "csh" and "tcsh" shells are mostly compatible with syntastic.  However,
-some checkers assume Bourne shell syntax for redirecting "stderr".  For this
-reason, you should point |g:syntastic_shell| to a Bourne-compatible shell,
-such as "zsh", "bash", "ksh", or even the original Bourne "sh": >
-    let g:syntastic_shell = "/bin/sh"
-<
-------------------------------------------------------------------------------
-7.2. Eclim                                                   *syntastic-eclim*
-
-Syntastic can be used together with "Eclim" (see http://eclim.org/). However,
-by default Eclim disables syntastic's checks for the filetypes it supports, in
-order to run its own validation. If you'd prefer to use Eclim but still run
-syntastic's checks, set |g:EclimFileTypeValidate| to 0: >
-    let g:EclimFileTypeValidate = 0
-<
-It is also possible to re-enable syntastic checks only for some filetypes, and
-run Eclim's validation for others. Please consult Eclim's documentation for
-details.
-
-------------------------------------------------------------------------------
-7.3 The fish shell                                            *syntastic-fish*
-
-At the time of this writing the "fish" shell (see http://fishshell.com/)
-doesn't support the standard UNIX syntax for file redirections, and thus it
-can't be used together with syntastic. You can however set |g:syntastic_shell|
-to a more traditional shell, such as "zsh", "bash", "ksh", or even the
-original Bourne "sh": >
-    let g:syntastic_shell = "/bin/sh"
-<
-------------------------------------------------------------------------------
-7.4. The fizsh shell                                         *syntastic-fizsh*
-
-Using syntastic with the "fizsh" shell (see https://github.com/zsh-users/fizsh)
-is possible, but potentially problematic. In order to do it you'll need to set
-'shellredir' like this: >
-    set shellredir=>%s\ 2>&1
-<
-Please keep in mind however that Vim can't take advantage of any of the
-interactive features of "fizsh". Using a more traditional shell such as "zsh",
-"bash", "ksh", or the original Bourne "sh" might be a better choice: >
-    let g:syntastic_shell = "/bin/sh"
-<
-------------------------------------------------------------------------------
-7.5. powerline                                           *syntastic-powerline*
-
-The "powerline" Vim plugin (https://github.com/powerline/powerline) comes
-packaged with a syntastic segment. To customize this segment create a file
-~/.config/powerline/themes/vim/default.json, with a content like this: >
-    {
-        "segment_data" : {
-            "powerline.segments.vim.plugin.syntastic.syntastic" : {
-                "args" : {
-                    "err_format" : "Err: {first_line} #{num} ",
-                    "warn_format" : "Warn: {first_line} #{num} "
-                }
-            }
-        }
-    }
-<
-------------------------------------------------------------------------------
-7.6. The PowerShell shell                               *syntastic-powershell*
-
-At the time of this writing, syntastic is not compatible with using "Windows
-PowerShell" (http://technet.microsoft.com/en-us/library/bb978526.aspx) as Vim's
-'shell'.  You may still run Vim from 'PowerShell', but you do have to point
-Vim's 'shell' to a more traditional program, such as "cmd.exe": >
-    set shell=cmd.exe
-<
-------------------------------------------------------------------------------
-7.7 python-mode                                             *syntastic-pymode*
-
-Syntastic can be used along with the "python-mode" Vim plugin (see
-https://github.com/klen/python-mode). However, they both run syntax checks by
-default when you save buffers to disk, and this is probably not what you want.
-To avoid both plugins opening error windows, you can either set passive mode
-for python in syntastic (see |syntastic_mode_map|), or disable lint checks in
-"python-mode", by setting |pymode_lint_write| to 0. E.g.: >
-    let g:pymode_lint_write = 0
-<
-------------------------------------------------------------------------------
-7.8. vim-auto-save                                   *syntastic-vim-auto-save*
-
-Syntastic can be used together with the "vim-auto-save" Vim plugin (see
-https://github.com/907th/vim-auto-save).  However, syntastic checks in active
-mode only work with "vim-auto-save" version 0.1.7 or later.
-
-------------------------------------------------------------------------------
-7.9. vim-go                                                 *syntastic-vim-go*
-
-The "vim-go" Vim plugin (https://github.com/fatih/vim-go) uses |quickfix|
-lists, and thus doesn't conflict with syntastic (which uses |location-list|
-lists).  However, both "vim-go" and syntastic run syntax checks by default
-when you save buffers to disk, and this can have confusing results.  To
-avoid both plugins opening error windows, you can either set passive
-mode for go in syntastic (see |syntastic_mode_map|), or prevent "vim-go"
-from showing a quickfix window when |g:go_fmt_command| fails, by setting
-|g:go_fmt_fail_silently| to 1.  E.g.: >
-    let g:go_fmt_fail_silently = 1
-<
-------------------------------------------------------------------------------
-7.10. vim-virtualenv                                *syntastic-vim-virtualenv*
-
-At the time of this writing, syntastic can't run checkers installed
-in Python virtual environments activated by "vim-virtualenv" (see
-https://github.com/jmcantrell/vim-virtualenv).  This is a limitation of
-"vim-virtualenv".
-
-------------------------------------------------------------------------------
-7.11 YouCompleteMe                                             *syntastic-ycm*
-
-Syntastic can be used together with the "YouCompleteMe" Vim plugin (see
-http://valloric.github.io/YouCompleteMe/).  However, by default "YouCompleteMe"
-disables syntastic's checkers for the "c", "cpp", "objc", and "objcpp"
-filetypes, in order to allow its own checkers to run.  If you want to use YCM's
-identifier completer but still run syntastic's checkers for those filetypes you
-have to set |ycm_show_diagnostics_ui| to 0. E.g.: >
-    let g:ycm_show_diagnostics_ui = 0
-<
-==============================================================================
-8. About                                                     *syntastic-about*
-
-The core maintainers of syntastic are:
-    Martin Grenfell (GitHub: scrooloose)
-    Gregor Uhlenheuer (GitHub: kongo2002)
-    LCD 047 (GitHub: lcd047)
-
-Find the latest version of syntastic at:
-
-    http://github.com/scrooloose/syntastic
-
-==============================================================================
-9. License                                                 *syntastic-license*
-
-Syntastic is released under the WTFPL.
-See http://sam.zoy.org/wtfpl/COPYING.
-
- vim:tw=78:sw=4:ft=help:norl:

+ 0 - 22
vim/initialize.py

@@ -1,22 +0,0 @@
-''' ------------------------------------------------------------------------
-Python initialization
----------------------------------------------------------------------------
-here we initialize the jedi stuff '''
-
-import vim
-
-# update the system path, to include the jedi path
-import sys
-import os
-
-# vim.command('echom expand("<sfile>:p:h:h")') # broken, <sfile> inside function
-# sys.path.insert(0, os.path.join(vim.eval('expand("<sfile>:p:h:h")'), 'jedi'))
-sys.path.insert(0, os.path.join(vim.eval('expand(s:script_path)'), 'jedi'))
-
-# to display errors correctly
-import traceback
-
-# update the sys path to include the jedi_vim script
-sys.path.insert(0, vim.eval('expand(s:script_path)'))
-import jedi_vim
-sys.path.pop(1)

+ 0 - 3126
vim/plugin/fugitive.vim

@@ -1,3126 +0,0 @@
-" fugitive.vim - A Git wrapper so awesome, it should be illegal
-" Maintainer:   Tim Pope <http://tpo.pe/>
-" Version:      2.2
-" GetLatestVimScripts: 2975 1 :AutoInstall: fugitive.vim
-
-if exists('g:loaded_fugitive') || &cp
-  finish
-endif
-let g:loaded_fugitive = 1
-
-if !exists('g:fugitive_git_executable')
-  let g:fugitive_git_executable = 'git'
-endif
-
-" Section: Utility
-
-function! s:function(name) abort
-  return function(substitute(a:name,'^s:',matchstr(expand('<sfile>'), '<SNR>\d\+_'),''))
-endfunction
-
-function! s:sub(str,pat,rep) abort
-  return substitute(a:str,'\v\C'.a:pat,a:rep,'')
-endfunction
-
-function! s:gsub(str,pat,rep) abort
-  return substitute(a:str,'\v\C'.a:pat,a:rep,'g')
-endfunction
-
-function! s:winshell() abort
-  return &shell =~? 'cmd' || exists('+shellslash') && !&shellslash
-endfunction
-
-function! s:shellesc(arg) abort
-  if a:arg =~ '^[A-Za-z0-9_/.-]\+$'
-    return a:arg
-  elseif s:winshell()
-    return '"'.s:gsub(s:gsub(a:arg, '"', '""'), '\%', '"%"').'"'
-  else
-    return shellescape(a:arg)
-  endif
-endfunction
-
-function! s:fnameescape(file) abort
-  if exists('*fnameescape')
-    return fnameescape(a:file)
-  else
-    return escape(a:file," \t\n*?[{`$\\%#'\"|!<")
-  endif
-endfunction
-
-function! s:throw(string) abort
-  let v:errmsg = 'fugitive: '.a:string
-  throw v:errmsg
-endfunction
-
-function! s:warn(str) abort
-  echohl WarningMsg
-  echomsg a:str
-  echohl None
-  let v:warningmsg = a:str
-endfunction
-
-function! s:shellslash(path) abort
-  if s:winshell()
-    return s:gsub(a:path,'\\','/')
-  else
-    return a:path
-  endif
-endfunction
-
-let s:executables = {}
-
-function! s:executable(binary) abort
-  if !has_key(s:executables, a:binary)
-    let s:executables[a:binary] = executable(a:binary)
-  endif
-  return s:executables[a:binary]
-endfunction
-
-let s:git_versions = {}
-
-function! s:git_command() abort
-  return get(g:, 'fugitive_git_command', g:fugitive_git_executable)
-endfunction
-
-function! fugitive#git_version(...) abort
-  if !has_key(s:git_versions, g:fugitive_git_executable)
-    let s:git_versions[g:fugitive_git_executable] = matchstr(system(g:fugitive_git_executable.' --version'), "\\S\\+\n")
-  endif
-  return s:git_versions[g:fugitive_git_executable]
-endfunction
-
-function! s:recall() abort
-  let rev = s:sub(s:buffer().rev(), '^/', '')
-  if rev ==# ':'
-    return matchstr(getline('.'),'^#\t\%([[:alpha:] ]\+: *\)\=\zs.\{-\}\ze\%( ([^()[:digit:]]\+)\)\=$\|^\d\{6} \x\{40\} \d\t\zs.*')
-  elseif s:buffer().type('tree')
-    let file = matchstr(getline('.'), '\t\zs.*')
-    if empty(file) && line('.') > 2
-      let file = s:sub(getline('.'), '/$', '')
-    endif
-    if !empty(file) && rev !~# ':$'
-      return rev . '/' . file
-    else
-      return rev . file
-    endif
-  endif
-  return rev
-endfunction
-
-function! s:add_methods(namespace, method_names) abort
-  for name in a:method_names
-    let s:{a:namespace}_prototype[name] = s:function('s:'.a:namespace.'_'.name)
-  endfor
-endfunction
-
-let s:commands = []
-function! s:command(definition) abort
-  let s:commands += [a:definition]
-endfunction
-
-function! s:define_commands() abort
-  for command in s:commands
-    exe 'command! -buffer '.command
-  endfor
-endfunction
-
-let s:abstract_prototype = {}
-
-" Section: Initialization
-
-function! fugitive#is_git_dir(path) abort
-  let path = s:sub(a:path, '[\/]$', '') . '/'
-  return getfsize(path.'HEAD') > 10 && (
-        \ isdirectory(path.'objects') && isdirectory(path.'refs') ||
-        \ getftype(path.'commondir') ==# 'file')
-endfunction
-
-function! fugitive#extract_git_dir(path) abort
-  if s:shellslash(a:path) =~# '^fugitive://.*//'
-    return matchstr(s:shellslash(a:path), '\C^fugitive://\zs.\{-\}\ze//')
-  endif
-  if isdirectory(a:path)
-    let path = fnamemodify(a:path, ':p:s?[\/]$??')
-  else
-    let path = fnamemodify(a:path, ':p:h:s?[\/]$??')
-  endif
-  let root = s:shellslash(resolve(path))
-  let previous = ""
-  while root !=# previous
-    if root =~# '\v^//%([^/]+/?)?$'
-      " This is for accessing network shares from Cygwin Vim. There won't be
-      " any git directory called //.git or //serverName/.git so let's avoid
-      " checking for them since such checks are extremely slow.
-      break
-    endif
-    if index(split($GIT_CEILING_DIRECTORIES, ':'), root) >= 0
-      break
-    endif
-    if root ==# $GIT_WORK_TREE && fugitive#is_git_dir($GIT_DIR)
-      return simplify(fnamemodify(expand($GIT_DIR), ':p:s?[\/]$??'))
-    endif
-    if fugitive#is_git_dir($GIT_DIR)
-      " Ensure that we've cached the worktree
-      call s:configured_tree(simplify(fnamemodify(expand($GIT_DIR), ':p:s?[\/]$??')))
-      if has_key(s:dir_for_worktree, root)
-        return s:dir_for_worktree[root]
-      endif
-    endif
-    let dir = s:sub(root, '[\/]$', '') . '/.git'
-    let type = getftype(dir)
-    if type ==# 'dir' && fugitive#is_git_dir(dir)
-      return dir
-    elseif type ==# 'link' && fugitive#is_git_dir(dir)
-      return resolve(dir)
-    elseif type !=# '' && filereadable(dir)
-      let line = get(readfile(dir, '', 1), 0, '')
-      if line =~# '^gitdir: \.' && fugitive#is_git_dir(root.'/'.line[8:-1])
-        return simplify(root.'/'.line[8:-1])
-      elseif line =~# '^gitdir: ' && fugitive#is_git_dir(line[8:-1])
-        return line[8:-1]
-      endif
-    elseif fugitive#is_git_dir(root)
-      return root
-    endif
-    let previous = root
-    let root = fnamemodify(root, ':h')
-  endwhile
-  return ''
-endfunction
-
-function! fugitive#detect(path) abort
-  if exists('b:git_dir') && (b:git_dir ==# '' || b:git_dir =~# '/$')
-    unlet b:git_dir
-  endif
-  if !exists('b:git_dir')
-    let dir = fugitive#extract_git_dir(a:path)
-    if dir !=# ''
-      let b:git_dir = dir
-      if empty(fugitive#buffer().path())
-        silent! exe haslocaldir() ? 'lcd .' : 'cd .'
-      endif
-    endif
-  endif
-  if exists('b:git_dir')
-    if exists('#User#FugitiveBoot')
-      try
-        let [save_mls, &modelines] = [&mls, 0]
-        doautocmd User FugitiveBoot
-      finally
-        let &mls = save_mls
-      endtry
-    endif
-    if !exists('g:fugitive_no_maps')
-      cnoremap <buffer> <expr> <C-R><C-G> fnameescape(<SID>recall())
-      nnoremap <buffer> <silent> y<C-G> :call setreg(v:register, <SID>recall())<CR>
-    endif
-    let buffer = fugitive#buffer()
-    if expand('%:p') =~# '://'
-      call buffer.setvar('&path', s:sub(buffer.getvar('&path'), '^\.%(,|$)', ''))
-    endif
-    if stridx(buffer.getvar('&tags'), escape(b:git_dir, ', ')) == -1
-      if filereadable(b:git_dir.'/tags')
-        call buffer.setvar('&tags', escape(b:git_dir.'/tags', ', ').','.buffer.getvar('&tags'))
-      endif
-      if &filetype !=# '' && filereadable(b:git_dir.'/'.&filetype.'.tags')
-        call buffer.setvar('&tags', escape(b:git_dir.'/'.&filetype.'.tags', ', ').','.buffer.getvar('&tags'))
-      endif
-    endif
-    try
-      let [save_mls, &modelines] = [&mls, 0]
-      call s:define_commands()
-      doautocmd User Fugitive
-    finally
-      let &mls = save_mls
-    endtry
-  endif
-endfunction
-
-augroup fugitive
-  autocmd!
-  autocmd BufNewFile,BufReadPost * call fugitive#detect(expand('%:p'))
-  autocmd FileType           netrw call fugitive#detect(expand('%:p'))
-  autocmd User NERDTreeInit,NERDTreeNewRoot call fugitive#detect(b:NERDTreeRoot.path.str())
-  autocmd VimEnter * if expand('<amatch>')==''|call fugitive#detect(getcwd())|endif
-  autocmd CmdWinEnter * call fugitive#detect(expand('#:p'))
-  autocmd BufWinLeave * execute getwinvar(+bufwinnr(+expand('<abuf>')), 'fugitive_leave')
-augroup END
-
-" Section: Repository
-
-let s:repo_prototype = {}
-let s:repos = {}
-let s:worktree_for_dir = {}
-let s:dir_for_worktree = {}
-
-function! s:repo(...) abort
-  let dir = a:0 ? a:1 : (exists('b:git_dir') && b:git_dir !=# '' ? b:git_dir : fugitive#extract_git_dir(expand('%:p')))
-  if dir !=# ''
-    if has_key(s:repos, dir)
-      let repo = get(s:repos, dir)
-    else
-      let repo = {'git_dir': dir}
-      let s:repos[dir] = repo
-    endif
-    return extend(extend(repo, s:repo_prototype, 'keep'), s:abstract_prototype, 'keep')
-  endif
-  call s:throw('not a git repository: '.expand('%:p'))
-endfunction
-
-function! fugitive#repo(...) abort
-  return call('s:repo', a:000)
-endfunction
-
-function! s:repo_dir(...) dict abort
-  return join([self.git_dir]+a:000,'/')
-endfunction
-
-function! s:configured_tree(git_dir) abort
-  if !has_key(s:worktree_for_dir, a:git_dir)
-    let s:worktree_for_dir[a:git_dir] = ''
-    let config_file = a:git_dir . '/config'
-    if filereadable(config_file)
-      let config = readfile(config_file,'',10)
-      call filter(config,'v:val =~# "^\\s*worktree *="')
-      if len(config) == 1
-        let worktree = matchstr(config[0], '= *\zs.*')
-      endif
-    elseif filereadable(a:git_dir . '/gitdir')
-      let worktree = fnamemodify(readfile(a:git_dir . '/gitdir')[0], ':h')
-      if worktree ==# '.'
-        unlet! worktree
-      endif
-    endif
-    if exists('worktree')
-      let s:worktree_for_dir[a:git_dir] = worktree
-      let s:dir_for_worktree[s:worktree_for_dir[a:git_dir]] = a:git_dir
-    endif
-  endif
-  if s:worktree_for_dir[a:git_dir] =~# '^\.'
-    return simplify(a:git_dir . '/' . s:worktree_for_dir[a:git_dir])
-  else
-    return s:worktree_for_dir[a:git_dir]
-  endif
-endfunction
-
-function! s:repo_tree(...) dict abort
-  if self.dir() =~# '/\.git$'
-    let dir = self.dir()[0:-6]
-    if dir !~# '/'
-      let dir .= '/'
-    endif
-  else
-    let dir = s:configured_tree(self.git_dir)
-  endif
-  if dir ==# ''
-    call s:throw('no work tree')
-  else
-    return join([dir]+a:000,'/')
-  endif
-endfunction
-
-function! s:repo_bare() dict abort
-  if self.dir() =~# '/\.git$'
-    return 0
-  else
-    return s:configured_tree(self.git_dir) ==# ''
-  endif
-endfunction
-
-function! s:repo_translate(spec) dict abort
-  let refs = self.dir('refs/')
-  if filereadable(self.dir('commondir'))
-    let refs = simplify(self.dir(get(readfile(self.dir('commondir'), 1), 0, ''))) . '/refs/'
-  endif
-  if a:spec ==# '.' || a:spec ==# '/.'
-    return self.bare() ? self.dir() : self.tree()
-  elseif a:spec =~# '^/\=\.git$' && self.bare()
-    return self.dir()
-  elseif a:spec =~# '^/\=\.git/'
-    return self.dir(s:sub(a:spec, '^/=\.git/', ''))
-  elseif a:spec =~# '^/'
-    return self.tree().a:spec
-  elseif a:spec =~# '^:[0-3]:'
-    return 'fugitive://'.self.dir().'//'.a:spec[1].'/'.a:spec[3:-1]
-  elseif a:spec ==# ':'
-    if $GIT_INDEX_FILE =~# '/[^/]*index[^/]*\.lock$' && fnamemodify($GIT_INDEX_FILE,':p')[0:strlen(self.dir())] ==# self.dir('') && filereadable($GIT_INDEX_FILE)
-      return fnamemodify($GIT_INDEX_FILE,':p')
-    else
-      return self.dir('index')
-    endif
-  elseif a:spec =~# '^:/'
-    let ref = self.rev_parse(matchstr(a:spec,'.[^:]*'))
-    return 'fugitive://'.self.dir().'//'.ref
-  elseif a:spec =~# '^:'
-    return 'fugitive://'.self.dir().'//0/'.a:spec[1:-1]
-  elseif a:spec ==# '@'
-    return self.dir('HEAD')
-  elseif a:spec =~# 'HEAD\|^refs/' && a:spec !~ ':' && filereadable(refs . '../' . a:spec)
-    return simplify(refs . '../' . a:spec)
-  elseif filereadable(refs.a:spec)
-    return refs.a:spec
-  elseif filereadable(refs.'tags/'.a:spec)
-    return refs.'tags/'.a:spec
-  elseif filereadable(refs.'heads/'.a:spec)
-    return refs.'heads/'.a:spec
-  elseif filereadable(refs.'remotes/'.a:spec)
-    return refs.'remotes/'.a:spec
-  elseif filereadable(refs.'remotes/'.a:spec.'/HEAD')
-    return refs.'remotes/'.a:spec.'/HEAD'
-  else
-    try
-      let ref = self.rev_parse(matchstr(a:spec,'[^:]*'))
-      let path = s:sub(matchstr(a:spec,':.*'),'^:','/')
-      return 'fugitive://'.self.dir().'//'.ref.path
-    catch /^fugitive:/
-      return self.tree(a:spec)
-    endtry
-  endif
-endfunction
-
-function! s:repo_head(...) dict abort
-    let head = s:repo().head_ref()
-
-    if head =~# '^ref: '
-      let branch = s:sub(head,'^ref: %(refs/%(heads/|remotes/|tags/)=)=','')
-    elseif head =~# '^\x\{40\}$'
-      " truncate hash to a:1 characters if we're in detached head mode
-      let len = a:0 ? a:1 : 0
-      let branch = len ? head[0:len-1] : ''
-    else
-      return ''
-    endif
-
-    return branch
-endfunction
-
-call s:add_methods('repo',['dir','tree','bare','translate','head'])
-
-function! s:repo_git_command(...) dict abort
-  let git = s:git_command() . ' --git-dir='.s:shellesc(self.git_dir)
-  return git.join(map(copy(a:000),'" ".s:shellesc(v:val)'),'')
-endfunction
-
-function! s:repo_git_chomp(...) dict abort
-  let git = g:fugitive_git_executable . ' --git-dir='.s:shellesc(self.git_dir)
-  let output = git.join(map(copy(a:000),'" ".s:shellesc(v:val)'),'')
-  return s:sub(system(output),'\n$','')
-endfunction
-
-function! s:repo_git_chomp_in_tree(...) dict abort
-  let cd = exists('*haslocaldir') && haslocaldir() ? 'lcd' : 'cd'
-  let dir = getcwd()
-  try
-    execute cd s:fnameescape(s:repo().tree())
-    return call(s:repo().git_chomp, a:000, s:repo())
-  finally
-    execute cd s:fnameescape(dir)
-  endtry
-endfunction
-
-function! s:repo_rev_parse(rev) dict abort
-  let hash = self.git_chomp('rev-parse','--verify',a:rev)
-  if hash =~ '\<\x\{40\}$'
-    return matchstr(hash,'\<\x\{40\}$')
-  endif
-  call s:throw('rev-parse '.a:rev.': '.hash)
-endfunction
-
-call s:add_methods('repo',['git_command','git_chomp','git_chomp_in_tree','rev_parse'])
-
-function! s:repo_dirglob(base) dict abort
-  let base = s:sub(a:base,'^/','')
-  let matches = split(glob(self.tree(s:gsub(base,'/','*&').'*/')),"\n")
-  call map(matches,'v:val[ strlen(self.tree())+(a:base !~ "^/") : -1 ]')
-  return matches
-endfunction
-
-function! s:repo_superglob(base) dict abort
-  if a:base =~# '^/' || a:base !~# ':'
-    let results = []
-    if a:base !~# '^/'
-      let heads = ["HEAD","ORIG_HEAD","FETCH_HEAD","MERGE_HEAD"]
-      let heads += sort(split(s:repo().git_chomp("rev-parse","--symbolic","--branches","--tags","--remotes"),"\n"))
-      " Add any stashes.
-      if filereadable(s:repo().dir('refs/stash'))
-        let heads += ["stash"]
-        let heads += sort(split(s:repo().git_chomp("stash","list","--pretty=format:%gd"),"\n"))
-      endif
-      call filter(heads,'v:val[ 0 : strlen(a:base)-1 ] ==# a:base')
-      let results += heads
-    endif
-    if !self.bare()
-      let base = s:sub(a:base,'^/','')
-      let matches = split(glob(self.tree(s:gsub(base,'/','*&').'*')),"\n")
-      call map(matches,'s:shellslash(v:val)')
-      call map(matches,'v:val !~ "/$" && isdirectory(v:val) ? v:val."/" : v:val')
-      call map(matches,'v:val[ strlen(self.tree())+(a:base !~ "^/") : -1 ]')
-      let results += matches
-    endif
-    return results
-
-  elseif a:base =~# '^:'
-    let entries = split(self.git_chomp('ls-files','--stage'),"\n")
-    call map(entries,'s:sub(v:val,".*(\\d)\\t(.*)",":\\1:\\2")')
-    if a:base !~# '^:[0-3]\%(:\|$\)'
-      call filter(entries,'v:val[1] == "0"')
-      call map(entries,'v:val[2:-1]')
-    endif
-    call filter(entries,'v:val[ 0 : strlen(a:base)-1 ] ==# a:base')
-    return entries
-
-  else
-    let tree = matchstr(a:base,'.*[:/]')
-    let entries = split(self.git_chomp('ls-tree',tree),"\n")
-    call map(entries,'s:sub(v:val,"^04.*\\zs$","/")')
-    call map(entries,'tree.s:sub(v:val,".*\t","")')
-    return filter(entries,'v:val[ 0 : strlen(a:base)-1 ] ==# a:base')
-  endif
-endfunction
-
-call s:add_methods('repo',['dirglob','superglob'])
-
-function! s:repo_config(conf) dict abort
-  return matchstr(s:repo().git_chomp('config',a:conf),"[^\r\n]*")
-endfun
-
-function! s:repo_user() dict abort
-  let username = s:repo().config('user.name')
-  let useremail = s:repo().config('user.email')
-  return username.' <'.useremail.'>'
-endfun
-
-function! s:repo_aliases() dict abort
-  if !has_key(self,'_aliases')
-    let self._aliases = {}
-    for line in split(self.git_chomp('config','-z','--get-regexp','^alias[.]'),"\1")
-      let self._aliases[matchstr(line, '\.\zs.\{-}\ze\n')] = matchstr(line, '\n\zs.*')
-    endfor
-  endif
-  return self._aliases
-endfunction
-
-call s:add_methods('repo',['config', 'user', 'aliases'])
-
-function! s:repo_keywordprg() dict abort
-  let args = ' --git-dir='.escape(self.dir(),"\\\"' ")
-  if has('gui_running') && !has('win32')
-    return s:git_command() . ' --no-pager' . args . ' log -1'
-  else
-    return s:git_command() . args . ' show'
-  endif
-endfunction
-
-call s:add_methods('repo',['keywordprg'])
-
-" Section: Buffer
-
-let s:buffer_prototype = {}
-
-function! s:buffer(...) abort
-  let buffer = {'#': bufnr(a:0 ? a:1 : '%')}
-  call extend(extend(buffer,s:buffer_prototype,'keep'),s:abstract_prototype,'keep')
-  if buffer.getvar('git_dir') !=# ''
-    return buffer
-  endif
-  call s:throw('not a git repository: '.expand('%:p'))
-endfunction
-
-function! fugitive#buffer(...) abort
-  return s:buffer(a:0 ? a:1 : '%')
-endfunction
-
-function! s:buffer_getvar(var) dict abort
-  return getbufvar(self['#'],a:var)
-endfunction
-
-function! s:buffer_setvar(var,value) dict abort
-  return setbufvar(self['#'],a:var,a:value)
-endfunction
-
-function! s:buffer_getline(lnum) dict abort
-  return get(getbufline(self['#'], a:lnum), 0, '')
-endfunction
-
-function! s:buffer_repo() dict abort
-  return s:repo(self.getvar('git_dir'))
-endfunction
-
-function! s:buffer_type(...) dict abort
-  if self.getvar('fugitive_type') != ''
-    let type = self.getvar('fugitive_type')
-  elseif fnamemodify(self.spec(),':p') =~# '.\git/refs/\|\.git/\w*HEAD$'
-    let type = 'head'
-  elseif self.getline(1) =~ '^tree \x\{40\}$' && self.getline(2) == ''
-    let type = 'tree'
-  elseif self.getline(1) =~ '^\d\{6\} \w\{4\} \x\{40\}\>\t'
-    let type = 'tree'
-  elseif self.getline(1) =~ '^\d\{6\} \x\{40\}\> \d\t'
-    let type = 'index'
-  elseif isdirectory(self.spec())
-    let type = 'directory'
-  elseif self.spec() == ''
-    let type = 'null'
-  else
-    let type = 'file'
-  endif
-  if a:0
-    return !empty(filter(copy(a:000),'v:val ==# type'))
-  else
-    return type
-  endif
-endfunction
-
-if has('win32')
-
-  function! s:buffer_spec() dict abort
-    let bufname = bufname(self['#'])
-    let retval = ''
-    for i in split(bufname,'[^:]\zs\\')
-      let retval = fnamemodify((retval==''?'':retval.'\').i,':.')
-    endfor
-    return s:shellslash(fnamemodify(retval,':p'))
-  endfunction
-
-else
-
-  function! s:buffer_spec() dict abort
-    let bufname = bufname(self['#'])
-    return s:shellslash(bufname == '' ? '' : fnamemodify(bufname,':p'))
-  endfunction
-
-endif
-
-function! s:buffer_name() dict abort
-  return self.spec()
-endfunction
-
-function! s:buffer_commit() dict abort
-  return matchstr(self.spec(),'^fugitive://.\{-\}//\zs\w*')
-endfunction
-
-function! s:cpath(path) abort
-  if exists('+fileignorecase') && &fileignorecase
-    return tolower(a:path)
-  else
-    return a:path
-  endif
-endfunction
-
-function! s:buffer_path(...) dict abort
-  let rev = matchstr(self.spec(),'^fugitive://.\{-\}//\zs.*')
-  if rev != ''
-    let rev = s:sub(rev,'\w*','')
-  elseif s:cpath(self.spec()[0 : len(self.repo().dir())]) ==#
-        \ s:cpath(self.repo().dir() . '/')
-    let rev = '/.git'.self.spec()[strlen(self.repo().dir()) : -1]
-  elseif !self.repo().bare() &&
-        \ s:cpath(self.spec()[0 : len(self.repo().tree())]) ==#
-        \ s:cpath(self.repo().tree() . '/')
-    let rev = self.spec()[strlen(self.repo().tree()) : -1]
-  endif
-  return s:sub(s:sub(rev,'.\zs/$',''),'^/',a:0 ? a:1 : '')
-endfunction
-
-function! s:buffer_rev() dict abort
-  let rev = matchstr(self.spec(),'^fugitive://.\{-\}//\zs.*')
-  if rev =~ '^\x/'
-    return ':'.rev[0].':'.rev[2:-1]
-  elseif rev =~ '.'
-    return s:sub(rev,'/',':')
-  elseif self.spec() =~ '\.git/index$'
-    return ':'
-  elseif self.spec() =~ '\.git/refs/\|\.git/.*HEAD$'
-    return self.spec()[strlen(self.repo().dir())+1 : -1]
-  else
-    return self.path('/')
-  endif
-endfunction
-
-function! s:buffer_sha1() dict abort
-  if self.spec() =~ '^fugitive://' || self.spec() =~ '\.git/refs/\|\.git/.*HEAD$'
-    return self.repo().rev_parse(self.rev())
-  else
-    return ''
-  endif
-endfunction
-
-function! s:buffer_expand(rev) dict abort
-  if a:rev =~# '^:[0-3]$'
-    let file = a:rev.self.path(':')
-  elseif a:rev =~# '^[-:]/$'
-    let file = '/'.self.path()
-  elseif a:rev =~# '^-'
-    let file = 'HEAD^{}'.a:rev[1:-1].self.path(':')
-  elseif a:rev =~# '^@{'
-    let file = 'HEAD'.a:rev.self.path(':')
-  elseif a:rev =~# '^[~^]'
-    let commit = s:sub(self.commit(),'^\d=$','HEAD')
-    let file = commit.a:rev.self.path(':')
-  else
-    let file = a:rev
-  endif
-  return s:sub(s:sub(file,'\%$',self.path()),'\.\@<=/$','')
-endfunction
-
-function! s:buffer_containing_commit() dict abort
-  if self.commit() =~# '^\d$'
-    return ':'
-  elseif self.commit() =~# '.'
-    return self.commit()
-  else
-    return 'HEAD'
-  endif
-endfunction
-
-function! s:buffer_up(...) dict abort
-  let rev = self.rev()
-  let c = a:0 ? a:1 : 1
-  while c
-    if rev =~# '^[/:]$'
-      let rev = 'HEAD'
-    elseif rev =~# '^:'
-      let rev = ':'
-    elseif rev =~# '^refs/[^^~:]*$\|^[^^~:]*HEAD$'
-      let rev .= '^{}'
-    elseif rev =~# '^/\|:.*/'
-      let rev = s:sub(rev, '.*\zs/.*', '')
-    elseif rev =~# ':.'
-      let rev = matchstr(rev, '^[^:]*:')
-    elseif rev =~# ':$'
-      let rev = rev[0:-2]
-    else
-      return rev.'~'.c
-    endif
-    let c -= 1
-  endwhile
-  return rev
-endfunction
-
-call s:add_methods('buffer',['getvar','setvar','getline','repo','type','spec','name','commit','path','rev','sha1','expand','containing_commit','up'])
-
-" Section: Git
-
-call s:command("-bang -nargs=? -complete=customlist,s:GitComplete Git :execute s:Git(<bang>0,<q-args>)")
-
-function! s:ExecuteInTree(cmd) abort
-  let cd = exists('*haslocaldir') && haslocaldir() ? 'lcd' : 'cd'
-  let dir = getcwd()
-  try
-    execute cd s:fnameescape(s:repo().tree())
-    execute a:cmd
-  finally
-    execute cd s:fnameescape(dir)
-  endtry
-endfunction
-
-function! s:Git(bang, args) abort
-  if a:bang
-    return s:Edit('edit', 1, a:args)
-  endif
-  let git = s:git_command()
-  if has('gui_running') && !has('win32')
-    let git .= ' --no-pager'
-  endif
-  let args = matchstr(a:args,'\v\C.{-}%($|\\@<!%(\\\\)*\|)@=')
-  if exists(':terminal') && has('nvim')
-    let dir = s:repo().tree()
-    if expand('%') != ''
-      -tabedit %
-    else
-      -tabnew
-    endif
-    execute 'lcd' fnameescape(dir)
-    execute 'terminal' git args
-  else
-    call s:ExecuteInTree('!'.git.' '.args)
-    if has('win32')
-      call fugitive#reload_status()
-    endif
-  endif
-  return matchstr(a:args, '\v\C\\@<!%(\\\\)*\|\zs.*')
-endfunction
-
-function! fugitive#git_commands() abort
-  if !exists('s:exec_path')
-    let s:exec_path = s:sub(system(g:fugitive_git_executable.' --exec-path'),'\n$','')
-  endif
-  return map(split(glob(s:exec_path.'/git-*'),"\n"),'s:sub(v:val[strlen(s:exec_path)+5 : -1],"\\.exe$","")')
-endfunction
-
-function! s:GitComplete(A, L, P) abort
-  if strpart(a:L, 0, a:P) !~# ' [[:alnum:]-]\+ '
-    let cmds = fugitive#git_commands()
-    return filter(sort(cmds+keys(s:repo().aliases())), 'strpart(v:val, 0, strlen(a:A)) ==# a:A')
-  else
-    return s:repo().superglob(a:A)
-  endif
-endfunction
-
-" Section: Gcd, Glcd
-
-function! s:DirComplete(A,L,P) abort
-  let matches = s:repo().dirglob(a:A)
-  return matches
-endfunction
-
-call s:command("-bar -bang -nargs=? -complete=customlist,s:DirComplete Gcd  :exe 'cd<bang>'  s:fnameescape(s:repo().bare() ? s:repo().dir(<q-args>) : s:repo().tree(<q-args>))")
-call s:command("-bar -bang -nargs=? -complete=customlist,s:DirComplete Glcd :exe 'lcd<bang>' s:fnameescape(s:repo().bare() ? s:repo().dir(<q-args>) : s:repo().tree(<q-args>))")
-
-" Section: Gstatus
-
-call s:command("-bar Gstatus :execute s:Status()")
-augroup fugitive_status
-  autocmd!
-  if !has('win32')
-    autocmd FocusGained,ShellCmdPost * call fugitive#reload_status()
-    autocmd BufDelete term://* call fugitive#reload_status()
-  endif
-augroup END
-
-function! s:Status() abort
-  try
-    Gpedit :
-    wincmd P
-    setlocal foldmethod=syntax foldlevel=1
-    nnoremap <buffer> <silent> q    :<C-U>bdelete<CR>
-  catch /^fugitive:/
-    return 'echoerr v:errmsg'
-  endtry
-  return ''
-endfunction
-
-function! fugitive#reload_status() abort
-  if exists('s:reloading_status')
-    return
-  endif
-  try
-    let s:reloading_status = 1
-    let mytab = tabpagenr()
-    for tab in [mytab] + range(1,tabpagenr('$'))
-      for winnr in range(1,tabpagewinnr(tab,'$'))
-        if getbufvar(tabpagebuflist(tab)[winnr-1],'fugitive_type') ==# 'index'
-          execute 'tabnext '.tab
-          if winnr != winnr()
-            execute winnr.'wincmd w'
-            let restorewinnr = 1
-          endif
-          try
-            if !&modified
-              call s:BufReadIndex()
-            endif
-          finally
-            if exists('restorewinnr')
-              wincmd p
-            endif
-            execute 'tabnext '.mytab
-          endtry
-        endif
-      endfor
-    endfor
-  finally
-    unlet! s:reloading_status
-  endtry
-endfunction
-
-function! s:stage_info(lnum) abort
-  let filename = matchstr(getline(a:lnum),'^#\t\zs.\{-\}\ze\%( ([^()[:digit:]]\+)\)\=$')
-  let lnum = a:lnum
-  if has('multi_byte_encoding')
-    let colon = '\%(:\|\%uff1a\)'
-  else
-    let colon = ':'
-  endif
-  while lnum && getline(lnum) !~# colon.'$'
-    let lnum -= 1
-  endwhile
-  if !lnum
-    return ['', '']
-  elseif (getline(lnum+1) =~# '^# .*\<git \%(reset\|rm --cached\) ' && getline(lnum+2) ==# '#') || getline(lnum) ==# '# Changes to be committed:'
-    return [matchstr(filename, colon.' *\zs.*'), 'staged']
-  elseif (getline(lnum+1) =~# '^# .*\<git add ' && getline(lnum+2) ==# '#' && getline(lnum+3) !~# colon.'  ') || getline(lnum) ==# '# Untracked files:'
-    return [filename, 'untracked']
-  elseif getline(lnum+2) =~# '^# .*\<git checkout ' || getline(lnum) ==# '# Changes not staged for commit:'
-    return [matchstr(filename, colon.' *\zs.*'), 'unstaged']
-  elseif getline(lnum+2) =~# '^# .*\<git \%(add\|rm\)' || getline(lnum) ==# '# Unmerged paths:'
-    return [matchstr(filename, colon.' *\zs.*'), 'unmerged']
-  else
-    return ['', 'unknown']
-  endif
-endfunction
-
-function! s:StageNext(count) abort
-  for i in range(a:count)
-    call search('^#\t.*','W')
-  endfor
-  return '.'
-endfunction
-
-function! s:StagePrevious(count) abort
-  if line('.') == 1 && exists(':CtrlP') && get(g:, 'ctrl_p_map') =~? '^<c-p>$'
-    return 'CtrlP '.fnameescape(s:repo().tree())
-  else
-    for i in range(a:count)
-      call search('^#\t.*','Wbe')
-    endfor
-    return '.'
-  endif
-endfunction
-
-function! s:StageReloadSeek(target,lnum1,lnum2) abort
-  let jump = a:target
-  let f = matchstr(getline(a:lnum1-1),'^#\t\%([[:alpha:] ]\+: *\|.*\%uff1a *\)\=\zs.*')
-  if f !=# '' | let jump = f | endif
-  let f = matchstr(getline(a:lnum2+1),'^#\t\%([[:alpha:] ]\+: *\|.*\%uff1a *\)\=\zs.*')
-  if f !=# '' | let jump = f | endif
-  silent! edit!
-  1
-  redraw
-  call search('^#\t\%([[:alpha:] ]\+: *\|.*\%uff1a *\)\=\V'.jump.'\%( ([^()[:digit:]]\+)\)\=\$','W')
-endfunction
-
-function! s:StageUndo() abort
-  let [filename, section] = s:stage_info(line('.'))
-  if empty(filename)
-    return ''
-  endif
-  let repo = s:repo()
-  let hash = repo.git_chomp('hash-object', '-w', filename)
-  if !empty(hash)
-    if section ==# 'untracked'
-      call repo.git_chomp_in_tree('clean', '-f', '--', filename)
-    elseif section ==# 'unmerged'
-      call repo.git_chomp_in_tree('rm', '--', filename)
-    elseif section ==# 'unstaged'
-      call repo.git_chomp_in_tree('checkout', '--', filename)
-    else
-      call repo.git_chomp_in_tree('checkout', 'HEAD', '--', filename)
-    endif
-    call s:StageReloadSeek(filename, line('.'), line('.'))
-    let @" = hash
-    return 'checktime|redraw|echomsg ' .
-          \ string('To restore, :Git cat-file blob '.hash[0:6].' > '.filename)
-  endif
-endfunction
-
-function! s:StageDiff(diff) abort
-  let [filename, section] = s:stage_info(line('.'))
-  if filename ==# '' && section ==# 'staged'
-    return 'Git! diff --no-ext-diff --cached'
-  elseif filename ==# ''
-    return 'Git! diff --no-ext-diff'
-  elseif filename =~# ' -> '
-    let [old, new] = split(filename,' -> ')
-    execute 'Gedit '.s:fnameescape(':0:'.new)
-    return a:diff.' HEAD:'.s:fnameescape(old)
-  elseif section ==# 'staged'
-    execute 'Gedit '.s:fnameescape(':0:'.filename)
-    return a:diff.' -'
-  else
-    execute 'Gedit '.s:fnameescape('/'.filename)
-    return a:diff
-  endif
-endfunction
-
-function! s:StageDiffEdit() abort
-  let [filename, section] = s:stage_info(line('.'))
-  let arg = (filename ==# '' ? '.' : filename)
-  if section ==# 'staged'
-    return 'Git! diff --no-ext-diff --cached '.s:shellesc(arg)
-  elseif section ==# 'untracked'
-    let repo = s:repo()
-    call repo.git_chomp_in_tree('add','--intent-to-add',arg)
-    if arg ==# '.'
-      silent! edit!
-      1
-      if !search('^# .*:\n#.*\n# .*"git checkout \|^# Changes not staged for commit:$','W')
-        call search('^# .*:$','W')
-      endif
-    else
-      call s:StageReloadSeek(arg,line('.'),line('.'))
-    endif
-    return ''
-  else
-    return 'Git! diff --no-ext-diff '.s:shellesc(arg)
-  endif
-endfunction
-
-function! s:StageToggle(lnum1,lnum2) abort
-  if a:lnum1 == 1 && a:lnum2 == 1
-    return 'Gedit /.git|call search("^index$", "wc")'
-  endif
-  try
-    let output = ''
-    for lnum in range(a:lnum1,a:lnum2)
-      let [filename, section] = s:stage_info(lnum)
-      let repo = s:repo()
-      if getline('.') =~# '^# .*:$'
-        if section ==# 'staged'
-          call repo.git_chomp_in_tree('reset','-q')
-          silent! edit!
-          1
-          if !search('^# .*:\n# .*"git add .*\n#\n\|^# Untracked files:$','W')
-            call search('^# .*:$','W')
-          endif
-          return ''
-        elseif section ==# 'unstaged'
-          call repo.git_chomp_in_tree('add','-u')
-          silent! edit!
-          1
-          if !search('^# .*:\n# .*"git add .*\n#\n\|^# Untracked files:$','W')
-            call search('^# .*:$','W')
-          endif
-          return ''
-        else
-          call repo.git_chomp_in_tree('add','.')
-          silent! edit!
-          1
-          call search('^# .*:$','W')
-          return ''
-        endif
-      endif
-      if filename ==# ''
-        continue
-      endif
-      execute lnum
-      if section ==# 'staged'
-        if filename =~ ' -> '
-          let files_to_unstage = split(filename,' -> ')
-        else
-          let files_to_unstage = [filename]
-        endif
-        let filename = files_to_unstage[-1]
-        let cmd = ['reset','-q','--'] + files_to_unstage
-      elseif getline(lnum) =~# '^#\tdeleted:'
-        let cmd = ['rm','--',filename]
-      elseif getline(lnum) =~# '^#\tmodified:'
-        let cmd = ['add','--',filename]
-      else
-        let cmd = ['add','-A','--',filename]
-      endif
-      if !exists('first_filename')
-        let first_filename = filename
-      endif
-      let output .= call(repo.git_chomp_in_tree,cmd,s:repo())."\n"
-    endfor
-    if exists('first_filename')
-      call s:StageReloadSeek(first_filename,a:lnum1,a:lnum2)
-    endif
-    echo s:sub(s:gsub(output,'\n+','\n'),'\n$','')
-  catch /^fugitive:/
-    return 'echoerr v:errmsg'
-  endtry
-  return 'checktime'
-endfunction
-
-function! s:StagePatch(lnum1,lnum2) abort
-  let add = []
-  let reset = []
-
-  for lnum in range(a:lnum1,a:lnum2)
-    let [filename, section] = s:stage_info(lnum)
-    if getline('.') =~# '^# .*:$' && section ==# 'staged'
-      return 'Git reset --patch'
-    elseif getline('.') =~# '^# .*:$' && section ==# 'unstaged'
-      return 'Git add --patch'
-    elseif getline('.') =~# '^# .*:$' && section ==# 'untracked'
-      return 'Git add -N .'
-    elseif filename ==# ''
-      continue
-    endif
-    if !exists('first_filename')
-      let first_filename = filename
-    endif
-    execute lnum
-    if filename =~ ' -> '
-      let reset += [split(filename,' -> ')[1]]
-    elseif section ==# 'staged'
-      let reset += [filename]
-    elseif getline(lnum) !~# '^#\tdeleted:'
-      let add += [filename]
-    endif
-  endfor
-  try
-    if !empty(add)
-      execute "Git add --patch -- ".join(map(add,'s:shellesc(v:val)'))
-    endif
-    if !empty(reset)
-      execute "Git reset --patch -- ".join(map(reset,'s:shellesc(v:val)'))
-    endif
-    if exists('first_filename')
-      silent! edit!
-      1
-      redraw
-      call search('^#\t\%([[:alpha:] ]\+: *\)\=\V'.first_filename.'\%( ([^()[:digit:]]\+)\)\=\$','W')
-    endif
-  catch /^fugitive:/
-    return 'echoerr v:errmsg'
-  endtry
-  return 'checktime'
-endfunction
-
-" Section: Gcommit
-
-call s:command("-nargs=? -complete=customlist,s:CommitComplete Gcommit :execute s:Commit(<q-args>)")
-
-function! s:Commit(args, ...) abort
-  let repo = a:0 ? a:1 : s:repo()
-  let cd = exists('*haslocaldir') && haslocaldir() ? 'lcd' : 'cd'
-  let dir = getcwd()
-  let msgfile = repo.dir('COMMIT_EDITMSG')
-  let outfile = tempname()
-  let errorfile = tempname()
-  try
-    try
-      execute cd s:fnameescape(repo.tree())
-      if s:winshell()
-        let command = ''
-        let old_editor = $GIT_EDITOR
-        let $GIT_EDITOR = 'false'
-      else
-        let command = 'env GIT_EDITOR=false '
-      endif
-      let command .= repo.git_command('commit').' '.a:args
-      if &shell =~# 'csh'
-        noautocmd silent execute '!('.command.' > '.outfile.') >& '.errorfile
-      elseif a:args =~# '\%(^\| \)-\%(-interactive\|p\|-patch\)\>'
-        noautocmd execute '!'.command.' 2> '.errorfile
-      else
-        noautocmd silent execute '!'.command.' > '.outfile.' 2> '.errorfile
-      endif
-      let error = v:shell_error
-    finally
-      execute cd s:fnameescape(dir)
-    endtry
-    if !has('gui_running')
-      redraw!
-    endif
-    if !error
-      if filereadable(outfile)
-        for line in readfile(outfile)
-          echo line
-        endfor
-      endif
-      return ''
-    else
-      let errors = readfile(errorfile)
-      let error = get(errors,-2,get(errors,-1,'!'))
-      if error =~# 'false''\=\.$'
-        let args = a:args
-        let args = s:gsub(args,'%(%(^| )-- )@<!%(^| )@<=%(-[esp]|--edit|--interactive|--patch|--signoff)%($| )','')
-        let args = s:gsub(args,'%(%(^| )-- )@<!%(^| )@<=%(-c|--reedit-message|--reuse-message|-F|--file|-m|--message)%(\s+|\=)%(''[^'']*''|"%(\\.|[^"])*"|\\.|\S)*','')
-        let args = s:gsub(args,'%(^| )@<=[%#]%(:\w)*','\=expand(submatch(0))')
-        let args = s:sub(args, '\ze -- |$', ' --no-edit --no-interactive --no-signoff')
-        let args = '-F '.s:shellesc(msgfile).' '.args
-        if args !~# '\%(^\| \)--cleanup\>'
-          let args = '--cleanup=strip '.args
-        endif
-        if bufname('%') == '' && line('$') == 1 && getline(1) == '' && !&mod
-          execute 'keepalt edit '.s:fnameescape(msgfile)
-        elseif a:args =~# '\%(^\| \)-\%(-verbose\|\w*v\)\>'
-          execute 'keepalt -tabedit '.s:fnameescape(msgfile)
-        elseif s:buffer().type() ==# 'index'
-          execute 'keepalt edit '.s:fnameescape(msgfile)
-          execute (search('^#','n')+1).'wincmd+'
-          setlocal nopreviewwindow
-        else
-          execute 'keepalt split '.s:fnameescape(msgfile)
-        endif
-        let b:fugitive_commit_arguments = args
-        setlocal bufhidden=wipe filetype=gitcommit
-        return '1'
-      elseif error ==# '!'
-        return s:Status()
-      else
-        call s:throw(empty(error)?join(errors, ' '):error)
-      endif
-    endif
-  catch /^fugitive:/
-    return 'echoerr v:errmsg'
-  finally
-    if exists('old_editor')
-      let $GIT_EDITOR = old_editor
-    endif
-    call delete(outfile)
-    call delete(errorfile)
-    call fugitive#reload_status()
-  endtry
-endfunction
-
-function! s:CommitComplete(A,L,P) abort
-  if a:A =~ '^-' || type(a:A) == type(0) " a:A is 0 on :Gcommit -<Tab>
-    let args = ['-C', '-F', '-a', '-c', '-e', '-i', '-m', '-n', '-o', '-q', '-s', '-t', '-u', '-v', '--all', '--allow-empty', '--amend', '--author=', '--cleanup=', '--dry-run', '--edit', '--file=', '--fixup=', '--include', '--interactive', '--message=', '--no-verify', '--only', '--quiet', '--reedit-message=', '--reuse-message=', '--signoff', '--squash=', '--template=', '--untracked-files', '--verbose']
-    return filter(args,'v:val[0 : strlen(a:A)-1] ==# a:A')
-  else
-    return s:repo().superglob(a:A)
-  endif
-endfunction
-
-function! s:FinishCommit() abort
-  let args = getbufvar(+expand('<abuf>'),'fugitive_commit_arguments')
-  if !empty(args)
-    call setbufvar(+expand('<abuf>'),'fugitive_commit_arguments','')
-    return s:Commit(args, s:repo(getbufvar(+expand('<abuf>'),'git_dir')))
-  endif
-  return ''
-endfunction
-
-" Section: Gmerge, Gpull
-
-call s:command("-nargs=? -bang -complete=custom,s:RevisionComplete Gmerge " .
-      \ "execute s:Merge('merge', <bang>0, <q-args>)")
-call s:command("-nargs=? -bang -complete=custom,s:RemoteComplete Gpull " .
-      \ "execute s:Merge('pull --progress', <bang>0, <q-args>)")
-
-function! s:RevisionComplete(A, L, P) abort
-  return s:repo().git_chomp('rev-parse', '--symbolic', '--branches', '--tags', '--remotes')
-        \ . "\nHEAD\nFETCH_HEAD\nORIG_HEAD"
-endfunction
-
-function! s:RemoteComplete(A, L, P) abort
-  let remote = matchstr(a:L, ' \zs\S\+\ze ')
-  if !empty(remote)
-    let matches = split(s:repo().git_chomp('ls-remote', remote), "\n")
-    call filter(matches, 'v:val =~# "\t" && v:val !~# "{"')
-    call map(matches, 's:sub(v:val, "^.*\t%(refs/%(heads/|tags/)=)=", "")')
-  else
-    let matches = split(s:repo().git_chomp('remote'), "\n")
-  endif
-  return join(matches, "\n")
-endfunction
-
-function! fugitive#cwindow() abort
-  if &buftype == 'quickfix'
-    cwindow
-  else
-    botright cwindow
-    if &buftype == 'quickfix'
-      wincmd p
-    endif
-  endif
-endfunction
-
-let s:common_efm = ''
-      \ . '%+Egit:%.%#,'
-      \ . '%+Eusage:%.%#,'
-      \ . '%+Eerror:%.%#,'
-      \ . '%+Efatal:%.%#,'
-      \ . '%-G%.%#%\e[K%.%#,'
-      \ . '%-G%.%#%\r%.%\+'
-
-function! s:Merge(cmd, bang, args) abort
-  let cd = exists('*haslocaldir') && haslocaldir() ? 'lcd' : 'cd'
-  let cwd = getcwd()
-  let [mp, efm] = [&l:mp, &l:efm]
-  let had_merge_msg = filereadable(s:repo().dir('MERGE_MSG'))
-  try
-    let &l:errorformat = ''
-          \ . '%-Gerror:%.%#false''.,'
-          \ . '%-G%.%# ''git commit'' %.%#,'
-          \ . '%+Emerge:%.%#,'
-          \ . s:common_efm . ','
-          \ . '%+ECannot %.%#: You have unstaged changes.,'
-          \ . '%+ECannot %.%#: Your index contains uncommitted changes.,'
-          \ . '%+EThere is no tracking information for the current branch.,'
-          \ . '%+EYou are not currently on a branch. Please specify which,'
-          \ . 'CONFLICT (%m): %f deleted in %.%#,'
-          \ . 'CONFLICT (%m): Merge conflict in %f,'
-          \ . 'CONFLICT (%m): Rename \"%f\"->%.%#,'
-          \ . 'CONFLICT (%m): Rename %.%#->%f %.%#,'
-          \ . 'CONFLICT (%m): There is a directory with name %f in %.%#,'
-          \ . '%+ECONFLICT %.%#,'
-          \ . '%+EKONFLIKT %.%#,'
-          \ . '%+ECONFLIT %.%#,'
-          \ . "%+EXUNG \u0110\u1ed8T %.%#,"
-          \ . "%+E\u51b2\u7a81 %.%#,"
-          \ . 'U%\t%f'
-    if a:cmd =~# '^merge' && empty(a:args) &&
-          \ (had_merge_msg || isdirectory(s:repo().dir('rebase-apply')) ||
-          \  !empty(s:repo().git_chomp('diff-files', '--diff-filter=U')))
-      let &l:makeprg = g:fugitive_git_executable.' diff-files --name-status --diff-filter=U'
-    else
-      let &l:makeprg = s:sub(s:git_command() . ' ' . a:cmd .
-            \ (a:args =~# ' \%(--no-edit\|--abort\|-m\)\>' ? '' : ' --edit') .
-            \ ' ' . a:args, ' *$', '')
-    endif
-    if !empty($GIT_EDITOR) || has('win32')
-      let old_editor = $GIT_EDITOR
-      let $GIT_EDITOR = 'false'
-    else
-      let &l:makeprg = 'env GIT_EDITOR=false ' . &l:makeprg
-    endif
-    execute cd fnameescape(s:repo().tree())
-    silent noautocmd make!
-  catch /^Vim\%((\a\+)\)\=:E211/
-    let err = v:exception
-  finally
-    redraw!
-    let [&l:mp, &l:efm] = [mp, efm]
-    if exists('old_editor')
-      let $GIT_EDITOR = old_editor
-    endif
-    execute cd fnameescape(cwd)
-  endtry
-  call fugitive#reload_status()
-  if empty(filter(getqflist(),'v:val.valid'))
-    if !had_merge_msg && filereadable(s:repo().dir('MERGE_MSG'))
-      cclose
-      return 'Gcommit --no-status -n -t '.s:shellesc(s:repo().dir('MERGE_MSG'))
-    endif
-  endif
-  let qflist = getqflist()
-  let found = 0
-  for e in qflist
-    if !empty(e.bufnr)
-      let found = 1
-      let e.pattern = '^<<<<<<<'
-    endif
-  endfor
-  call fugitive#cwindow()
-  if found
-    call setqflist(qflist, 'r')
-    if !a:bang
-      return 'cfirst'
-    endif
-  endif
-  return exists('err') ? 'echoerr '.string(err) : ''
-endfunction
-
-" Section: Ggrep, Glog
-
-if !exists('g:fugitive_summary_format')
-  let g:fugitive_summary_format = '%s'
-endif
-
-call s:command("-bang -nargs=? -complete=customlist,s:EditComplete Ggrep :execute s:Grep('grep',<bang>0,<q-args>)")
-call s:command("-bang -nargs=? -complete=customlist,s:EditComplete Glgrep :execute s:Grep('lgrep',<bang>0,<q-args>)")
-call s:command("-bar -bang -nargs=* -range=0 -complete=customlist,s:EditComplete Glog :call s:Log('grep<bang>',<line1>,<count>,<f-args>)")
-call s:command("-bar -bang -nargs=* -range=0 -complete=customlist,s:EditComplete Gllog :call s:Log('lgrep<bang>',<line1>,<count>,<f-args>)")
-
-function! s:Grep(cmd,bang,arg) abort
-  let grepprg = &grepprg
-  let grepformat = &grepformat
-  let cd = exists('*haslocaldir') && haslocaldir() ? 'lcd' : 'cd'
-  let dir = getcwd()
-  try
-    execute cd s:fnameescape(s:repo().tree())
-    let &grepprg = s:repo().git_command('--no-pager', 'grep', '-n', '--no-color')
-    let &grepformat = '%f:%l:%m,%m %f match%ts,%f'
-    exe a:cmd.'! '.escape(matchstr(a:arg,'\v\C.{-}%($|[''" ]\@=\|)@='),'|')
-    let list = a:cmd =~# '^l' ? getloclist(0) : getqflist()
-    for entry in list
-      if bufname(entry.bufnr) =~ ':'
-        let entry.filename = s:repo().translate(bufname(entry.bufnr))
-        unlet! entry.bufnr
-        let changed = 1
-      elseif a:arg =~# '\%(^\| \)--cached\>'
-        let entry.filename = s:repo().translate(':0:'.bufname(entry.bufnr))
-        unlet! entry.bufnr
-        let changed = 1
-      endif
-    endfor
-    if a:cmd =~# '^l' && exists('changed')
-      call setloclist(0, list, 'r')
-    elseif exists('changed')
-      call setqflist(list, 'r')
-    endif
-    if !a:bang && !empty(list)
-      return (a:cmd =~# '^l' ? 'l' : 'c').'first'.matchstr(a:arg,'\v\C[''" ]\zs\|.*')
-    else
-      return matchstr(a:arg,'\v\C[''" ]\|\zs.*')
-    endif
-  finally
-    let &grepprg = grepprg
-    let &grepformat = grepformat
-    execute cd s:fnameescape(dir)
-  endtry
-endfunction
-
-function! s:Log(cmd, line1, line2, ...) abort
-  let path = s:buffer().path('/')
-  if path =~# '^/\.git\%(/\|$\)' || index(a:000,'--') != -1
-    let path = ''
-  endif
-  let cmd = ['--no-pager', 'log', '--no-color']
-  let cmd += ['--pretty=format:fugitive://'.s:repo().dir().'//%H'.path.'::'.g:fugitive_summary_format]
-  if empty(filter(a:000[0 : index(a:000,'--')],'v:val !~# "^-"'))
-    if s:buffer().commit() =~# '\x\{40\}'
-      let cmd += [s:buffer().commit()]
-    elseif s:buffer().path() =~# '^\.git/refs/\|^\.git/.*HEAD$'
-      let cmd += [s:buffer().path()[5:-1]]
-    endif
-  end
-  let cmd += map(copy(a:000),'s:sub(v:val,"^\\%(%(:\\w)*)","\\=fnamemodify(s:buffer().path(),submatch(1))")')
-  if path =~# '/.'
-    if a:line2
-      let cmd += ['-L', a:line1 . ',' . a:line2 . ':' . path[1:-1]]
-    else
-      let cmd += ['--', path[1:-1]]
-    endif
-  endif
-  let grepformat = &grepformat
-  let grepprg = &grepprg
-  let cd = exists('*haslocaldir') && haslocaldir() ? 'lcd' : 'cd'
-  let dir = getcwd()
-  try
-    execute cd s:fnameescape(s:repo().tree())
-    let &grepprg = escape(call(s:repo().git_command,cmd,s:repo()),'%#')
-    let &grepformat = '%Cdiff %.%#,%C--- %.%#,%C+++ %.%#,%Z@@ -%\d%\+\,%\d%\+ +%l\,%\d%\+ @@,%-G-%.%#,%-G+%.%#,%-G %.%#,%A%f::%m,%-G%.%#'
-    exe a:cmd
-  finally
-    let &grepformat = grepformat
-    let &grepprg = grepprg
-    execute cd s:fnameescape(dir)
-  endtry
-endfunction
-
-" Section: Gedit, Gpedit, Gsplit, Gvsplit, Gtabedit, Gread
-
-function! s:Edit(cmd,bang,...) abort
-  let buffer = s:buffer()
-  if a:cmd !~# 'read'
-    if &previewwindow && getbufvar('','fugitive_type') ==# 'index'
-      if winnr('$') == 1
-        let tabs = (&go =~# 'e' || !has('gui_running')) && &stal && (tabpagenr('$') >= &stal)
-        execute 'rightbelow' (&lines - &previewheight - &cmdheight - tabs - 1 - !!&laststatus).'new'
-      elseif winnr('#')
-        wincmd p
-      else
-        wincmd w
-      endif
-      if &diff
-        let mywinnr = winnr()
-        for winnr in range(winnr('$'),1,-1)
-          if winnr != mywinnr && getwinvar(winnr,'&diff')
-            execute winnr.'wincmd w'
-            close
-            if winnr('$') > 1
-              wincmd p
-            endif
-          endif
-        endfor
-        diffoff!
-      endif
-    endif
-  endif
-
-  if a:bang
-    let arglist = map(copy(a:000), 's:gsub(v:val, ''\\@<!%(\\\\)*\zs[%#]'', ''\=s:buffer().expand(submatch(0))'')')
-    let args = join(arglist, ' ')
-    if a:cmd =~# 'read'
-      let git = buffer.repo().git_command()
-      let last = line('$')
-      silent call s:ExecuteInTree((a:cmd ==# 'read' ? '$read' : a:cmd).'!'.git.' --no-pager '.args)
-      if a:cmd ==# 'read'
-        silent execute '1,'.last.'delete_'
-      endif
-      call fugitive#reload_status()
-      diffupdate
-      return 'redraw|echo '.string(':!'.git.' '.args)
-    else
-      let temp = resolve(tempname())
-      if has('win32')
-        let temp = fnamemodify(fnamemodify(temp, ':h'), ':p').fnamemodify(temp, ':t')
-      endif
-      let s:temp_files[s:cpath(temp)] = { 'dir': buffer.repo().dir(), 'args': arglist }
-      silent execute a:cmd.' '.temp
-      if a:cmd =~# 'pedit'
-        wincmd P
-      endif
-      let echo = s:Edit('read',1,args)
-      silent write!
-      setlocal buftype=nowrite nomodified filetype=git foldmarker=<<<<<<<,>>>>>>>
-      if getline(1) !~# '^diff '
-        setlocal readonly nomodifiable
-      endif
-      if a:cmd =~# 'pedit'
-        wincmd p
-      endif
-      return echo
-    endif
-    return ''
-  endif
-
-  if a:0 && a:1 == ''
-    return ''
-  elseif a:0
-    let file = buffer.expand(join(a:000, ' '))
-  elseif expand('%') ==# ''
-    let file = ':'
-  elseif buffer.commit() ==# '' && buffer.path('/') !~# '^/.git\>'
-    let file = buffer.path(':')
-  else
-    let file = buffer.path('/')
-  endif
-  try
-    let file = buffer.repo().translate(file)
-  catch /^fugitive:/
-    return 'echoerr v:errmsg'
-  endtry
-  if file !~# '^fugitive:'
-    let file = s:sub(file, '/$', '')
-  endif
-  if a:cmd ==# 'read'
-    return 'silent %delete_|read '.s:fnameescape(file).'|silent 1delete_|diffupdate|'.line('.')
-  else
-    return a:cmd.' '.s:fnameescape(file)
-  endif
-endfunction
-
-function! s:EditComplete(A,L,P) abort
-  return map(s:repo().superglob(a:A), 'fnameescape(v:val)')
-endfunction
-
-function! s:EditRunComplete(A,L,P) abort
-  if a:L =~# '^\w\+!'
-    return s:GitComplete(a:A,a:L,a:P)
-  else
-    return s:repo().superglob(a:A)
-  endif
-endfunction
-
-call s:command("-bar -bang -nargs=* -complete=customlist,s:EditComplete Ge       :execute s:Edit('edit<bang>',0,<f-args>)")
-call s:command("-bar -bang -nargs=* -complete=customlist,s:EditComplete Gedit    :execute s:Edit('edit<bang>',0,<f-args>)")
-call s:command("-bar -bang -nargs=* -complete=customlist,s:EditRunComplete Gpedit   :execute s:Edit('pedit',<bang>0,<f-args>)")
-call s:command("-bar -bang -nargs=* -complete=customlist,s:EditRunComplete Gsplit   :execute s:Edit('split',<bang>0,<f-args>)")
-call s:command("-bar -bang -nargs=* -complete=customlist,s:EditRunComplete Gvsplit  :execute s:Edit('vsplit',<bang>0,<f-args>)")
-call s:command("-bar -bang -nargs=* -complete=customlist,s:EditRunComplete Gtabedit :execute s:Edit('tabedit',<bang>0,<f-args>)")
-call s:command("-bar -bang -nargs=* -range=-1 -complete=customlist,s:EditRunComplete Gread :execute s:Edit((<count> == -1 ? '' : <count>).'read',<bang>0,<f-args>)")
-
-" Section: Gwrite, Gwq
-
-call s:command("-bar -bang -nargs=* -complete=customlist,s:EditComplete Gwrite :execute s:Write(<bang>0,<f-args>)")
-call s:command("-bar -bang -nargs=* -complete=customlist,s:EditComplete Gw :execute s:Write(<bang>0,<f-args>)")
-call s:command("-bar -bang -nargs=* -complete=customlist,s:EditComplete Gwq :execute s:Wq(<bang>0,<f-args>)")
-
-function! s:Write(force,...) abort
-  if exists('b:fugitive_commit_arguments')
-    return 'write|bdelete'
-  elseif expand('%:t') == 'COMMIT_EDITMSG' && $GIT_INDEX_FILE != ''
-    return 'wq'
-  elseif s:buffer().type() == 'index'
-    return 'Gcommit'
-  elseif s:buffer().path() ==# '' && getline(4) =~# '^+++ '
-    let filename = getline(4)[6:-1]
-    setlocal buftype=
-    silent write
-    setlocal buftype=nowrite
-    if matchstr(getline(2),'index [[:xdigit:]]\+\.\.\zs[[:xdigit:]]\{7\}') ==# s:repo().rev_parse(':0:'.filename)[0:6]
-      let err = s:repo().git_chomp('apply','--cached','--reverse',s:buffer().spec())
-    else
-      let err = s:repo().git_chomp('apply','--cached',s:buffer().spec())
-    endif
-    if err !=# ''
-      let v:errmsg = split(err,"\n")[0]
-      return 'echoerr v:errmsg'
-    elseif a:force
-      return 'bdelete'
-    else
-      return 'Gedit '.fnameescape(filename)
-    endif
-  endif
-  let mytab = tabpagenr()
-  let mybufnr = bufnr('')
-  let path = a:0 ? join(a:000, ' ') : s:buffer().path()
-  if empty(path)
-    return 'echoerr '.string('fugitive: cannot determine file path')
-  endif
-  if path =~# '^:\d\>'
-    return 'write'.(a:force ? '! ' : ' ').s:fnameescape(s:repo().translate(s:buffer().expand(path)))
-  endif
-  let always_permitted = (s:buffer().path() ==# path && s:buffer().commit() =~# '^0\=$')
-  if !always_permitted && !a:force && s:repo().git_chomp_in_tree('diff','--name-status','HEAD','--',path) . s:repo().git_chomp_in_tree('ls-files','--others','--',path) !=# ''
-    let v:errmsg = 'fugitive: file has uncommitted changes (use ! to override)'
-    return 'echoerr v:errmsg'
-  endif
-  let file = s:repo().translate(path)
-  let treebufnr = 0
-  for nr in range(1,bufnr('$'))
-    if fnamemodify(bufname(nr),':p') ==# file
-      let treebufnr = nr
-    endif
-  endfor
-
-  if treebufnr > 0 && treebufnr != bufnr('')
-    let temp = tempname()
-    silent execute '%write '.temp
-    for tab in [mytab] + range(1,tabpagenr('$'))
-      for winnr in range(1,tabpagewinnr(tab,'$'))
-        if tabpagebuflist(tab)[winnr-1] == treebufnr
-          execute 'tabnext '.tab
-          if winnr != winnr()
-            execute winnr.'wincmd w'
-            let restorewinnr = 1
-          endif
-          try
-            let lnum = line('.')
-            let last = line('$')
-            silent execute '$read '.temp
-            silent execute '1,'.last.'delete_'
-            silent write!
-            silent execute lnum
-            let did = 1
-          finally
-            if exists('restorewinnr')
-              wincmd p
-            endif
-            execute 'tabnext '.mytab
-          endtry
-        endif
-      endfor
-    endfor
-    if !exists('did')
-      call writefile(readfile(temp,'b'),file,'b')
-    endif
-  else
-    execute 'write! '.s:fnameescape(s:repo().translate(path))
-  endif
-
-  if a:force
-    let error = s:repo().git_chomp_in_tree('add', '--force', '--', path)
-  else
-    let error = s:repo().git_chomp_in_tree('add', '--', path)
-  endif
-  if v:shell_error
-    let v:errmsg = 'fugitive: '.error
-    return 'echoerr v:errmsg'
-  endif
-  if s:buffer().path() ==# path && s:buffer().commit() =~# '^\d$'
-    set nomodified
-  endif
-
-  let one = s:repo().translate(':1:'.path)
-  let two = s:repo().translate(':2:'.path)
-  let three = s:repo().translate(':3:'.path)
-  for nr in range(1,bufnr('$'))
-    let name = fnamemodify(bufname(nr), ':p')
-    if bufloaded(nr) && !getbufvar(nr,'&modified') && (name ==# one || name ==# two || name ==# three)
-      execute nr.'bdelete'
-    endif
-  endfor
-
-  unlet! restorewinnr
-  let zero = s:repo().translate(':0:'.path)
-  silent execute 'doautocmd BufWritePost' s:fnameescape(zero)
-  for tab in range(1,tabpagenr('$'))
-    for winnr in range(1,tabpagewinnr(tab,'$'))
-      let bufnr = tabpagebuflist(tab)[winnr-1]
-      let bufname = fnamemodify(bufname(bufnr), ':p')
-      if bufname ==# zero && bufnr != mybufnr
-        execute 'tabnext '.tab
-        if winnr != winnr()
-          execute winnr.'wincmd w'
-          let restorewinnr = 1
-        endif
-        try
-          let lnum = line('.')
-          let last = line('$')
-          silent execute '$read '.s:fnameescape(file)
-          silent execute '1,'.last.'delete_'
-          silent execute lnum
-          set nomodified
-          diffupdate
-        finally
-          if exists('restorewinnr')
-            wincmd p
-          endif
-          execute 'tabnext '.mytab
-        endtry
-        break
-      endif
-    endfor
-  endfor
-  call fugitive#reload_status()
-  return 'checktime'
-endfunction
-
-function! s:Wq(force,...) abort
-  let bang = a:force ? '!' : ''
-  if exists('b:fugitive_commit_arguments')
-    return 'wq'.bang
-  endif
-  let result = call(s:function('s:Write'),[a:force]+a:000)
-  if result =~# '^\%(write\|wq\|echoerr\)'
-    return s:sub(result,'^write','wq')
-  else
-    return result.'|quit'.bang
-  endif
-endfunction
-
-augroup fugitive_commit
-  autocmd!
-  autocmd VimLeavePre,BufDelete COMMIT_EDITMSG execute s:sub(s:FinishCommit(), '^echoerr (.*)', 'echohl ErrorMsg|echo \1|echohl NONE')
-augroup END
-
-" Section: Gpush, Gfetch
-
-call s:command("-nargs=? -bang -complete=custom,s:RemoteComplete Gpush  execute s:Dispatch('<bang>', 'push '.<q-args>)")
-call s:command("-nargs=? -bang -complete=custom,s:RemoteComplete Gfetch execute s:Dispatch('<bang>', 'fetch '.<q-args>)")
-
-function! s:Dispatch(bang, args)
-  let cd = exists('*haslocaldir') && haslocaldir() ? 'lcd' : 'cd'
-  let cwd = getcwd()
-  let [mp, efm, cc] = [&l:mp, &l:efm, get(b:, 'current_compiler', '')]
-  try
-    let b:current_compiler = 'git'
-    let &l:errorformat = s:common_efm
-    let &l:makeprg = substitute(s:git_command() . ' ' . a:args, '\s\+$', '', '')
-    execute cd fnameescape(s:repo().tree())
-    if exists(':Make') == 2
-      noautocmd Make
-    else
-      silent noautocmd make!
-      redraw!
-      return 'call fugitive#cwindow()'
-    endif
-    return ''
-  finally
-    let [&l:mp, &l:efm, b:current_compiler] = [mp, efm, cc]
-    if empty(cc) | unlet! b:current_compiler | endif
-    execute cd fnameescape(cwd)
-  endtry
-endfunction
-
-" Section: Gdiff
-
-call s:command("-bang -bar -nargs=* -complete=customlist,s:EditComplete Gdiff :execute s:Diff('',<bang>0,<f-args>)")
-call s:command("-bang -bar -nargs=* -complete=customlist,s:EditComplete Gvdiff :execute s:Diff('keepalt vert ',<bang>0,<f-args>)")
-call s:command("-bang -bar -nargs=* -complete=customlist,s:EditComplete Gsdiff :execute s:Diff('keepalt ',<bang>0,<f-args>)")
-
-augroup fugitive_diff
-  autocmd!
-  autocmd BufWinLeave *
-        \ if s:can_diffoff(+expand('<abuf>')) && s:diff_window_count() == 2 |
-        \   call s:diffoff_all(getbufvar(+expand('<abuf>'), 'git_dir')) |
-        \ endif
-  autocmd BufWinEnter *
-        \ if s:can_diffoff(+expand('<abuf>')) && s:diff_window_count() == 1 |
-        \   call s:diffoff() |
-        \ endif
-augroup END
-
-function! s:can_diffoff(buf) abort
-  return getwinvar(bufwinnr(a:buf), '&diff') &&
-        \ !empty(getbufvar(a:buf, 'git_dir')) &&
-        \ !empty(getwinvar(bufwinnr(a:buf), 'fugitive_diff_restore'))
-endfunction
-
-function! fugitive#can_diffoff(buf) abort
-  return s:can_diffoff(a:buf)
-endfunction
-
-function! s:diff_modifier(count) abort
-  let fdc = matchstr(&diffopt, 'foldcolumn:\zs\d\+')
-  if &diffopt =~# 'horizontal' && &diffopt !~# 'vertical'
-    return 'keepalt '
-  elseif &diffopt =~# 'vertical'
-    return 'keepalt vert '
-  elseif winwidth(0) <= a:count * ((&tw ? &tw : 80) + (empty(fdc) ? 2 : fdc))
-    return 'keepalt '
-  else
-    return 'keepalt vert '
-  endif
-endfunction
-
-function! s:diff_window_count() abort
-  let c = 0
-  for nr in range(1,winnr('$'))
-    let c += getwinvar(nr,'&diff')
-  endfor
-  return c
-endfunction
-
-function! s:diff_restore() abort
-  let restore = 'setlocal nodiff noscrollbind'
-        \ . ' scrollopt=' . &l:scrollopt
-        \ . (&l:wrap ? ' wrap' : ' nowrap')
-        \ . ' foldlevel=999'
-        \ . ' foldmethod=' . &l:foldmethod
-        \ . ' foldcolumn=' . &l:foldcolumn
-        \ . ' foldlevel=' . &l:foldlevel
-        \ . (&l:foldenable ? ' foldenable' : ' nofoldenable')
-  if has('cursorbind')
-    let restore .= (&l:cursorbind ? ' ' : ' no') . 'cursorbind'
-  endif
-  return restore
-endfunction
-
-function! s:diffthis() abort
-  if !&diff
-    let w:fugitive_diff_restore = s:diff_restore()
-    diffthis
-  endif
-endfunction
-
-function! s:diffoff() abort
-  if exists('w:fugitive_diff_restore')
-    execute w:fugitive_diff_restore
-    unlet w:fugitive_diff_restore
-  else
-    diffoff
-  endif
-endfunction
-
-function! s:diffoff_all(dir) abort
-  let curwin = winnr()
-  for nr in range(1,winnr('$'))
-    if getwinvar(nr,'&diff')
-      if nr != winnr()
-        execute nr.'wincmd w'
-        let restorewinnr = 1
-      endif
-      if exists('b:git_dir') && b:git_dir ==# a:dir
-        call s:diffoff()
-      endif
-    endif
-  endfor
-  execute curwin.'wincmd w'
-endfunction
-
-function! s:buffer_compare_age(commit) dict abort
-  let scores = {':0': 1, ':1': 2, ':2': 3, ':': 4, ':3': 5}
-  let my_score    = get(scores,':'.self.commit(),0)
-  let their_score = get(scores,':'.a:commit,0)
-  if my_score || their_score
-    return my_score < their_score ? -1 : my_score != their_score
-  elseif self.commit() ==# a:commit
-    return 0
-  endif
-  let base = self.repo().git_chomp('merge-base',self.commit(),a:commit)
-  if base ==# self.commit()
-    return -1
-  elseif base ==# a:commit
-    return 1
-  endif
-  let my_time    = +self.repo().git_chomp('log','--max-count=1','--pretty=format:%at',self.commit())
-  let their_time = +self.repo().git_chomp('log','--max-count=1','--pretty=format:%at',a:commit)
-  return my_time < their_time ? -1 : my_time != their_time
-endfunction
-
-call s:add_methods('buffer',['compare_age'])
-
-function! s:Diff(vert,keepfocus,...) abort
-  let args = copy(a:000)
-  let post = ''
-  if get(args, 0) =~# '^+'
-    let post = remove(args, 0)[1:-1]
-  endif
-  let vert = empty(a:vert) ? s:diff_modifier(2) : a:vert
-  if exists(':DiffGitCached')
-    return 'DiffGitCached'
-  elseif (empty(args) || args[0] == ':') && s:buffer().commit() =~# '^[0-1]\=$' && s:repo().git_chomp_in_tree('ls-files', '--unmerged', '--', s:buffer().path()) !=# ''
-    let vert = empty(a:vert) ? s:diff_modifier(3) : a:vert
-    let nr = bufnr('')
-    execute 'leftabove '.vert.'split' s:fnameescape(fugitive#repo().translate(s:buffer().expand(':2')))
-    execute 'nnoremap <buffer> <silent> dp :diffput '.nr.'<Bar>diffupdate<CR>'
-    let nr2 = bufnr('')
-    call s:diffthis()
-    wincmd p
-    execute 'rightbelow '.vert.'split' s:fnameescape(fugitive#repo().translate(s:buffer().expand(':3')))
-    execute 'nnoremap <buffer> <silent> dp :diffput '.nr.'<Bar>diffupdate<CR>'
-    let nr3 = bufnr('')
-    call s:diffthis()
-    wincmd p
-    call s:diffthis()
-    execute 'nnoremap <buffer> <silent> d2o :diffget '.nr2.'<Bar>diffupdate<CR>'
-    execute 'nnoremap <buffer> <silent> d3o :diffget '.nr3.'<Bar>diffupdate<CR>'
-    return post
-  elseif len(args)
-    let arg = join(args, ' ')
-    if arg ==# ''
-      return post
-    elseif arg ==# '/'
-      let file = s:buffer().path('/')
-    elseif arg ==# ':'
-      let file = s:buffer().path(':0:')
-    elseif arg =~# '^:/.'
-      try
-        let file = s:repo().rev_parse(arg).s:buffer().path(':')
-      catch /^fugitive:/
-        return 'echoerr v:errmsg'
-      endtry
-    else
-      let file = s:buffer().expand(arg)
-    endif
-    if file !~# ':' && file !~# '^/' && s:repo().git_chomp('cat-file','-t',file) =~# '^\%(tag\|commit\)$'
-      let file = file.s:buffer().path(':')
-    endif
-  else
-    let file = s:buffer().path(s:buffer().commit() == '' ? ':0:' : '/')
-  endif
-  try
-    let spec = s:repo().translate(file)
-    let commit = matchstr(spec,'\C[^:/]//\zs\x\+')
-    let restore = s:diff_restore()
-    if exists('+cursorbind')
-      setlocal cursorbind
-    endif
-    let w:fugitive_diff_restore = restore
-    if s:buffer().compare_age(commit) < 0
-      execute 'rightbelow '.vert.'diffsplit '.s:fnameescape(spec)
-    else
-      execute 'leftabove '.vert.'diffsplit '.s:fnameescape(spec)
-    endif
-    let &l:readonly = &l:readonly
-    redraw
-    let w:fugitive_diff_restore = restore
-    let winnr = winnr()
-    if getwinvar('#', '&diff')
-      wincmd p
-      if !a:keepfocus
-        call feedkeys(winnr."\<C-W>w", 'n')
-      endif
-    endif
-    return post
-  catch /^fugitive:/
-    return 'echoerr v:errmsg'
-  endtry
-endfunction
-
-" Section: Gmove, Gremove
-
-function! s:Move(force,destination) abort
-  if a:destination =~# '^/'
-    let destination = a:destination[1:-1]
-  else
-    let destination = s:shellslash(fnamemodify(s:sub(a:destination,'[%#]%(:\w)*','\=expand(submatch(0))'),':p'))
-    if destination[0:strlen(s:repo().tree())] ==# s:repo().tree('')
-      let destination = destination[strlen(s:repo().tree('')):-1]
-    endif
-  endif
-  if isdirectory(s:buffer().spec())
-    " Work around Vim parser idiosyncrasy
-    let discarded = s:buffer().setvar('&swapfile',0)
-  endif
-  let message = call(s:repo().git_chomp_in_tree,['mv']+(a:force ? ['-f'] : [])+['--', s:buffer().path(), destination], s:repo())
-  if v:shell_error
-    let v:errmsg = 'fugitive: '.message
-    return 'echoerr v:errmsg'
-  endif
-  let destination = s:repo().tree(destination)
-  if isdirectory(destination)
-    let destination = fnamemodify(s:sub(destination,'/$','').'/'.expand('%:t'),':.')
-  endif
-  call fugitive#reload_status()
-  if s:buffer().commit() == ''
-    if isdirectory(destination)
-      return 'keepalt edit '.s:fnameescape(destination)
-    else
-      return 'keepalt saveas! '.s:fnameescape(destination)
-    endif
-  else
-    return 'file '.s:fnameescape(s:repo().translate(':0:'.destination))
-  endif
-endfunction
-
-function! s:MoveComplete(A,L,P) abort
-  if a:A =~ '^/'
-    return s:repo().superglob(a:A)
-  else
-    let matches = split(glob(a:A.'*'),"\n")
-    call map(matches,'v:val !~ "/$" && isdirectory(v:val) ? v:val."/" : v:val')
-    return matches
-  endif
-endfunction
-
-function! s:Remove(after, force) abort
-  if s:buffer().commit() ==# ''
-    let cmd = ['rm']
-  elseif s:buffer().commit() ==# '0'
-    let cmd = ['rm','--cached']
-  else
-    let v:errmsg = 'fugitive: rm not supported here'
-    return 'echoerr v:errmsg'
-  endif
-  if a:force
-    let cmd += ['--force']
-  endif
-  let message = call(s:repo().git_chomp_in_tree,cmd+['--',s:buffer().path()],s:repo())
-  if v:shell_error
-    let v:errmsg = 'fugitive: '.s:sub(message,'error:.*\zs\n\(.*-f.*',' (add ! to force)')
-    return 'echoerr '.string(v:errmsg)
-  else
-    call fugitive#reload_status()
-    return a:after . (a:force ? '!' : '')
-  endif
-endfunction
-
-augroup fugitive_remove
-  autocmd!
-  autocmd User Fugitive if s:buffer().commit() =~# '^0\=$' |
-        \ exe "command! -buffer -bar -bang -nargs=1 -complete=customlist,s:MoveComplete Gmove :execute s:Move(<bang>0,<q-args>)" |
-        \ exe "command! -buffer -bar -bang Gremove :execute s:Remove('edit',<bang>0)" |
-        \ exe "command! -buffer -bar -bang Gdelete :execute s:Remove('bdelete',<bang>0)" |
-        \ endif
-augroup END
-
-" Section: Gblame
-
-augroup fugitive_blame
-  autocmd!
-  autocmd BufReadPost *.fugitiveblame setfiletype fugitiveblame
-  autocmd FileType fugitiveblame setlocal nomodeline | if exists('b:git_dir') | let &l:keywordprg = s:repo().keywordprg() | endif
-  autocmd Syntax fugitiveblame call s:BlameSyntax()
-  autocmd User Fugitive if s:buffer().type('file', 'blob') | exe "command! -buffer -bar -bang -range=0 -nargs=* Gblame :execute s:Blame(<bang>0,<line1>,<line2>,<count>,[<f-args>])" | endif
-  autocmd ColorScheme,GUIEnter * call s:RehighlightBlame()
-augroup END
-
-function! s:linechars(pattern) abort
-  let chars = strlen(s:gsub(matchstr(getline('.'), a:pattern), '.', '.'))
-  if exists('*synconcealed') && &conceallevel > 1
-    for col in range(1, chars)
-      let chars -= synconcealed(line('.'), col)[0]
-    endfor
-  endif
-  return chars
-endfunction
-
-function! s:Blame(bang,line1,line2,count,args) abort
-  if exists('b:fugitive_blamed_bufnr')
-    return 'bdelete'
-  endif
-  try
-    if s:buffer().path() == ''
-      call s:throw('file or blob required')
-    endif
-    if filter(copy(a:args),'v:val !~# "^\\%(--root\|--show-name\\|-\\=\\%([ltfnsew]\\|[MC]\\d*\\)\\+\\)$"') != []
-      call s:throw('unsupported option')
-    endif
-    call map(a:args,'s:sub(v:val,"^\\ze[^-]","-")')
-    let cmd = ['--no-pager', 'blame', '--show-number'] + a:args
-    if s:buffer().commit() =~# '\D\|..'
-      let cmd += [s:buffer().commit()]
-    else
-      let cmd += ['--contents', '-']
-    endif
-    let cmd += ['--', s:buffer().path()]
-    let basecmd = escape(call(s:repo().git_command,cmd,s:repo()),'!')
-    try
-      let cd = exists('*haslocaldir') && haslocaldir() ? 'lcd' : 'cd'
-      if !s:repo().bare()
-        let dir = getcwd()
-        execute cd s:fnameescape(s:repo().tree())
-      endif
-      if a:count
-        execute 'write !'.substitute(basecmd,' blame ',' blame -L '.a:line1.','.a:line2.' ','g')
-      else
-        let error = resolve(tempname())
-        let temp = error.'.fugitiveblame'
-        if &shell =~# 'csh'
-          silent! execute '%write !('.basecmd.' > '.temp.') >& '.error
-        else
-          silent! execute '%write !'.basecmd.' > '.temp.' 2> '.error
-        endif
-        if exists('l:dir')
-          execute cd s:fnameescape(dir)
-          unlet dir
-        endif
-        if v:shell_error
-          call s:throw(join(readfile(error),"\n"))
-        endif
-        for winnr in range(winnr('$'),1,-1)
-          call setwinvar(winnr, '&scrollbind', 0)
-          if exists('+cursorbind')
-            call setwinvar(winnr, '&cursorbind', 0)
-          endif
-          if getbufvar(winbufnr(winnr), 'fugitive_blamed_bufnr')
-            execute winbufnr(winnr).'bdelete'
-          endif
-        endfor
-        let bufnr = bufnr('')
-        let restore = 'call setwinvar(bufwinnr('.bufnr.'),"&scrollbind",0)'
-        if exists('+cursorbind')
-          let restore .= '|call setwinvar(bufwinnr('.bufnr.'),"&cursorbind",0)'
-        endif
-        if &l:wrap
-          let restore .= '|call setwinvar(bufwinnr('.bufnr.'),"&wrap",1)'
-        endif
-        if &l:foldenable
-          let restore .= '|call setwinvar(bufwinnr('.bufnr.'),"&foldenable",1)'
-        endif
-        setlocal scrollbind nowrap nofoldenable
-        if exists('+cursorbind')
-          setlocal cursorbind
-        endif
-        let top = line('w0') + &scrolloff
-        let current = line('.')
-        if has('win32')
-          let temp = fnamemodify(fnamemodify(temp, ':h'), ':p').fnamemodify(temp, ':t')
-        endif
-        let s:temp_files[s:cpath(temp)] = { 'dir': s:repo().dir(), 'args': cmd }
-        exe 'keepalt leftabove vsplit '.temp
-        let b:fugitive_blamed_bufnr = bufnr
-        let w:fugitive_leave = restore
-        let b:fugitive_blame_arguments = join(a:args,' ')
-        execute top
-        normal! zt
-        execute current
-        if exists('+cursorbind')
-          setlocal cursorbind
-        endif
-        setlocal nomodified nomodifiable nonumber scrollbind nowrap foldcolumn=0 nofoldenable winfixwidth filetype=fugitiveblame
-        if exists('+concealcursor')
-          setlocal concealcursor=nc conceallevel=2
-        endif
-        if exists('+relativenumber')
-          setlocal norelativenumber
-        endif
-        execute "vertical resize ".(s:linechars('.\{-\}\ze\s\+\d\+)')+1)
-        nnoremap <buffer> <silent> <F1> :help fugitive-:Gblame<CR>
-        nnoremap <buffer> <silent> g?   :help fugitive-:Gblame<CR>
-        nnoremap <buffer> <silent> q    :exe substitute(bufwinnr(b:fugitive_blamed_bufnr).' wincmd w<Bar>'.bufnr('').'bdelete','^-1','','')<CR>
-        nnoremap <buffer> <silent> gq   :exe substitute(bufwinnr(b:fugitive_blamed_bufnr).' wincmd w<Bar>'.bufnr('').'bdelete<Bar>if expand("%:p") =~# "^fugitive:[\\/][\\/]"<Bar>Gedit<Bar>endif','^-1','','')<CR>
-        nnoremap <buffer> <silent> <CR> :<C-U>exe <SID>BlameCommit("exe 'norm q'<Bar>edit")<CR>
-        nnoremap <buffer> <silent> -    :<C-U>exe <SID>BlameJump('')<CR>
-        nnoremap <buffer> <silent> P    :<C-U>exe <SID>BlameJump('^'.v:count1)<CR>
-        nnoremap <buffer> <silent> ~    :<C-U>exe <SID>BlameJump('~'.v:count1)<CR>
-        nnoremap <buffer> <silent> i    :<C-U>exe <SID>BlameCommit("exe 'norm q'<Bar>edit")<CR>
-        nnoremap <buffer> <silent> o    :<C-U>exe <SID>BlameCommit((&splitbelow ? "botright" : "topleft")." split")<CR>
-        nnoremap <buffer> <silent> O    :<C-U>exe <SID>BlameCommit("tabedit")<CR>
-        nnoremap <buffer> <silent> A    :<C-u>exe "vertical resize ".(<SID>linechars('.\{-\}\ze [0-9:/+-][0-9:/+ -]* \d\+)')+1+v:count)<CR>
-        nnoremap <buffer> <silent> C    :<C-u>exe "vertical resize ".(<SID>linechars('^\S\+')+1+v:count)<CR>
-        nnoremap <buffer> <silent> D    :<C-u>exe "vertical resize ".(<SID>linechars('.\{-\}\ze\d\ze\s\+\d\+)')+1-v:count)<CR>
-        redraw
-        syncbind
-      endif
-    finally
-      if exists('l:dir')
-        execute cd s:fnameescape(dir)
-      endif
-    endtry
-    return ''
-  catch /^fugitive:/
-    return 'echoerr v:errmsg'
-  endtry
-endfunction
-
-function! s:BlameCommit(cmd) abort
-  let cmd = s:Edit(a:cmd, 0, matchstr(getline('.'),'\x\+'))
-  if cmd =~# '^echoerr'
-    return cmd
-  endif
-  let lnum = matchstr(getline('.'),' \zs\d\+\ze\s\+[([:digit:]]')
-  let path = matchstr(getline('.'),'^\^\=\x\+\s\+\zs.\{-\}\ze\s*\d\+ ')
-  if path ==# ''
-    let path = s:buffer(b:fugitive_blamed_bufnr).path()
-  endif
-  execute cmd
-  if search('^diff .* b/\M'.escape(path,'\').'$','W')
-    call search('^+++')
-    let head = line('.')
-    while search('^@@ \|^diff ') && getline('.') =~# '^@@ '
-      let top = +matchstr(getline('.'),' +\zs\d\+')
-      let len = +matchstr(getline('.'),' +\d\+,\zs\d\+')
-      if lnum >= top && lnum <= top + len
-        let offset = lnum - top
-        if &scrolloff
-          +
-          normal! zt
-        else
-          normal! zt
-          +
-        endif
-        while offset > 0 && line('.') < line('$')
-          +
-          if getline('.') =~# '^[ +]'
-            let offset -= 1
-          endif
-        endwhile
-        return 'normal! zv'
-      endif
-    endwhile
-    execute head
-    normal! zt
-  endif
-  return ''
-endfunction
-
-function! s:BlameJump(suffix) abort
-  let commit = matchstr(getline('.'),'^\^\=\zs\x\+')
-  if commit =~# '^0\+$'
-    let commit = ':0'
-  endif
-  let lnum = matchstr(getline('.'),' \zs\d\+\ze\s\+[([:digit:]]')
-  let path = matchstr(getline('.'),'^\^\=\x\+\s\+\zs.\{-\}\ze\s*\d\+ ')
-  if path ==# ''
-    let path = s:buffer(b:fugitive_blamed_bufnr).path()
-  endif
-  let args = b:fugitive_blame_arguments
-  let offset = line('.') - line('w0')
-  let bufnr = bufnr('%')
-  let winnr = bufwinnr(b:fugitive_blamed_bufnr)
-  if winnr > 0
-    exe winnr.'wincmd w'
-  endif
-  execute s:Edit('edit', 0, commit.a:suffix.':'.path)
-  execute lnum
-  if winnr > 0
-    exe bufnr.'bdelete'
-  endif
-  if exists(':Gblame')
-    execute 'Gblame '.args
-    execute lnum
-    let delta = line('.') - line('w0') - offset
-    if delta > 0
-      execute 'normal! '.delta."\<C-E>"
-    elseif delta < 0
-      execute 'normal! '.(-delta)."\<C-Y>"
-    endif
-    syncbind
-  endif
-  return ''
-endfunction
-
-let s:hash_colors = {}
-
-function! s:BlameSyntax() abort
-  let b:current_syntax = 'fugitiveblame'
-  let conceal = has('conceal') ? ' conceal' : ''
-  let arg = exists('b:fugitive_blame_arguments') ? b:fugitive_blame_arguments : ''
-  syn match FugitiveblameBoundary "^\^"
-  syn match FugitiveblameBlank                      "^\s\+\s\@=" nextgroup=FugitiveblameAnnotation,fugitiveblameOriginalFile,FugitiveblameOriginalLineNumber skipwhite
-  syn match FugitiveblameHash       "\%(^\^\=\)\@<=\<\x\{7,40\}\>" nextgroup=FugitiveblameAnnotation,FugitiveblameOriginalLineNumber,fugitiveblameOriginalFile skipwhite
-  syn match FugitiveblameUncommitted "\%(^\^\=\)\@<=\<0\{7,40\}\>" nextgroup=FugitiveblameAnnotation,FugitiveblameOriginalLineNumber,fugitiveblameOriginalFile skipwhite
-  syn region FugitiveblameAnnotation matchgroup=FugitiveblameDelimiter start="(" end="\%( \d\+\)\@<=)" contained keepend oneline
-  syn match FugitiveblameTime "[0-9:/+-][0-9:/+ -]*[0-9:/+-]\%( \+\d\+)\)\@=" contained containedin=FugitiveblameAnnotation
-  exec 'syn match FugitiveblameLineNumber         " *\d\+)\@=" contained containedin=FugitiveblameAnnotation'.conceal
-  exec 'syn match FugitiveblameOriginalFile       " \%(\f\+\D\@<=\|\D\@=\f\+\)\%(\%(\s\+\d\+\)\=\s\%((\|\s*\d\+)\)\)\@=" contained nextgroup=FugitiveblameOriginalLineNumber,FugitiveblameAnnotation skipwhite'.(arg =~# 'f' ? '' : conceal)
-  exec 'syn match FugitiveblameOriginalLineNumber " *\d\+\%(\s(\)\@=" contained nextgroup=FugitiveblameAnnotation skipwhite'.(arg =~# 'n' ? '' : conceal)
-  exec 'syn match FugitiveblameOriginalLineNumber " *\d\+\%(\s\+\d\+)\)\@=" contained nextgroup=FugitiveblameShort skipwhite'.(arg =~# 'n' ? '' : conceal)
-  syn match FugitiveblameShort              " \d\+)" contained contains=FugitiveblameLineNumber
-  syn match FugitiveblameNotCommittedYet "(\@<=Not Committed Yet\>" contained containedin=FugitiveblameAnnotation
-  hi def link FugitiveblameBoundary           Keyword
-  hi def link FugitiveblameHash               Identifier
-  hi def link FugitiveblameUncommitted        Ignore
-  hi def link FugitiveblameTime               PreProc
-  hi def link FugitiveblameLineNumber         Number
-  hi def link FugitiveblameOriginalFile       String
-  hi def link FugitiveblameOriginalLineNumber Float
-  hi def link FugitiveblameShort              FugitiveblameDelimiter
-  hi def link FugitiveblameDelimiter          Delimiter
-  hi def link FugitiveblameNotCommittedYet    Comment
-  let seen = {}
-  for lnum in range(1, line('$'))
-    let hash = matchstr(getline(lnum), '^\^\=\zs\x\{6\}')
-    if hash ==# '' || hash ==# '000000' || has_key(seen, hash)
-      continue
-    endif
-    let seen[hash] = 1
-    if &t_Co > 16 && get(g:, 'CSApprox_loaded') && !empty(findfile('autoload/csapprox/per_component.vim', escape(&rtp, ' ')))
-          \ && empty(get(s:hash_colors, hash))
-      let [s, r, g, b; __] = map(matchlist(hash, '\(\x\x\)\(\x\x\)\(\x\x\)'), 'str2nr(v:val,16)')
-      let color = csapprox#per_component#Approximate(r, g, b)
-      if color == 16 && &background ==# 'dark'
-        let color = 8
-      endif
-      let s:hash_colors[hash] = ' ctermfg='.color
-    else
-      let s:hash_colors[hash] = ''
-    endif
-    exe 'syn match FugitiveblameHash'.hash.'       "\%(^\^\=\)\@<='.hash.'\x\{1,34\}\>" nextgroup=FugitiveblameAnnotation,FugitiveblameOriginalLineNumber,fugitiveblameOriginalFile skipwhite'
-  endfor
-  call s:RehighlightBlame()
-endfunction
-
-function! s:RehighlightBlame() abort
-  for [hash, cterm] in items(s:hash_colors)
-    if !empty(cterm) || has('gui_running') || has('termguicolors') && &termguicolors
-      exe 'hi FugitiveblameHash'.hash.' guifg=#'.hash.get(s:hash_colors, hash, '')
-    else
-      exe 'hi link FugitiveblameHash'.hash.' Identifier'
-    endif
-  endfor
-endfunction
-
-" Section: Gbrowse
-
-call s:command("-bar -bang -range=0 -nargs=* -complete=customlist,s:EditComplete Gbrowse :execute s:Browse(<bang>0,<line1>,<count>,<f-args>)")
-
-let s:redirects = {}
-
-function! s:Browse(bang,line1,count,...) abort
-  try
-    let validremote = '\.\|\.\=/.*\|[[:alnum:]_-]\+\%(://.\{-\}\)\='
-    if a:0
-      let remote = matchstr(join(a:000, ' '),'@\zs\%('.validremote.'\)$')
-      let rev = substitute(join(a:000, ' '),'@\%('.validremote.'\)$','','')
-    else
-      let remote = ''
-      let rev = ''
-    endif
-    if rev ==# ''
-      let expanded = s:buffer().rev()
-    elseif rev ==# ':'
-      let expanded = s:buffer().path('/')
-    else
-      let expanded = s:buffer().expand(rev)
-    endif
-    let full = s:repo().translate(expanded)
-    let commit = ''
-    if full =~# '^fugitive://'
-      let commit = matchstr(full,'://.*//\zs\w\w\+')
-      let path = matchstr(full,'://.*//\w\+\zs/.*')
-      if commit =~ '..'
-        let type = s:repo().git_chomp('cat-file','-t',commit.s:sub(path,'^/',':'))
-        let branch = matchstr(expanded, '^[^:]*')
-      else
-        let type = 'blob'
-      endif
-      let path = path[1:-1]
-    elseif s:repo().bare()
-      let path = '.git/' . full[strlen(s:repo().dir())+1:-1]
-      let type = ''
-    else
-      let path = full[strlen(s:repo().tree())+1:-1]
-      if path =~# '^\.git/'
-        let type = ''
-      elseif isdirectory(full)
-        let type = 'tree'
-      else
-        let type = 'blob'
-      endif
-    endif
-    if type ==# 'tree' && !empty(path)
-      let path = s:sub(path, '/\=$', '/')
-    endif
-    if path =~# '^\.git/.*HEAD' && filereadable(s:repo().dir(path[5:-1]))
-      let body = readfile(s:repo().dir(path[5:-1]))[0]
-      if body =~# '^\x\{40\}$'
-        let commit = body
-        let type = 'commit'
-        let path = ''
-      elseif body =~# '^ref: refs/'
-        let path = '.git/' . matchstr(body,'ref: \zs.*')
-      endif
-    endif
-
-    let merge = ''
-    if path =~# '^\.git/refs/remotes/.'
-      if empty(remote)
-        let remote = matchstr(path, '^\.git/refs/remotes/\zs[^/]\+')
-        let branch = matchstr(path, '^\.git/refs/remotes/[^/]\+/\zs.\+')
-      else
-        let merge = matchstr(path, '^\.git/refs/remotes/[^/]\+/\zs.\+')
-        let path = '.git/refs/heads/'.merge
-      endif
-    elseif path =~# '^\.git/refs/heads/.'
-      let branch = path[16:-1]
-    elseif !exists('branch')
-      let branch = s:repo().head()
-    endif
-    if !empty(branch)
-      let r = s:repo().git_chomp('config','branch.'.branch.'.remote')
-      let m = s:repo().git_chomp('config','branch.'.branch.'.merge')[11:-1]
-      if r ==# '.' && !empty(m)
-        let r2 = s:repo().git_chomp('config','branch.'.m.'.remote')
-        if r2 !~# '^\.\=$'
-          let r = r2
-          let m = s:repo().git_chomp('config','branch.'.m.'.merge')[11:-1]
-        endif
-      endif
-      if empty(remote)
-        let remote = r
-      endif
-      if r ==# '.' || r ==# remote
-        let merge = m
-        if path =~# '^\.git/refs/heads/.'
-          let path = '.git/refs/heads/'.merge
-        endif
-      endif
-    endif
-
-    if empty(commit) && path !~# '^\.git/'
-      if a:line1 && !a:count && !empty(merge)
-        let commit = merge
-      else
-        let commit = s:repo().rev_parse('HEAD')
-      endif
-    endif
-
-    if empty(remote)
-      let remote = '.'
-      let remote_for_url = 'origin'
-    else
-      let remote_for_url = remote
-    endif
-    if fugitive#git_version() =~# '^[01]\.\|^2\.[0-6]\.'
-      let raw = s:repo().git_chomp('config','remote.'.remote_for_url.'.url')
-    else
-      let raw = s:repo().git_chomp('remote','get-url',remote_for_url)
-    endif
-    if raw ==# ''
-      let raw = remote
-    endif
-
-    if raw =~# '^https\=://' && s:executable('curl')
-      if !has_key(s:redirects, raw)
-        let s:redirects[raw] = matchstr(system('curl -I ' .
-              \ s:shellesc(raw . '/info/refs?service=git-upload-pack')),
-              \ 'Location: \zs\S\+\ze/info/refs?')
-      endif
-      if len(s:redirects[raw])
-        let raw = s:redirects[raw]
-      endif
-    endif
-
-    for Handler in g:fugitive_browse_handlers
-      let url = call(Handler, [{
-            \ 'repo': s:repo(),
-            \ 'remote': raw,
-            \ 'revision': 'No longer provided',
-            \ 'commit': commit,
-            \ 'path': path,
-            \ 'type': type,
-            \ 'line1': a:count > 0 ? a:line1 : 0,
-            \ 'line2': a:count > 0 ? a:count : 0}])
-      if !empty(url)
-        break
-      endif
-    endfor
-
-    if empty(url) && raw ==# '.'
-      call s:throw("Instaweb failed to start")
-    elseif empty(url)
-      call s:throw("'".remote."' is not a supported remote")
-    endif
-
-    let url = s:gsub(url, '[ <>]', '\="%".printf("%02X",char2nr(submatch(0)))')
-    if a:bang
-      if has('clipboard')
-        let @+ = url
-      endif
-      return 'echomsg '.string(url)
-    elseif exists(':Browse') == 2
-      return 'echomsg '.string(url).'|Browse '.url
-    else
-      if !exists('g:loaded_netrw')
-        runtime! autoload/netrw.vim
-      endif
-      if exists('*netrw#BrowseX')
-        return 'echomsg '.string(url).'|call netrw#BrowseX('.string(url).', 0)'
-      else
-        return 'echomsg '.string(url).'|call netrw#NetrwBrowseX('.string(url).', 0)'
-      endif
-    endif
-  catch /^fugitive:/
-    return 'echoerr v:errmsg'
-  endtry
-endfunction
-
-function! s:github_url(opts, ...) abort
-  if a:0 || type(a:opts) != type({})
-    return ''
-  endif
-  let domain_pattern = 'github\.com'
-  let domains = exists('g:fugitive_github_domains') ? g:fugitive_github_domains : []
-  for domain in domains
-    let domain_pattern .= '\|' . escape(split(domain, '://')[-1], '.')
-  endfor
-  let repo = matchstr(get(a:opts, 'remote'), '^\%(https\=://\|git://\|git@\)\=\zs\('.domain_pattern.'\)[/:].\{-\}\ze\%(\.git\)\=$')
-  if repo ==# ''
-    return ''
-  endif
-  call s:warn('Install rhubarb.vim for GitHub support')
-  return 'https://github.com/tpope/vim-rhubarb'
-endfunction
-
-function! s:instaweb_url(opts) abort
-  if a:opts.remote !=# '.'
-    return ''
-  endif
-  let output = a:opts.repo.git_chomp('instaweb','-b','unknown')
-  if output =~# 'http://'
-    let root = matchstr(output,'http://.*').'/?p='.fnamemodify(a:opts.repo.dir(),':t')
-  else
-    return ''
-  endif
-  if a:opts.path =~# '^\.git/refs/.'
-    return root . ';a=shortlog;h=' . matchstr(a:opts.path,'^\.git/\zs.*')
-  elseif a:opts.path =~# '^\.git\>'
-    return root
-  endif
-  let url = root
-  if a:opts.commit =~# '^\x\{40\}$'
-    if a:opts.type ==# 'commit'
-      let url .= ';a=commit'
-    endif
-    let url .= ';h=' . a:opts.repo.rev_parse(a:opts.commit . (a:opts.path == '' ? '' : ':' . a:opts.path))
-  else
-    if a:opts.type ==# 'blob' && empty(a:opts.commit)
-      let url .= ';h='.a:opts.repo.git_chomp('hash-object', '-w', a:opts.path)
-    else
-      try
-        let url .= ';h=' . a:opts.repo.rev_parse((a:opts.commit == '' ? 'HEAD' : ':' . a:opts.commit) . ':' . a:opts.path)
-      catch /^fugitive:/
-        call s:throw('fugitive: cannot browse uncommitted file')
-      endtry
-    endif
-    let root .= ';hb=' . matchstr(a:opts.repo.head_ref(),'[^ ]\+$')
-  endif
-  if a:opts.path !=# ''
-    let url .= ';f=' . a:opts.path
-  endif
-  if get(a:opts, 'line1')
-    let url .= '#l' . a:opts.line1
-  endif
-  return url
-endfunction
-
-if !exists('g:fugitive_browse_handlers')
-  let g:fugitive_browse_handlers = []
-endif
-
-call extend(g:fugitive_browse_handlers,
-      \ [s:function('s:github_url'), s:function('s:instaweb_url')])
-
-" Section: File access
-
-function! s:ReplaceCmd(cmd,...) abort
-  let fn = expand('%:p')
-  let tmp = tempname()
-  let prefix = ''
-  try
-    if a:0 && a:1 != ''
-      if s:winshell()
-        let old_index = $GIT_INDEX_FILE
-        let $GIT_INDEX_FILE = a:1
-      else
-        let prefix = 'env GIT_INDEX_FILE='.s:shellesc(a:1).' '
-      endif
-    endif
-    let redir = ' > '.tmp
-    if &shellpipe =~ '2>&1'
-      let redir .= ' 2>&1'
-    endif
-    if s:winshell()
-      let cmd_escape_char = &shellxquote == '(' ?  '^' : '^^^'
-      call system('cmd /c "'.prefix.s:gsub(a:cmd,'[<>]', cmd_escape_char.'&').redir.'"')
-    elseif &shell =~# 'fish'
-      call system(' begin;'.prefix.a:cmd.redir.';end ')
-    else
-      call system(' ('.prefix.a:cmd.redir.') ')
-    endif
-  finally
-    if exists('old_index')
-      let $GIT_INDEX_FILE = old_index
-    endif
-  endtry
-  silent exe 'keepalt file '.tmp
-  try
-    silent edit!
-  finally
-    try
-      silent exe 'keepalt file '.s:fnameescape(fn)
-    catch /^Vim\%((\a\+)\)\=:E302/
-    endtry
-    call delete(tmp)
-    if fnamemodify(bufname('$'), ':p') ==# tmp
-      silent execute 'bwipeout '.bufnr('$')
-    endif
-    silent exe 'doau BufReadPost '.s:fnameescape(fn)
-  endtry
-endfunction
-
-function! s:BufReadIndex() abort
-  if !exists('b:fugitive_display_format')
-    let b:fugitive_display_format = filereadable(expand('%').'.lock')
-  endif
-  let b:fugitive_display_format = b:fugitive_display_format % 2
-  let b:fugitive_type = 'index'
-  try
-    let b:git_dir = s:repo().dir()
-    setlocal noro ma nomodeline
-    if fnamemodify($GIT_INDEX_FILE !=# '' ? $GIT_INDEX_FILE : b:git_dir . '/index', ':p') ==# expand('%:p')
-      let index = ''
-    else
-      let index = expand('%:p')
-    endif
-    if b:fugitive_display_format
-      call s:ReplaceCmd(s:repo().git_command('ls-files','--stage'),index)
-      set ft=git nospell
-    else
-      let cd = exists('*haslocaldir') && haslocaldir() ? 'lcd' : 'cd'
-      let dir = getcwd()
-      if fugitive#git_version() =~# '^0\|^1\.[1-7]\.'
-        let cmd = s:repo().git_command('status')
-      else
-        let cmd = s:repo().git_command(
-              \ '-c', 'status.displayCommentPrefix=true',
-              \ '-c', 'color.status=false',
-              \ '-c', 'status.short=false',
-              \ 'status')
-      endif
-      try
-        execute cd s:fnameescape(s:repo().tree())
-        call s:ReplaceCmd(cmd, index)
-      finally
-        execute cd s:fnameescape(dir)
-      endtry
-      set ft=gitcommit
-      set foldtext=fugitive#foldtext()
-    endif
-    setlocal ro noma nomod noswapfile
-    if &bufhidden ==# ''
-      setlocal bufhidden=delete
-    endif
-    call s:JumpInit()
-    nunmap   <buffer>          P
-    nunmap   <buffer>          ~
-    nnoremap <buffer> <silent> <C-N> :<C-U>execute <SID>StageNext(v:count1)<CR>
-    nnoremap <buffer> <silent> <C-P> :<C-U>execute <SID>StagePrevious(v:count1)<CR>
-    nnoremap <buffer> <silent> - :<C-U>silent execute <SID>StageToggle(line('.'),line('.')+v:count1-1)<CR>
-    xnoremap <buffer> <silent> - :<C-U>silent execute <SID>StageToggle(line("'<"),line("'>"))<CR>
-    nnoremap <buffer> <silent> a :<C-U>let b:fugitive_display_format += 1<Bar>exe <SID>BufReadIndex()<CR>
-    nnoremap <buffer> <silent> i :<C-U>let b:fugitive_display_format -= 1<Bar>exe <SID>BufReadIndex()<CR>
-    nnoremap <buffer> <silent> C :<C-U>Gcommit<CR>
-    nnoremap <buffer> <silent> cA :<C-U>Gcommit --amend --reuse-message=HEAD<CR>
-    nnoremap <buffer> <silent> ca :<C-U>Gcommit --amend<CR>
-    nnoremap <buffer> <silent> cc :<C-U>Gcommit<CR>
-    nnoremap <buffer> <silent> cva :<C-U>Gcommit --amend --verbose<CR>
-    nnoremap <buffer> <silent> cvc :<C-U>Gcommit --verbose<CR>
-    nnoremap <buffer> <silent> D :<C-U>execute <SID>StageDiff('Gdiff')<CR>
-    nnoremap <buffer> <silent> dd :<C-U>execute <SID>StageDiff('Gdiff')<CR>
-    nnoremap <buffer> <silent> dh :<C-U>execute <SID>StageDiff('Gsdiff')<CR>
-    nnoremap <buffer> <silent> ds :<C-U>execute <SID>StageDiff('Gsdiff')<CR>
-    nnoremap <buffer> <silent> dp :<C-U>execute <SID>StageDiffEdit()<CR>
-    nnoremap <buffer> <silent> dv :<C-U>execute <SID>StageDiff('Gvdiff')<CR>
-    nnoremap <buffer> <silent> p :<C-U>execute <SID>StagePatch(line('.'),line('.')+v:count1-1)<CR>
-    xnoremap <buffer> <silent> p :<C-U>execute <SID>StagePatch(line("'<"),line("'>"))<CR>
-    nnoremap <buffer> <silent> P :<C-U>execute <SID>StagePatch(line('.'),line('.')+v:count1-1)<CR>
-    xnoremap <buffer> <silent> P :<C-U>execute <SID>StagePatch(line("'<"),line("'>"))<CR>
-    nnoremap <buffer> <silent> q :<C-U>if bufnr('$') == 1<Bar>quit<Bar>else<Bar>bdelete<Bar>endif<CR>
-    nnoremap <buffer> <silent> r :<C-U>edit<CR>
-    nnoremap <buffer> <silent> R :<C-U>edit<CR>
-    nnoremap <buffer> <silent> U :<C-U>execute <SID>StageUndo()<CR>
-    nnoremap <buffer> <silent> g?   :help fugitive-:Gstatus<CR>
-    nnoremap <buffer> <silent> <F1> :help fugitive-:Gstatus<CR>
-  catch /^fugitive:/
-    return 'echoerr v:errmsg'
-  endtry
-endfunction
-
-function! s:FileRead() abort
-  try
-    let repo = s:repo(fugitive#extract_git_dir(expand('<amatch>')))
-    let path = s:sub(s:sub(matchstr(expand('<amatch>'),'fugitive://.\{-\}//\zs.*'),'/',':'),'^\d:',':&')
-    let hash = repo.rev_parse(path)
-    if path =~ '^:'
-      let type = 'blob'
-    else
-      let type = repo.git_chomp('cat-file','-t',hash)
-    endif
-    " TODO: use count, if possible
-    return "read !".escape(repo.git_command('cat-file',type,hash),'%#\')
-  catch /^fugitive:/
-    return 'echoerr v:errmsg'
-  endtry
-endfunction
-
-function! s:BufReadIndexFile() abort
-  try
-    let b:fugitive_type = 'blob'
-    let b:git_dir = s:repo().dir()
-    try
-      call s:ReplaceCmd(s:repo().git_command('cat-file','blob',s:buffer().sha1()))
-    finally
-      if &bufhidden ==# ''
-        setlocal bufhidden=delete
-      endif
-      setlocal noswapfile
-    endtry
-    return ''
-  catch /^fugitive: rev-parse/
-    silent exe 'doau BufNewFile '.s:fnameescape(expand('%:p'))
-    return ''
-  catch /^fugitive:/
-    return 'echoerr v:errmsg'
-  endtry
-endfunction
-
-function! s:BufWriteIndexFile() abort
-  let tmp = tempname()
-  try
-    let path = matchstr(expand('<amatch>'),'//\d/\zs.*')
-    let stage = matchstr(expand('<amatch>'),'//\zs\d')
-    silent execute 'write !'.s:repo().git_command('hash-object','-w','--stdin').' > '.tmp
-    let sha1 = readfile(tmp)[0]
-    let old_mode = matchstr(s:repo().git_chomp('ls-files','--stage',path),'^\d\+')
-    if old_mode == ''
-      let old_mode = executable(s:repo().tree(path)) ? '100755' : '100644'
-    endif
-    let info = old_mode.' '.sha1.' '.stage."\t".path
-    call writefile([info],tmp)
-    if s:winshell()
-      let error = system('type '.s:gsub(tmp,'/','\\').'|'.s:repo().git_command('update-index','--index-info'))
-    else
-      let error = system(s:repo().git_command('update-index','--index-info').' < '.tmp)
-    endif
-    if v:shell_error == 0
-      setlocal nomodified
-      if exists('#BufWritePost')
-        execute 'doautocmd BufWritePost '.s:fnameescape(expand('%:p'))
-      endif
-      call fugitive#reload_status()
-      return ''
-    else
-      return 'echoerr '.string('fugitive: '.error)
-    endif
-  finally
-    call delete(tmp)
-  endtry
-endfunction
-
-function! s:BufReadObject() abort
-  try
-    setlocal noro ma
-    let b:git_dir = s:repo().dir()
-    let hash = s:buffer().sha1()
-    if !exists("b:fugitive_type")
-      let b:fugitive_type = s:repo().git_chomp('cat-file','-t',hash)
-    endif
-    if b:fugitive_type !~# '^\%(tag\|commit\|tree\|blob\)$'
-      return "echoerr ".string("fugitive: unrecognized git type '".b:fugitive_type."'")
-    endif
-    let firstline = getline('.')
-    if !exists('b:fugitive_display_format') && b:fugitive_type != 'blob'
-      let b:fugitive_display_format = +getbufvar('#','fugitive_display_format')
-    endif
-
-    if b:fugitive_type !=# 'blob'
-      setlocal nomodeline
-    endif
-
-    let pos = getpos('.')
-    silent keepjumps %delete_
-    setlocal endofline
-
-    try
-      if b:fugitive_type ==# 'tree'
-        let b:fugitive_display_format = b:fugitive_display_format % 2
-        if b:fugitive_display_format
-          call s:ReplaceCmd(s:repo().git_command('ls-tree',hash))
-        else
-          call s:ReplaceCmd(s:repo().git_command('show','--no-color',hash))
-        endif
-      elseif b:fugitive_type ==# 'tag'
-        let b:fugitive_display_format = b:fugitive_display_format % 2
-        if b:fugitive_display_format
-          call s:ReplaceCmd(s:repo().git_command('cat-file',b:fugitive_type,hash))
-        else
-          call s:ReplaceCmd(s:repo().git_command('cat-file','-p',hash))
-        endif
-      elseif b:fugitive_type ==# 'commit'
-        let b:fugitive_display_format = b:fugitive_display_format % 2
-        if b:fugitive_display_format
-          call s:ReplaceCmd(s:repo().git_command('cat-file',b:fugitive_type,hash))
-        else
-          call s:ReplaceCmd(s:repo().git_command('show','--no-color','--pretty=format:tree%x20%T%nparent%x20%P%nauthor%x20%an%x20<%ae>%x20%ad%ncommitter%x20%cn%x20<%ce>%x20%cd%nencoding%x20%e%n%n%s%n%n%b',hash))
-          keepjumps call search('^parent ')
-          if getline('.') ==# 'parent '
-            silent keepjumps delete_
-          else
-            silent keepjumps s/\%(^parent\)\@<! /\rparent /ge
-          endif
-          keepjumps let lnum = search('^encoding \%(<unknown>\)\=$','W',line('.')+3)
-          if lnum
-            silent keepjumps delete_
-          end
-          keepjumps 1
-        endif
-      elseif b:fugitive_type ==# 'blob'
-        call s:ReplaceCmd(s:repo().git_command('cat-file',b:fugitive_type,hash))
-        setlocal nomodeline
-      endif
-    finally
-      keepjumps call setpos('.',pos)
-      setlocal ro noma nomod noswapfile
-      if &bufhidden ==# ''
-        setlocal bufhidden=delete
-      endif
-      if b:fugitive_type !=# 'blob'
-        setlocal filetype=git foldmethod=syntax
-        nnoremap <buffer> <silent> a :<C-U>let b:fugitive_display_format += v:count1<Bar>exe <SID>BufReadObject()<CR>
-        nnoremap <buffer> <silent> i :<C-U>let b:fugitive_display_format -= v:count1<Bar>exe <SID>BufReadObject()<CR>
-      else
-        call s:JumpInit()
-      endif
-    endtry
-
-    return ''
-  catch /^fugitive:/
-    return 'echoerr v:errmsg'
-  endtry
-endfunction
-
-augroup fugitive_files
-  autocmd!
-  autocmd BufReadCmd  index{,.lock}
-        \ if fugitive#is_git_dir(expand('<amatch>:p:h')) |
-        \   exe s:BufReadIndex() |
-        \ elseif filereadable(expand('<amatch>')) |
-        \   read <amatch> |
-        \   1delete |
-        \ endif
-  autocmd FileReadCmd fugitive://**//[0-3]/**          exe s:FileRead()
-  autocmd BufReadCmd  fugitive://**//[0-3]/**          exe s:BufReadIndexFile()
-  autocmd BufWriteCmd fugitive://**//[0-3]/**          exe s:BufWriteIndexFile()
-  autocmd BufReadCmd  fugitive://**//[0-9a-f][0-9a-f]* exe s:BufReadObject()
-  autocmd FileReadCmd fugitive://**//[0-9a-f][0-9a-f]* exe s:FileRead()
-  autocmd FileType git
-        \ if exists('b:git_dir') |
-        \  call s:JumpInit() |
-        \ endif
-  autocmd FileType git,gitcommit,gitrebase
-        \ if exists('b:git_dir') |
-        \   call s:GFInit() |
-        \ endif
-augroup END
-
-" Section: Temp files
-
-if !exists('s:temp_files')
-  let s:temp_files = {}
-endif
-
-augroup fugitive_temp
-  autocmd!
-  autocmd BufNewFile,BufReadPost *
-        \ if has_key(s:temp_files,s:cpath(expand('<afile>:p'))) |
-        \   let b:git_dir = s:temp_files[s:cpath(expand('<afile>:p'))].dir |
-        \   let b:git_type = 'temp' |
-        \   let b:git_args = s:temp_files[s:cpath(expand('<afile>:p'))].args |
-        \   call fugitive#detect(expand('<afile>:p')) |
-        \   setlocal bufhidden=delete nobuflisted |
-        \   nnoremap <buffer> <silent> q    :<C-U>bdelete<CR>|
-        \ endif
-augroup END
-
-" Section: Go to file
-
-nnoremap <SID>: :<C-U><C-R>=v:count ? v:count : ''<CR>
-function! s:GFInit(...) abort
-  cnoremap <buffer> <expr> <Plug><cfile> fugitive#cfile()
-  if !exists('g:fugitive_no_maps') && empty(mapcheck('gf', 'n'))
-    nmap <buffer> <silent> gf          <SID>:find <Plug><cfile><CR>
-    nmap <buffer> <silent> <C-W>f     <SID>:sfind <Plug><cfile><CR>
-    nmap <buffer> <silent> <C-W><C-F> <SID>:sfind <Plug><cfile><CR>
-    nmap <buffer> <silent> <C-W>gf  <SID>:tabfind <Plug><cfile><CR>
-  endif
-endfunction
-
-function! s:JumpInit(...) abort
-  nnoremap <buffer> <silent> <CR>    :<C-U>exe <SID>GF("edit")<CR>
-  if !&modifiable
-    nnoremap <buffer> <silent> o     :<C-U>exe <SID>GF("split")<CR>
-    nnoremap <buffer> <silent> S     :<C-U>exe <SID>GF("vsplit")<CR>
-    nnoremap <buffer> <silent> O     :<C-U>exe <SID>GF("tabedit")<CR>
-    nnoremap <buffer> <silent> -     :<C-U>exe <SID>Edit('edit',0,<SID>buffer().up(v:count1))<Bar> if fugitive#buffer().type('tree')<Bar>call search('^'.escape(expand('#:t'),'.*[]~\').'/\=$','wc')<Bar>endif<CR>
-    nnoremap <buffer> <silent> P     :<C-U>exe <SID>Edit('edit',0,<SID>buffer().commit().'^'.v:count1.<SID>buffer().path(':'))<CR>
-    nnoremap <buffer> <silent> ~     :<C-U>exe <SID>Edit('edit',0,<SID>buffer().commit().'~'.v:count1.<SID>buffer().path(':'))<CR>
-    nnoremap <buffer> <silent> C     :<C-U>exe <SID>Edit('edit',0,<SID>buffer().containing_commit())<CR>
-    nnoremap <buffer> <silent> cc    :<C-U>exe <SID>Edit('edit',0,<SID>buffer().containing_commit())<CR>
-    nnoremap <buffer> <silent> co    :<C-U>exe <SID>Edit('split',0,<SID>buffer().containing_commit())<CR>
-    nnoremap <buffer> <silent> cS    :<C-U>exe <SID>Edit('vsplit',0,<SID>buffer().containing_commit())<CR>
-    nnoremap <buffer> <silent> cO    :<C-U>exe <SID>Edit('tabedit',0,<SID>buffer().containing_commit())<CR>
-    nnoremap <buffer> <silent> cP    :<C-U>exe <SID>Edit('pedit',0,<SID>buffer().containing_commit())<CR>
-    nnoremap <buffer>          .     : <C-R>=fnameescape(<SID>recall())<CR><Home>
-  endif
-endfunction
-
-function! s:cfile() abort
-  try
-    let buffer = s:buffer()
-    let myhash = buffer.sha1()
-    if myhash ==# '' && getline(1) =~# '^\%(commit\|tag\) \w'
-      let myhash = matchstr(getline(1),'^\w\+ \zs\S\+')
-    endif
-
-    if buffer.type('tree')
-      let showtree = (getline(1) =~# '^tree ' && getline(2) == "")
-      if showtree && line('.') > 2
-        return [buffer.commit().':'.s:buffer().path().(buffer.path() =~# '^$\|/$' ? '' : '/').s:sub(getline('.'),'/$','')]
-      elseif getline('.') =~# '^\d\{6\} \l\{3,8\} \x\{40\}\t'
-        return [buffer.commit().':'.s:buffer().path().(buffer.path() =~# '^$\|/$' ? '' : '/').s:sub(matchstr(getline('.'),'\t\zs.*'),'/$','')]
-      endif
-
-    elseif buffer.type('blob')
-      let ref = expand("<cfile>")
-      try
-        let sha1 = buffer.repo().rev_parse(ref)
-      catch /^fugitive:/
-      endtry
-      if exists('sha1')
-        return [ref]
-      endif
-
-    else
-
-      let dcmds = []
-
-      " Index
-      if getline('.') =~# '^\d\{6\} \x\{40\} \d\t'
-        let ref = matchstr(getline('.'),'\x\{40\}')
-        let file = ':'.s:sub(matchstr(getline('.'),'\d\t.*'),'\t',':')
-        return [file]
-
-      elseif getline('.') =~# '^#\trenamed:.* -> '
-        let file = '/'.matchstr(getline('.'),' -> \zs.*')
-        return [file]
-      elseif getline('.') =~# '^#\t\(\k\| \)\+\p\?: *.'
-        let file = '/'.matchstr(getline('.'),': *\zs.\{-\}\ze\%( ([^()[:digit:]]\+)\)\=$')
-        return [file]
-      elseif getline('.') =~# '^#\t.'
-        let file = '/'.matchstr(getline('.'),'#\t\zs.*')
-        return [file]
-      elseif getline('.') =~# ': needs merge$'
-        let file = '/'.matchstr(getline('.'),'.*\ze: needs merge$')
-        return [file, 'Gdiff!']
-
-      elseif getline('.') ==# '# Not currently on any branch.'
-        return ['HEAD']
-      elseif getline('.') =~# '^# On branch '
-        let file = 'refs/heads/'.getline('.')[12:]
-        return [file]
-      elseif getline('.') =~# "^# Your branch .*'"
-        let file = matchstr(getline('.'),"'\\zs\\S\\+\\ze'")
-        return [file]
-      endif
-
-      let showtree = (getline(1) =~# '^tree ' && getline(2) == "")
-
-      if getline('.') =~# '^ref: '
-        let ref = strpart(getline('.'),5)
-
-      elseif getline('.') =~# '^commit \x\{40\}\>'
-        let ref = matchstr(getline('.'),'\x\{40\}')
-        return [ref]
-
-      elseif getline('.') =~# '^parent \x\{40\}\>'
-        let ref = matchstr(getline('.'),'\x\{40\}')
-        let line = line('.')
-        let parent = 0
-        while getline(line) =~# '^parent '
-          let parent += 1
-          let line -= 1
-        endwhile
-        return [ref]
-
-      elseif getline('.') =~ '^tree \x\{40\}$'
-        let ref = matchstr(getline('.'),'\x\{40\}')
-        if s:repo().rev_parse(myhash.':') == ref
-          let ref = myhash.':'
-        endif
-        return [ref]
-
-      elseif getline('.') =~# '^object \x\{40\}$' && getline(line('.')+1) =~ '^type \%(commit\|tree\|blob\)$'
-        let ref = matchstr(getline('.'),'\x\{40\}')
-        let type = matchstr(getline(line('.')+1),'type \zs.*')
-
-      elseif getline('.') =~# '^\l\{3,8\} '.myhash.'$'
-        let ref = buffer.rev()
-
-      elseif getline('.') =~# '^\l\{3,8\} \x\{40\}\>'
-        let ref = matchstr(getline('.'),'\x\{40\}')
-        echoerr "warning: unknown context ".matchstr(getline('.'),'^\l*')
-
-      elseif getline('.') =~# '^[+-]\{3\} [abciow12]\=/'
-        let ref = getline('.')[4:]
-
-      elseif getline('.') =~# '^[+-]' && search('^@@ -\d\+,\d\+ +\d\+,','bnW')
-        let type = getline('.')[0]
-        let lnum = line('.') - 1
-        let offset = 0
-        while getline(lnum) !~# '^@@ -\d\+,\d\+ +\d\+,'
-          if getline(lnum) =~# '^[ '.type.']'
-            let offset += 1
-          endif
-          let lnum -= 1
-        endwhile
-        let offset += matchstr(getline(lnum), type.'\zs\d\+')
-        let ref = getline(search('^'.type.'\{3\} [abciow12]/','bnW'))[4:-1]
-        let dcmds = [offset, 'normal!zv']
-
-      elseif getline('.') =~# '^rename from '
-        let ref = 'a/'.getline('.')[12:]
-      elseif getline('.') =~# '^rename to '
-        let ref = 'b/'.getline('.')[10:]
-
-      elseif getline('.') =~# '^@@ -\d\+,\d\+ +\d\+,'
-        let diff = getline(search('^diff --git \%([abciow12]/.*\|/dev/null\) \%([abciow12]/.*\|/dev/null\)', 'bcnW'))
-        let offset = matchstr(getline('.'), '+\zs\d\+')
-
-        let dref = matchstr(diff, '\Cdiff --git \zs\%([abciow12]/.*\|/dev/null\)\ze \%([abciow12]/.*\|/dev/null\)')
-        let ref = matchstr(diff, '\Cdiff --git \%([abciow12]/.*\|/dev/null\) \zs\%([abciow12]/.*\|/dev/null\)')
-        let dcmd = 'Gdiff! +'.offset
-
-      elseif getline('.') =~# '^diff --git \%([abciow12]/.*\|/dev/null\) \%([abciow12]/.*\|/dev/null\)'
-        let dref = matchstr(getline('.'),'\Cdiff --git \zs\%([abciow12]/.*\|/dev/null\)\ze \%([abciow12]/.*\|/dev/null\)')
-        let ref = matchstr(getline('.'),'\Cdiff --git \%([abciow12]/.*\|/dev/null\) \zs\%([abciow12]/.*\|/dev/null\)')
-        let dcmd = 'Gdiff!'
-
-      elseif getline('.') =~# '^index ' && getline(line('.')-1) =~# '^diff --git \%([abciow12]/.*\|/dev/null\) \%([abciow12]/.*\|/dev/null\)'
-        let line = getline(line('.')-1)
-        let dref = matchstr(line,'\Cdiff --git \zs\%([abciow12]/.*\|/dev/null\)\ze \%([abciow12]/.*\|/dev/null\)')
-        let ref = matchstr(line,'\Cdiff --git \%([abciow12]/.*\|/dev/null\) \zs\%([abciow12]/.*\|/dev/null\)')
-        let dcmd = 'Gdiff!'
-
-      elseif line('$') == 1 && getline('.') =~ '^\x\{40\}$'
-        let ref = getline('.')
-
-      elseif expand('<cword>') =~# '^\x\{7,40\}\>'
-        return [expand('<cword>')]
-
-      else
-        let ref = ''
-      endif
-
-      let prefixes = {
-            \ '1': '',
-            \ '2': '',
-            \ 'b': ':0:',
-            \ 'i': ':0:',
-            \ 'o': '',
-            \ 'w': ''}
-
-      if len(myhash)
-        let prefixes.a = myhash.'^:'
-        let prefixes.b = myhash.':'
-      endif
-      let ref = substitute(ref, '^\(\w\)/', '\=get(prefixes, submatch(1), "HEAD:")', '')
-      if exists('dref')
-        let dref = substitute(dref, '^\(\w\)/', '\=get(prefixes, submatch(1), "HEAD:")', '')
-      endif
-
-      if ref ==# '/dev/null'
-        " Empty blob
-        let ref = 'e69de29bb2d1d6434b8b29ae775ad8c2e48c5391'
-      endif
-
-      if exists('dref')
-        return [ref, dcmd . ' ' . s:fnameescape(dref)] + dcmds
-      elseif ref != ""
-        return [ref] + dcmds
-      endif
-
-    endif
-    return []
-  endtry
-endfunction
-
-function! s:GF(mode) abort
-  try
-    let results = s:cfile()
-  catch /^fugitive:/
-    return 'echoerr v:errmsg'
-  endtry
-  if len(results)
-    return s:Edit(a:mode, 0, results[0]).join(map(results[1:-1], '"|".v:val'), '')
-  else
-    return ''
-  endif
-endfunction
-
-function! fugitive#cfile() abort
-  let pre = ''
-  let results = s:cfile()
-  if empty(results)
-    let cfile = expand('<cfile>')
-    if &includeexpr =~# '\<v:fname\>'
-      sandbox let cfile = eval(substitute(&includeexpr, '\C\<v:fname\>', '\=string(cfile)', 'g'))
-    endif
-    return cfile
-  elseif len(results) > 1
-    let pre = '+' . join(map(results[1:-1], 'escape(v:val, " ")'), '\|') . ' '
-  endif
-  return pre . s:fnameescape(fugitive#repo().translate(results[0]))
-endfunction
-
-" Section: Statusline
-
-function! s:repo_head_ref() dict abort
-  if !filereadable(self.dir('HEAD'))
-    return ''
-  endif
-  return readfile(self.dir('HEAD'))[0]
-endfunction
-
-call s:add_methods('repo',['head_ref'])
-
-function! fugitive#statusline(...) abort
-  if !exists('b:git_dir')
-    return ''
-  endif
-  let status = ''
-  if s:buffer().commit() != ''
-    let status .= ':' . s:buffer().commit()[0:7]
-  endif
-  let status .= '('.fugitive#head(7).')'
-  if &statusline =~# '%[MRHWY]' && &statusline !~# '%[mrhwy]'
-    return ',GIT'.status
-  else
-    return '[Git'.status.']'
-  endif
-endfunction
-
-function! fugitive#head(...) abort
-  if !exists('b:git_dir')
-    return ''
-  endif
-
-  return s:repo().head(a:0 ? a:1 : 0)
-endfunction
-
-augroup fugitive_statusline
-  autocmd!
-  autocmd User Flags call Hoist('buffer', function('fugitive#statusline'))
-augroup END
-
-" Section: Folding
-
-function! fugitive#foldtext() abort
-  if &foldmethod !=# 'syntax'
-    return foldtext()
-  elseif getline(v:foldstart) =~# '^diff '
-    let [add, remove] = [-1, -1]
-    let filename = ''
-    for lnum in range(v:foldstart, v:foldend)
-      if filename ==# '' && getline(lnum) =~# '^[+-]\{3\} [abciow12]/'
-        let filename = getline(lnum)[6:-1]
-      endif
-      if getline(lnum) =~# '^+'
-        let add += 1
-      elseif getline(lnum) =~# '^-'
-        let remove += 1
-      elseif getline(lnum) =~# '^Binary '
-        let binary = 1
-      endif
-    endfor
-    if filename ==# ''
-      let filename = matchstr(getline(v:foldstart), '^diff .\{-\} [abciow12]/\zs.*\ze [abciow12]/')
-    endif
-    if filename ==# ''
-      let filename = getline(v:foldstart)[5:-1]
-    endif
-    if exists('binary')
-      return 'Binary: '.filename
-    else
-      return (add<10&&remove<100?' ':'') . add . '+ ' . (remove<10&&add<100?' ':'') . remove . '- ' . filename
-    endif
-  elseif getline(v:foldstart) =~# '^# .*:$'
-    let lines = getline(v:foldstart, v:foldend)
-    call filter(lines, 'v:val =~# "^#\t"')
-    cal map(lines,'s:sub(v:val, "^#\t%(modified: +|renamed: +)=", "")')
-    cal map(lines,'s:sub(v:val, "^([[:alpha:] ]+): +(.*)", "\\2 (\\1)")')
-    return getline(v:foldstart).' '.join(lines, ', ')
-  endif
-  return foldtext()
-endfunction
-
-augroup fugitive_foldtext
-  autocmd!
-  autocmd User Fugitive
-        \ if &filetype =~# '^git\%(commit\)\=$' && &foldtext ==# 'foldtext()' |
-        \    set foldtext=fugitive#foldtext() |
-        \ endif
-augroup END

+ 0 - 672
vim/plugin/syntastic.vim

@@ -1,672 +0,0 @@
-"============================================================================
-"File:        syntastic.vim
-"Description: Vim plugin for on the fly syntax checking.
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_plugin')
-    finish
-endif
-let g:loaded_syntastic_plugin = 1
-
-if has('reltime')
-    let g:_SYNTASTIC_START = reltime()
-    lockvar! g:_SYNTASTIC_START
-endif
-
-let g:_SYNTASTIC_VERSION = '3.6.0-80'
-lockvar g:_SYNTASTIC_VERSION
-
-" Sanity checks {{{1
-
-for s:feature in [
-            \ 'autocmd',
-            \ 'eval',
-            \ 'file_in_path',
-            \ 'modify_fname',
-            \ 'quickfix',
-            \ 'reltime',
-            \ 'user_commands'
-        \ ]
-    if !has(s:feature)
-        call syntastic#log#error('need Vim compiled with feature ' . s:feature)
-        finish
-    endif
-endfor
-
-let s:_running_windows = syntastic#util#isRunningWindows()
-lockvar s:_running_windows
-
-if !exists('g:syntastic_shell')
-    let g:syntastic_shell = &shell
-endif
-
-if s:_running_windows
-    let g:_SYNTASTIC_UNAME = 'Windows'
-elseif executable('uname')
-    try
-        let g:_SYNTASTIC_UNAME = split(syntastic#util#system('uname'), "\n")[0]
-    catch /\m^Vim\%((\a\+)\)\=:E484/
-        call syntastic#log#error("your shell " .  syntastic#util#var('shell') . " can't handle traditional UNIX syntax for redirections")
-        finish
-    catch /\m^Vim\%((\a\+)\)\=:E684/
-        let g:_SYNTASTIC_UNAME = 'Unknown'
-    endtry
-else
-    let g:_SYNTASTIC_UNAME = 'Unknown'
-endif
-lockvar g:_SYNTASTIC_UNAME
-
-" }}}1
-
-" Defaults {{{1
-
-let g:_SYNTASTIC_DEFAULTS = {
-        \ 'aggregate_errors':         0,
-        \ 'always_populate_loc_list': 0,
-        \ 'auto_jump':                0,
-        \ 'auto_loc_list':            2,
-        \ 'check_on_open':            0,
-        \ 'check_on_wq':              1,
-        \ 'cursor_columns':           1,
-        \ 'debug':                    0,
-        \ 'echo_current_error':       1,
-        \ 'enable_balloons':          1,
-        \ 'enable_highlighting':      1,
-        \ 'enable_signs':             1,
-        \ 'error_symbol':             '>>',
-        \ 'exit_checks':              !(s:_running_windows && syntastic#util#var('shell', &shell) =~? '\m\<cmd\.exe$'),
-        \ 'filetype_map':             {},
-        \ 'full_redraws':             !(has('gui_running') || has('gui_macvim')),
-        \ 'id_checkers':              1,
-        \ 'ignore_extensions':        '\c\v^([gx]?z|lzma|bz2)$',
-        \ 'ignore_files':             [],
-        \ 'loc_list_height':          10,
-        \ 'quiet_messages':           {},
-        \ 'reuse_loc_lists':          0,
-        \ 'shell':                    &shell,
-        \ 'sort_aggregated_errors':   1,
-        \ 'stl_format':               '[Syntax: line:%F (%t)]',
-        \ 'style_error_symbol':       'S>',
-        \ 'style_warning_symbol':     'S>',
-        \ 'warning_symbol':           '>>'
-    \ }
-lockvar! g:_SYNTASTIC_DEFAULTS
-
-for s:key in keys(g:_SYNTASTIC_DEFAULTS)
-    if !exists('g:syntastic_' . s:key)
-        let g:syntastic_{s:key} = copy(g:_SYNTASTIC_DEFAULTS[s:key])
-    endif
-endfor
-
-if exists('g:syntastic_quiet_warnings')
-    call syntastic#log#oneTimeWarn("variable g:syntastic_quiet_warnings is deprecated, please use let g:syntastic_quiet_messages = {'level': 'warnings'} instead")
-    if g:syntastic_quiet_warnings
-        let s:quiet_warnings = get(g:syntastic_quiet_messages, 'type', [])
-        if type(s:quiet_warnings) != type([])
-            let s:quiet_warnings = [s:quiet_warnings]
-        endif
-        call add(s:quiet_warnings, 'warnings')
-        let g:syntastic_quiet_messages['type'] = s:quiet_warnings
-    endif
-endif
-
-" }}}1
-
-" Debug {{{1
-
-let s:_DEBUG_DUMP_OPTIONS = [
-        \ 'shell',
-        \ 'shellcmdflag',
-        \ 'shellpipe',
-        \ 'shellquote',
-        \ 'shellredir',
-        \ 'shellslash',
-        \ 'shelltemp',
-        \ 'shellxquote'
-    \ ]
-if v:version > 703 || (v:version == 703 && has('patch446'))
-    call add(s:_DEBUG_DUMP_OPTIONS, 'shellxescape')
-endif
-lockvar! s:_DEBUG_DUMP_OPTIONS
-
-" debug constants
-let     g:_SYNTASTIC_DEBUG_TRACE         = 1
-lockvar g:_SYNTASTIC_DEBUG_TRACE
-let     g:_SYNTASTIC_DEBUG_LOCLIST       = 2
-lockvar g:_SYNTASTIC_DEBUG_LOCLIST
-let     g:_SYNTASTIC_DEBUG_NOTIFICATIONS = 4
-lockvar g:_SYNTASTIC_DEBUG_NOTIFICATIONS
-let     g:_SYNTASTIC_DEBUG_AUTOCOMMANDS  = 8
-lockvar g:_SYNTASTIC_DEBUG_AUTOCOMMANDS
-let     g:_SYNTASTIC_DEBUG_VARIABLES     = 16
-lockvar g:_SYNTASTIC_DEBUG_VARIABLES
-let     g:_SYNTASTIC_DEBUG_CHECKERS      = 32
-lockvar g:_SYNTASTIC_DEBUG_CHECKERS
-
-" }}}1
-
-runtime! plugin/syntastic/*.vim
-
-let s:registry = g:SyntasticRegistry.Instance()
-let s:notifiers = g:SyntasticNotifiers.Instance()
-let s:modemap = g:SyntasticModeMap.Instance()
-
-" Commands {{{1
-
-" @vimlint(EVL103, 1, a:cursorPos)
-" @vimlint(EVL103, 1, a:cmdLine)
-" @vimlint(EVL103, 1, a:argLead)
-function! s:CompleteCheckerName(argLead, cmdLine, cursorPos) abort " {{{2
-    let checker_names = []
-    for ft in s:_resolve_filetypes([])
-        call extend(checker_names, s:registry.getNamesOfAvailableCheckers(ft))
-    endfor
-    return join(checker_names, "\n")
-endfunction " }}}2
-" @vimlint(EVL103, 0, a:cursorPos)
-" @vimlint(EVL103, 0, a:cmdLine)
-" @vimlint(EVL103, 0, a:argLead)
-
-
-" @vimlint(EVL103, 1, a:cursorPos)
-" @vimlint(EVL103, 1, a:cmdLine)
-" @vimlint(EVL103, 1, a:argLead)
-function! s:CompleteFiletypes(argLead, cmdLine, cursorPos) abort " {{{2
-    return join(s:registry.getKnownFiletypes(), "\n")
-endfunction " }}}2
-" @vimlint(EVL103, 0, a:cursorPos)
-" @vimlint(EVL103, 0, a:cmdLine)
-" @vimlint(EVL103, 0, a:argLead)
-
-command! -nargs=* -complete=custom,s:CompleteCheckerName SyntasticCheck call SyntasticCheck(<f-args>)
-command! -nargs=? -complete=custom,s:CompleteFiletypes   SyntasticInfo  call SyntasticInfo(<f-args>)
-command! Errors              call SyntasticErrors()
-command! SyntasticReset      call SyntasticReset()
-command! SyntasticToggleMode call SyntasticToggleMode()
-command! SyntasticSetLoclist call SyntasticSetLoclist()
-
-" }}}1
-
-" Public API {{{1
-
-function! SyntasticCheck(...) abort " {{{2
-    call s:UpdateErrors(0, a:000)
-    call syntastic#util#redraw(g:syntastic_full_redraws)
-endfunction " }}}2
-
-function! SyntasticInfo(...) abort " {{{2
-    call s:modemap.modeInfo(a:000)
-    call s:registry.echoInfoFor(s:_resolve_filetypes(a:000))
-    call s:_explain_skip(a:000)
-endfunction " }}}2
-
-function! SyntasticErrors() abort " {{{2
-    call g:SyntasticLoclist.current().show()
-endfunction " }}}2
-
-function! SyntasticReset() abort " {{{2
-    call s:ClearCache()
-    call s:notifiers.refresh(g:SyntasticLoclist.New([]))
-endfunction " }}}2
-
-function! SyntasticToggleMode() abort " {{{2
-    call s:modemap.toggleMode()
-    call s:ClearCache()
-    call s:notifiers.refresh(g:SyntasticLoclist.New([]))
-    call s:modemap.echoMode()
-endfunction " }}}2
-
-function! SyntasticSetLoclist() abort " {{{2
-    call g:SyntasticLoclist.current().setloclist()
-endfunction " }}}2
-
-" }}}1
-
-" Autocommands {{{1
-
-augroup syntastic
-    autocmd BufReadPost  * call s:BufReadPostHook()
-    autocmd BufWritePost * call s:BufWritePostHook()
-    autocmd BufEnter     * call s:BufEnterHook()
-augroup END
-
-if v:version > 703 || (v:version == 703 && has('patch544'))
-    " QuitPre was added in Vim 7.3.544
-    augroup syntastic
-        autocmd QuitPre * call s:QuitPreHook()
-    augroup END
-endif
-
-function! s:BufReadPostHook() abort " {{{2
-    if g:syntastic_check_on_open
-        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_AUTOCOMMANDS,
-            \ 'autocmd: BufReadPost, buffer ' . bufnr('') . ' = ' . string(bufname(str2nr(bufnr('')))))
-        call s:UpdateErrors(1, [])
-    endif
-endfunction " }}}2
-
-function! s:BufWritePostHook() abort " {{{2
-    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_AUTOCOMMANDS,
-        \ 'autocmd: BufWritePost, buffer ' . bufnr('') . ' = ' . string(bufname(str2nr(bufnr('')))))
-    call s:UpdateErrors(1, [])
-endfunction " }}}2
-
-function! s:BufEnterHook() abort " {{{2
-    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_AUTOCOMMANDS,
-        \ 'autocmd: BufEnter, buffer ' . bufnr('') . ' = ' . string(bufname(str2nr(bufnr('')))) .
-        \ ', &buftype = ' . string(&buftype))
-    if &buftype ==# ''
-        call s:notifiers.refresh(g:SyntasticLoclist.current())
-    elseif &buftype ==# 'quickfix'
-        " TODO: this is needed because in recent versions of Vim lclose
-        " can no longer be called from BufWinLeave
-        " TODO: at this point there is no b:syntastic_loclist
-        let loclist = filter(copy(getloclist(0)), 'v:val["valid"] == 1')
-        let owner = str2nr(getbufvar(bufnr(''), 'syntastic_owner_buffer'))
-        let buffers = syntastic#util#unique(map(loclist, 'v:val["bufnr"]') + (owner ? [owner] : []))
-        if get(w:, 'syntastic_loclist_set', 0) && !empty(loclist) && empty(filter( buffers, 'syntastic#util#bufIsActive(v:val)' ))
-            call SyntasticLoclistHide()
-        endif
-    endif
-endfunction " }}}2
-
-function! s:QuitPreHook() abort " {{{2
-    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_AUTOCOMMANDS,
-        \ 'autocmd: QuitPre, buffer ' . bufnr('') . ' = ' . string(bufname(str2nr(bufnr('')))))
-    let b:syntastic_skip_checks = get(b:, 'syntastic_skip_checks', 0) || !syntastic#util#var('check_on_wq')
-    if get(w:, 'syntastic_loclist_set', 0)
-        call SyntasticLoclistHide()
-    endif
-endfunction " }}}2
-
-" }}}1
-
-" Main {{{1
-
-"refresh and redraw all the error info for this buf when saving or reading
-function! s:UpdateErrors(auto_invoked, checker_names) abort " {{{2
-    call syntastic#log#debugShowVariables(g:_SYNTASTIC_DEBUG_TRACE, 'version')
-    call syntastic#log#debugShowOptions(g:_SYNTASTIC_DEBUG_TRACE, s:_DEBUG_DUMP_OPTIONS)
-    call syntastic#log#debugDump(g:_SYNTASTIC_DEBUG_VARIABLES)
-    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'UpdateErrors' . (a:auto_invoked ? ' (auto)' : '') .
-        \ ': ' . (len(a:checker_names) ? join(a:checker_names) : 'default checkers'))
-    if s:_skip_file()
-        return
-    endif
-
-    call s:modemap.synch()
-    let run_checks = !a:auto_invoked || s:modemap.doAutoChecking()
-    if run_checks
-        call s:CacheErrors(a:checker_names)
-        unlockvar! b:syntastic_changedtick
-        let b:syntastic_changedtick = b:changedtick
-        lockvar! b:syntastic_changedtick
-    endif
-
-    let loclist = g:SyntasticLoclist.current()
-
-    if exists('*SyntasticCheckHook')
-        call SyntasticCheckHook(loclist.getRaw())
-    endif
-
-    " populate loclist and jump {{{3
-    let do_jump = syntastic#util#var('auto_jump') + 0
-    if do_jump == 2
-        let do_jump = loclist.getFirstError(1)
-    elseif do_jump == 3
-        let do_jump = loclist.getFirstError()
-    elseif 0 > do_jump || do_jump > 3
-        let do_jump = 0
-    endif
-
-    let w:syntastic_loclist_set = 0
-    if syntastic#util#var('always_populate_loc_list') || do_jump
-        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'loclist: setloclist (new)')
-        call setloclist(0, loclist.getRaw())
-        let w:syntastic_loclist_set = 1
-        if run_checks && do_jump && !loclist.isEmpty()
-            call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'loclist: jump')
-            execute 'silent! lrewind ' . do_jump
-
-            " XXX: Vim doesn't call autocmd commands in a predictible
-            " order, which can lead to missing filetype when jumping
-            " to a new file; the following is a workaround for the
-            " resulting brain damage
-            if &filetype ==# ''
-                silent! filetype detect
-            endif
-        endif
-    endif
-    " }}}3
-
-    call s:notifiers.refresh(loclist)
-endfunction " }}}2
-
-"clear the loc list for the buffer
-function! s:ClearCache() abort " {{{2
-    call s:notifiers.reset(g:SyntasticLoclist.current())
-    call b:syntastic_loclist.destroy()
-endfunction " }}}2
-
-"detect and cache all syntax errors in this buffer
-function! s:CacheErrors(checker_names) abort " {{{2
-    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'CacheErrors: ' .
-        \ (len(a:checker_names) ? join(a:checker_names) : 'default checkers'))
-    call s:ClearCache()
-    let newLoclist = g:SyntasticLoclist.New([])
-
-    if !s:_skip_file()
-        " debug logging {{{3
-        call syntastic#log#debugShowVariables(g:_SYNTASTIC_DEBUG_TRACE, 'aggregate_errors')
-        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_CHECKERS, '$PATH = ' . string($PATH))
-        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'getcwd() = ' . string(getcwd()))
-        " }}}3
-
-        let filetypes = s:_resolve_filetypes([])
-        let aggregate_errors = syntastic#util#var('aggregate_errors') || len(filetypes) > 1
-        let decorate_errors = aggregate_errors && syntastic#util#var('id_checkers')
-        let sort_aggregated_errors = aggregate_errors && syntastic#util#var('sort_aggregated_errors')
-
-        let clist = []
-        for type in filetypes
-            call extend(clist, s:registry.getCheckers(type, a:checker_names))
-        endfor
-
-        let names = []
-        let unavailable_checkers = 0
-        for checker in clist
-            let cname = checker.getFiletype() . '/' . checker.getName()
-            if !checker.isAvailable()
-                call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'CacheErrors: Checker ' . cname . ' is not available')
-                let unavailable_checkers += 1
-                continue
-            endif
-
-            call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'CacheErrors: Invoking checker: ' . cname)
-
-            let loclist = checker.getLocList()
-
-            if !loclist.isEmpty()
-                if decorate_errors
-                    call loclist.decorate(cname)
-                endif
-                call add(names, cname)
-                if checker.wantSort() && !sort_aggregated_errors
-                    call loclist.sort()
-                    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'sorted:', loclist)
-                endif
-
-                let newLoclist = newLoclist.extend(loclist)
-
-                if !aggregate_errors
-                    break
-                endif
-            endif
-        endfor
-
-        " set names {{{3
-        if !empty(names)
-            if len(syntastic#util#unique(map( copy(names), 'substitute(v:val, "\\m/.*", "", "")' ))) == 1
-                let type = substitute(names[0], '\m/.*', '', '')
-                let name = join(map( names, 'substitute(v:val, "\\m.\\{-}/", "", "")' ), ', ')
-                call newLoclist.setName( name . ' ('. type . ')' )
-            else
-                " checkers from mixed types
-                call newLoclist.setName(join(names, ', '))
-            endif
-        endif
-        " }}}3
-
-        " issue warning about no active checkers {{{3
-        if len(clist) == unavailable_checkers
-            if !empty(a:checker_names)
-                if len(a:checker_names) == 1
-                    call syntastic#log#warn('checker ' . a:checker_names[0] . ' is not available')
-                else
-                    call syntastic#log#warn('checkers ' . join(a:checker_names, ', ') . ' are not available')
-                endif
-            else
-                call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'CacheErrors: no checkers available for ' . &filetype)
-            endif
-        endif
-        " }}}3
-
-        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'aggregated:', newLoclist)
-        if sort_aggregated_errors
-            call newLoclist.sort()
-            call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'sorted:', newLoclist)
-        endif
-    endif
-
-    call newLoclist.deploy()
-endfunction " }}}2
-
-"Emulates the :lmake command. Sets up the make environment according to the
-"options given, runs make, resets the environment, returns the location list
-"
-"a:options can contain the following keys:
-"    'makeprg'
-"    'errorformat'
-"
-"The corresponding options are set for the duration of the function call. They
-"are set with :let, so dont escape spaces.
-"
-"a:options may also contain:
-"   'defaults' - a dict containing default values for the returned errors
-"   'subtype' - all errors will be assigned the given subtype
-"   'preprocess' - a function to be applied to the error file before parsing errors
-"   'postprocess' - a list of functions to be applied to the error list
-"   'cwd' - change directory to the given path before running the checker
-"   'env' - environment variables to set before running the checker
-"   'returns' - a list of valid exit codes for the checker
-" @vimlint(EVL102, 1, l:env_save)
-function! SyntasticMake(options) abort " {{{2
-    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'SyntasticMake: called with options:', a:options)
-
-    " save options and locale env variables {{{3
-    let old_local_errorformat = &l:errorformat
-    let old_errorformat = &errorformat
-    let old_cwd = getcwd()
-    " }}}3
-
-    if has_key(a:options, 'errorformat')
-        let &errorformat = a:options['errorformat']
-    endif
-
-    if has_key(a:options, 'cwd')
-        execute 'lcd ' . fnameescape(a:options['cwd'])
-    endif
-
-    " set environment variables {{{3
-    let env_save = {}
-    if has_key(a:options, 'env') && len(a:options['env'])
-        for key in keys(a:options['env'])
-            if key =~? '\m^[a-z_]\+$'
-                execute 'let env_save[' . string(key) . '] = $' . key
-                execute 'let $' . key . ' = ' . string(a:options['env'][key])
-            endif
-        endfor
-    endif
-    " }}}3
-
-    let err_lines = split(syntastic#util#system(a:options['makeprg']), "\n", 1)
-
-    " restore environment variables {{{3
-    if len(env_save)
-        for key in keys(env_save)
-            execute 'let $' . key . ' = ' . string(env_save[key])
-        endfor
-    endif
-    " }}}3
-
-    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'checker output:', err_lines)
-
-    " Does it still make sense to go on?
-    let bailout =
-        \ syntastic#util#var('exit_checks') &&
-        \ has_key(a:options, 'returns') &&
-        \ index(a:options['returns'], v:shell_error) == -1
-
-    if !bailout
-        if has_key(a:options, 'Preprocess')
-            let err_lines = call(a:options['Preprocess'], [err_lines])
-            call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'preprocess (external):', err_lines)
-        elseif has_key(a:options, 'preprocess')
-            let err_lines = call('syntastic#preprocess#' . a:options['preprocess'], [err_lines])
-            call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'preprocess:', err_lines)
-        endif
-        lgetexpr err_lines
-
-        let errors = deepcopy(getloclist(0))
-
-        if has_key(a:options, 'cwd')
-            execute 'lcd ' . fnameescape(old_cwd)
-        endif
-
-        try
-            silent lolder
-        catch /\m^Vim\%((\a\+)\)\=:E380/
-            " E380: At bottom of quickfix stack
-            call setloclist(0, [], 'r')
-        catch /\m^Vim\%((\a\+)\)\=:E776/
-            " E776: No location list
-            " do nothing
-        endtry
-    else
-        let errors = []
-    endif
-
-    " restore options {{{3
-    let &errorformat = old_errorformat
-    let &l:errorformat = old_local_errorformat
-    " }}}3
-
-    if !s:_running_windows && (s:_os_name() =~? 'FreeBSD' || s:_os_name() =~? 'OpenBSD')
-        call syntastic#util#redraw(g:syntastic_full_redraws)
-    endif
-
-    if bailout
-        throw 'Syntastic: checker error'
-    endif
-
-    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'raw loclist:', errors)
-
-    if has_key(a:options, 'defaults')
-        call s:_add_to_errors(errors, a:options['defaults'])
-    endif
-
-    " Add subtype info if present.
-    if has_key(a:options, 'subtype')
-        call s:_add_to_errors(errors, { 'subtype': a:options['subtype'] })
-    endif
-
-    if has_key(a:options, 'Postprocess') && !empty(a:options['Postprocess'])
-        for rule in a:options['Postprocess']
-            let errors = call(rule, [errors])
-        endfor
-        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'postprocess (external):', errors)
-    elseif has_key(a:options, 'postprocess') && !empty(a:options['postprocess'])
-        for rule in a:options['postprocess']
-            let errors = call('syntastic#postprocess#' . rule, [errors])
-        endfor
-        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'postprocess:', errors)
-    endif
-
-    return errors
-endfunction " }}}2
-" @vimlint(EVL102, 0, l:env_save)
-
-"return a string representing the state of buffer according to
-"g:syntastic_stl_format
-"
-"return '' if no errors are cached for the buffer
-function! SyntasticStatuslineFlag() abort " {{{2
-    return g:SyntasticLoclist.current().getStatuslineFlag()
-endfunction " }}}2
-
-" }}}1
-
-" Utilities {{{1
-
-function! s:_resolve_filetypes(filetypes) abort " {{{2
-    let type = len(a:filetypes) ? a:filetypes[0] : &filetype
-    return split( get(g:syntastic_filetype_map, type, type), '\m\.' )
-endfunction " }}}2
-
-function! s:_ignore_file(filename) abort " {{{2
-    let fname = fnamemodify(a:filename, ':p')
-    for pattern in g:syntastic_ignore_files
-        if fname =~# pattern
-            return 1
-        endif
-    endfor
-    return 0
-endfunction " }}}2
-
-" Skip running in special buffers
-function! s:_skip_file() abort " {{{2
-    let fname = expand('%', 1)
-    let skip = get(b:, 'syntastic_skip_checks', 0) || (&buftype !=# '') ||
-        \ !filereadable(fname) || getwinvar(0, '&diff') || s:_ignore_file(fname) ||
-        \ fnamemodify(fname, ':e') =~? g:syntastic_ignore_extensions
-    if skip
-        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, '_skip_file: skipping checks')
-    endif
-    return skip
-endfunction " }}}2
-
-" Explain why checks will be skipped for the current file
-function! s:_explain_skip(filetypes) abort " {{{2
-    if empty(a:filetypes) && s:_skip_file()
-        let why = []
-        let fname = expand('%', 1)
-
-        if get(b:, 'syntastic_skip_checks', 0)
-            call add(why, 'b:syntastic_skip_checks set')
-        endif
-        if &buftype !=# ''
-            call add(why, 'buftype = ' . string(&buftype))
-        endif
-        if !filereadable(fname)
-            call add(why, 'file not readable / not local')
-        endif
-        if getwinvar(0, '&diff')
-            call add(why, 'diff mode')
-        endif
-        if s:_ignore_file(fname)
-            call add(why, 'filename matching g:syntastic_ignore_files')
-        endif
-        if fnamemodify(fname, ':e') =~? g:syntastic_ignore_extensions
-            call add(why, 'extension matching g:syntastic_ignore_extensions')
-        endif
-
-        echomsg 'The current file will not be checked (' . join(why, ', ') . ')'
-    endif
-endfunction " }}}2
-
-" Take a list of errors and add default values to them from a:options
-function! s:_add_to_errors(errors, options) abort " {{{2
-    for err in a:errors
-        for key in keys(a:options)
-            if !has_key(err, key) || empty(err[key])
-                let err[key] = a:options[key]
-            endif
-        endfor
-    endfor
-
-    return a:errors
-endfunction " }}}2
-
-function! s:_os_name() abort " {{{2
-    return g:_SYNTASTIC_UNAME
-endfunction " }}}2
-
-" }}}1
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 38
vim/plugin/syntastic/autoloclist.vim

@@ -1,38 +0,0 @@
-if exists('g:loaded_syntastic_notifier_autoloclist') || !exists('g:loaded_syntastic_plugin')
-    finish
-endif
-let g:loaded_syntastic_notifier_autoloclist = 1
-
-let g:SyntasticAutoloclistNotifier = {}
-
-" Public methods {{{1
-"
-function! g:SyntasticAutoloclistNotifier.New() abort " {{{2
-    let newObj = copy(self)
-    return newObj
-endfunction " }}}2
-
-function! g:SyntasticAutoloclistNotifier.refresh(loclist) abort " {{{2
-    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'autoloclist: refresh')
-    call g:SyntasticAutoloclistNotifier.AutoToggle(a:loclist)
-endfunction " }}}2
-
-function! g:SyntasticAutoloclistNotifier.AutoToggle(loclist) abort " {{{2
-    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'autoloclist: toggle')
-    if !a:loclist.isEmpty()
-        if syntastic#util#var('auto_loc_list') == 1
-            call a:loclist.show()
-        endif
-    else
-        if syntastic#util#var('auto_loc_list') > 0
-
-            "TODO: this will close the loc list window if one was opened by
-            "something other than syntastic
-            lclose
-        endif
-    endif
-endfunction " }}}2
-
-" }}}1
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 59
vim/plugin/syntastic/balloons.vim

@@ -1,59 +0,0 @@
-if exists('g:loaded_syntastic_notifier_balloons') || !exists('g:loaded_syntastic_plugin')
-    finish
-endif
-let g:loaded_syntastic_notifier_balloons = 1
-
-if !has('balloon_eval')
-    let g:syntastic_enable_balloons = 0
-endif
-
-let g:SyntasticBalloonsNotifier = {}
-
-" Public methods {{{1
-
-function! g:SyntasticBalloonsNotifier.New() abort " {{{2
-    let newObj = copy(self)
-    return newObj
-endfunction " }}}2
-
-function! g:SyntasticBalloonsNotifier.enabled() abort " {{{2
-    return has('balloon_eval') && syntastic#util#var('enable_balloons')
-endfunction " }}}2
-
-" Update the error balloons
-function! g:SyntasticBalloonsNotifier.refresh(loclist) abort " {{{2
-    unlet! b:syntastic_private_balloons
-    if self.enabled() && !a:loclist.isEmpty()
-        let b:syntastic_private_balloons = a:loclist.balloons()
-        if !empty(b:syntastic_private_balloons)
-            set ballooneval balloonexpr=SyntasticBalloonsExprNotifier()
-        endif
-    endif
-endfunction " }}}2
-
-" Reset the error balloons
-" @vimlint(EVL103, 1, a:loclist)
-function! g:SyntasticBalloonsNotifier.reset(loclist) abort " {{{2
-    let b:syntastic_private_balloons = {}
-    if has('balloon_eval')
-        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'balloons: reset')
-        unlet! b:syntastic_private_balloons
-        set noballooneval
-    endif
-endfunction " }}}2
-" @vimlint(EVL103, 0, a:loclist)
-
-" }}}1
-
-" Private functions {{{1
-
-function! SyntasticBalloonsExprNotifier() abort " {{{2
-    if !exists('b:syntastic_private_balloons')
-        return ''
-    endif
-    return get(b:syntastic_private_balloons, v:beval_lnum, '')
-endfunction " }}}2
-
-" }}}1
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 228
vim/plugin/syntastic/checker.vim

@@ -1,228 +0,0 @@
-if exists('g:loaded_syntastic_checker') || !exists('g:loaded_syntastic_plugin')
-    finish
-endif
-let g:loaded_syntastic_checker = 1
-
-let g:SyntasticChecker = {}
-
-" Public methods {{{1
-
-function! g:SyntasticChecker.New(args) abort " {{{2
-    let newObj = copy(self)
-
-    let newObj._filetype = a:args['filetype']
-    let newObj._name = a:args['name']
-    let newObj._exec = get(a:args, 'exec', newObj._name)
-
-    if has_key(a:args, 'redirect')
-        let [filetype, name] = split(a:args['redirect'], '/')
-        let prefix = 'SyntaxCheckers_' . filetype . '_' . name . '_'
-
-        if exists('g:syntastic_' . filetype . '_' . name . '_sort') && !exists('g:syntastic_' . newObj._filetype . '_' . newObj._name . '_sort')
-            let g:syntastic_{newObj._filetype}_{newObj._name}_sort = g:syntastic_{filetype}_{name}_sort
-        endif
-    else
-        let prefix = 'SyntaxCheckers_' . newObj._filetype . '_' . newObj._name . '_'
-    endif
-
-    let newObj._locListFunc = function(prefix . 'GetLocList')
-
-    if exists('*' . prefix . 'IsAvailable')
-        let newObj._isAvailableFunc = function(prefix . 'IsAvailable')
-    else
-        let newObj._isAvailableFunc = function('s:_isAvailableDefault')
-    endif
-
-    if exists('*' . prefix . 'GetHighlightRegex')
-        let newObj._highlightRegexFunc = function(prefix . 'GetHighlightRegex')
-    endif
-
-    return newObj
-endfunction " }}}2
-
-function! g:SyntasticChecker.getFiletype() abort " {{{2
-    return self._filetype
-endfunction " }}}2
-
-function! g:SyntasticChecker.getName() abort " {{{2
-    return self._name
-endfunction " }}}2
-
-" Synchronise _exec with user's setting.  Force re-validation if needed.
-"
-" XXX: This function must be called at least once before calling either
-" getExec() or getExecEscaped().  Normally isAvailable() does that for you
-" automatically, but you should keep still this in mind if you change the
-" current checker workflow.
-function! g:SyntasticChecker.syncExec() dict " {{{2
-    let user_exec =
-        \ expand( exists('b:syntastic_' . self._name . '_exec') ? b:syntastic_{self._name}_exec :
-        \ syntastic#util#var(self._filetype . '_' . self._name . '_exec'), 1 )
-
-    if user_exec !=# '' && user_exec !=# self._exec
-        let self._exec = user_exec
-        if has_key(self, '_available')
-            " we have a new _exec on the block, it has to be validated
-            call remove(self, '_available')
-        endif
-    endif
-endfunction " }}}2
-
-function! g:SyntasticChecker.getExec() abort " {{{2
-    return self._exec
-endfunction " }}}2
-
-function! g:SyntasticChecker.getExecEscaped() abort " {{{2
-    return syntastic#util#shescape(self._exec)
-endfunction " }}}2
-
-function! g:SyntasticChecker.getLocListRaw() abort " {{{2
-    let name = self._filetype . '/' . self._name
-    try
-        let list = self._locListFunc()
-        if self._exec !=# ''
-            call syntastic#log#debug(g:_SYNTASTIC_DEBUG_TRACE, 'getLocList: checker ' . name . ' returned ' . v:shell_error)
-        endif
-    catch /\m\C^Syntastic: checker error$/
-        let list = []
-        if self._exec !=# ''
-            call syntastic#log#error('checker ' . name . ' returned abnormal status ' . v:shell_error)
-        else
-            call syntastic#log#error('checker ' . name . ' aborted')
-        endif
-    endtry
-    call self._populateHighlightRegexes(list)
-    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, name . ' raw:', list)
-    call self._quietMessages(list)
-    return list
-endfunction " }}}2
-
-function! g:SyntasticChecker.getLocList() abort " {{{2
-    return g:SyntasticLoclist.New(self.getLocListRaw())
-endfunction " }}}2
-
-function! g:SyntasticChecker.getVersion(...) abort " {{{2
-    if !exists('self._version')
-        let command = a:0 ? a:1 : self.getExecEscaped() . ' --version'
-        let version_output = syntastic#util#system(command)
-        call self.log('getVersion: ' . string(command) . ': ' .
-            \ string(split(version_output, "\n", 1)) .
-            \ (v:shell_error ? ' (exit code ' . v:shell_error . ')' : '') )
-        call self.setVersion(syntastic#util#parseVersion(version_output))
-    endif
-    return get(self, '_version', [])
-endfunction " }}}2
-
-function! g:SyntasticChecker.setVersion(version) abort " {{{2
-    if len(a:version)
-        let self._version = copy(a:version)
-        call self.log(self.getExec() . ' version =', a:version)
-    else
-        call syntastic#log#error("checker " . self._filetype . "/" . self._name . ": can't parse version string (abnormal termination?)")
-    endif
-endfunction " }}}2
-
-function! g:SyntasticChecker.log(msg, ...) abort " {{{2
-    let leader = self._filetype . '/' . self._name . ': '
-    if a:0 > 0
-        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_CHECKERS, leader . a:msg, a:1)
-    else
-        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_CHECKERS, leader . a:msg)
-    endif
-endfunction " }}}2
-
-function! g:SyntasticChecker.makeprgBuild(opts) abort " {{{2
-    let basename = self._filetype . '_' . self._name . '_'
-
-    let parts = []
-    call extend(parts, self._getOpt(a:opts, basename, 'exe', self.getExecEscaped()))
-    call extend(parts, self._getOpt(a:opts, basename, 'args', ''))
-    call extend(parts, self._getOpt(a:opts, basename, 'fname', syntastic#util#shexpand('%')))
-    call extend(parts, self._getOpt(a:opts, basename, 'post_args', ''))
-    call extend(parts, self._getOpt(a:opts, basename, 'tail', ''))
-
-    return join(parts)
-endfunction " }}}2
-
-function! g:SyntasticChecker.isAvailable() abort " {{{2
-    call self.syncExec()
-    if !has_key(self, '_available')
-        let self._available = self._isAvailableFunc()
-    endif
-    return self._available
-endfunction " }}}2
-
-function! g:SyntasticChecker.wantSort() abort " {{{2
-    return syntastic#util#var(self._filetype . '_' . self._name . '_sort', 0)
-endfunction " }}}2
-
-" This method is no longer used by syntastic.  It's here only to maintain
-" backwards compatibility with external checkers which might depend on it.
-function! g:SyntasticChecker.setWantSort(val) abort " {{{2
-    if !exists('g:syntastic_' . self._filetype . '_' . self._name . '_sort')
-        let g:syntastic_{self._filetype}_{self._name}_sort = a:val
-    endif
-endfunction " }}}2
-
-" }}}1
-
-" Private methods {{{1
-
-function! g:SyntasticChecker._quietMessages(errors) abort " {{{2
-    " wildcard quiet_messages
-    let quiet_filters = copy(syntastic#util#var('quiet_messages', {}))
-    if type(quiet_filters) != type({})
-        call syntastic#log#warn('ignoring invalid syntastic_quiet_messages')
-        unlet quiet_filters
-        let quiet_filters = {}
-    endif
-
-    " per checker quiet_messages
-    let name = self._filetype . '_' . self._name
-    try
-        call extend( quiet_filters, copy(syntastic#util#var(name . '_quiet_messages', {})), 'force' )
-    catch /\m^Vim\%((\a\+)\)\=:E712/
-        call syntastic#log#warn('ignoring invalid syntastic_' . name . '_quiet_messages')
-    endtry
-
-    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'quiet_messages filter:', quiet_filters)
-
-    if !empty(quiet_filters)
-        call syntastic#util#dictFilter(a:errors, quiet_filters)
-        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_LOCLIST, 'filtered by quiet_messages:', a:errors)
-    endif
-endfunction " }}}2
-
-function! g:SyntasticChecker._populateHighlightRegexes(errors) abort " {{{2
-    if has_key(self, '_highlightRegexFunc')
-        for e in a:errors
-            if e['valid']
-                let term = self._highlightRegexFunc(e)
-                if term !=# ''
-                    let e['hl'] = term
-                endif
-            endif
-        endfor
-    endif
-endfunction " }}}2
-
-function! g:SyntasticChecker._getOpt(opts, basename, name, default) abort " {{{2
-    let ret = []
-    call extend( ret, syntastic#util#argsescape(get(a:opts, a:name . '_before', '')) )
-    call extend( ret, syntastic#util#argsescape(syntastic#util#var( a:basename . a:name, get(a:opts, a:name, a:default) )) )
-    call extend( ret, syntastic#util#argsescape(get(a:opts, a:name . '_after', '')) )
-
-    return ret
-endfunction " }}}2
-
-" }}}1
-
-" Private functions {{{1
-
-function! s:_isAvailableDefault() dict " {{{2
-    return executable(self.getExec())
-endfunction " }}}2
-
-" }}}1
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 138
vim/plugin/syntastic/cursor.vim

@@ -1,138 +0,0 @@
-if exists('g:loaded_syntastic_notifier_cursor') || !exists('g:loaded_syntastic_plugin')
-    finish
-endif
-let g:loaded_syntastic_notifier_cursor = 1
-
-let g:SyntasticCursorNotifier = {}
-
-" Public methods {{{1
-
-function! g:SyntasticCursorNotifier.New() abort " {{{2
-    let newObj = copy(self)
-    return newObj
-endfunction " }}}2
-
-function! g:SyntasticCursorNotifier.enabled() abort " {{{2
-    return syntastic#util#var('echo_current_error')
-endfunction " }}}2
-
-function! g:SyntasticCursorNotifier.refresh(loclist) abort " {{{2
-    if self.enabled() && !a:loclist.isEmpty()
-        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'cursor: refresh')
-        let b:syntastic_private_messages = copy(a:loclist.messages(bufnr('')))
-        let b:syntastic_private_line = -1
-        let b:syntastic_cursor_columns = a:loclist.getCursorColumns()
-        autocmd! syntastic CursorMoved
-        autocmd syntastic CursorMoved * call SyntasticRefreshCursor()
-    endif
-endfunction " }}}2
-
-" @vimlint(EVL103, 1, a:loclist)
-function! g:SyntasticCursorNotifier.reset(loclist) abort " {{{2
-    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'cursor: reset')
-    autocmd! syntastic CursorMoved
-    unlet! b:syntastic_private_messages
-    let b:syntastic_private_line = -1
-endfunction " }}}2
-" @vimlint(EVL103, 0, a:loclist)
-
-" }}}1
-
-" Private functions {{{1
-
-function! SyntasticRefreshCursor() abort " {{{2
-    if !exists('b:syntastic_private_messages') || empty(b:syntastic_private_messages)
-        " file not checked
-        return
-    endif
-
-    if !exists('b:syntastic_private_line')
-        let b:syntastic_private_line = -1
-    endif
-    let l = line('.')
-    let current_messages = get(b:syntastic_private_messages, l, {})
-
-    if !exists('b:syntastic_cursor_columns')
-        let b:syntastic_cursor_columns = g:syntastic_cursor_columns
-    endif
-
-    if b:syntastic_cursor_columns
-        let c = virtcol('.')
-        if !exists('b:syntastic_private_idx')
-            let b:syntastic_private_idx = -1
-        endif
-
-        if s:_is_same_index(l, b:syntastic_private_line, c, b:syntastic_private_idx, current_messages)
-            return
-        else
-            let b:syntastic_private_line = l
-        endif
-
-        if !empty(current_messages)
-            let b:syntastic_private_idx = s:_find_index(c, current_messages)
-            call syntastic#util#wideMsg(current_messages[b:syntastic_private_idx].text)
-        else
-            let b:syntastic_private_idx = -1
-            echo
-        endif
-    else
-        if l == b:syntastic_private_line
-            return
-        endif
-        let b:syntastic_private_line = l
-
-        if !empty(current_messages)
-            call syntastic#util#wideMsg(current_messages[0].text)
-        else
-            echo
-        endif
-    endif
-endfunction " }}}2
-
-" }}}1
-
-" Utilities {{{1
-
-function! s:_is_same_index(line, old_line, column, idx, messages) abort " {{{2
-    if a:old_line >= 0 && a:line == a:old_line && a:idx >= 0
-        if len(a:messages) <= 1
-            return 1
-        endif
-
-        if a:messages[a:idx].scol <= a:column || a:idx == 0
-            if a:idx == len(a:messages) - 1 || a:column < a:messages[a:idx + 1].scol
-                return 1
-            else
-                return 0
-            endif
-        else
-            return 0
-        endif
-    else
-        return 0
-    endif
-endfunction " }}}2
-
-function! s:_find_index(column, messages) abort " {{{2
-    let max = len(a:messages) - 1
-    if max == 0
-        return 0
-    endif
-    let min = 0
-
-    " modified binary search: assign index 0 to columns to the left of the first error
-    while min < max - 1
-        let mid = (min + max) / 2
-        if a:column < a:messages[mid].scol
-            let max = mid
-        else
-            let min = mid
-        endif
-    endwhile
-
-    return a:column < a:messages[max].scol ? min : max
-endfunction " }}}2
-
-" }}}1
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 104
vim/plugin/syntastic/highlighting.vim

@@ -1,104 +0,0 @@
-if exists('g:loaded_syntastic_notifier_highlighting') || !exists('g:loaded_syntastic_plugin')
-    finish
-endif
-let g:loaded_syntastic_notifier_highlighting = 1
-
-" Highlighting requires getmatches introduced in 7.1.040
-let s:has_highlighting = v:version > 701 || (v:version == 701 && has('patch040'))
-lockvar s:has_highlighting
-
-let g:SyntasticHighlightingNotifier = {}
-
-let s:setup_done = 0
-
-" Public methods {{{1
-
-function! g:SyntasticHighlightingNotifier.New() abort " {{{2
-    let newObj = copy(self)
-
-    if !s:setup_done
-        call self._setup()
-        let s:setup_done = 1
-        lockvar s:setup_done
-    endif
-
-    return newObj
-endfunction " }}}2
-
-function! g:SyntasticHighlightingNotifier.enabled() abort " {{{2
-    return s:has_highlighting && syntastic#util#var('enable_highlighting')
-endfunction " }}}2
-
-" Sets error highlights in the current window
-function! g:SyntasticHighlightingNotifier.refresh(loclist) abort " {{{2
-    if self.enabled()
-        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'highlighting: refresh')
-        call self._reset()
-        let buf = bufnr('')
-        let issues = filter(a:loclist.copyRaw(), 'v:val["bufnr"] == buf')
-        for item in issues
-            let group = 'Syntastic' . get(item, 'subtype', '') . ( item['type'] ==? 'E' ? 'Error' : 'Warning' )
-
-            " The function `Syntastic_{filetype}_{checker}_GetHighlightRegex` is
-            " used to override default highlighting.
-            if has_key(item, 'hl')
-                call matchadd(group, '\%' . item['lnum'] . 'l' . item['hl'])
-            elseif get(item, 'col', 0)
-                if get(item, 'vcol', 0)
-                    let lastcol = virtcol([item['lnum'], '$'])
-                    let coltype = 'v'
-                else
-                    let lastcol = col([item['lnum'], '$'])
-                    let coltype = 'c'
-                endif
-                let lcol = min([lastcol, item['col']])
-
-                call matchadd(group, '\%' . item['lnum'] . 'l\%' . lcol . coltype)
-            endif
-        endfor
-    endif
-endfunction " }}}2
-
-" Remove all error highlights from the window
-" @vimlint(EVL103, 1, a:loclist)
-function! g:SyntasticHighlightingNotifier.reset(loclist) abort " {{{2
-    if s:has_highlighting
-        call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'highlighting: reset')
-        call self._reset()
-    endif
-endfunction " }}}2
-" @vimlint(EVL103, 0, a:loclist)
-
-" }}}1
-
-" Private methods {{{1
-
-" One time setup: define our own highlighting
-function! g:SyntasticHighlightingNotifier._setup() abort " {{{2
-    if s:has_highlighting
-        if !hlexists('SyntasticError')
-            highlight link SyntasticError SpellBad
-        endif
-        if !hlexists('SyntasticWarning')
-            highlight link SyntasticWarning SpellCap
-        endif
-        if !hlexists('SyntasticStyleError')
-            highlight link SyntasticStyleError SyntasticError
-        endif
-        if !hlexists('SyntasticStyleWarning')
-            highlight link SyntasticStyleWarning SyntasticWarning
-        endif
-    endif
-endfunction " }}}2
-
-function! g:SyntasticHighlightingNotifier._reset() abort " {{{2
-    for match in getmatches()
-        if stridx(match['group'], 'Syntastic') == 0
-            call matchdelete(match['id'])
-        endif
-    endfor
-endfunction " }}}2
-
-" }}}1
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 434
vim/plugin/syntastic/loclist.vim

@@ -1,434 +0,0 @@
-if exists('g:loaded_syntastic_loclist') || !exists('g:loaded_syntastic_plugin')
-    finish
-endif
-let g:loaded_syntastic_loclist = 1
-
-let g:SyntasticLoclist = {}
-
-" Public methods {{{1
-
-function! g:SyntasticLoclist.New(rawLoclist) abort " {{{2
-    let newObj = copy(self)
-
-    let llist = filter(copy(a:rawLoclist), 'v:val["valid"] == 1')
-
-    for e in llist
-        if get(e, 'type', '') ==# ''
-            let e['type'] = 'E'
-        endif
-    endfor
-
-    let newObj._rawLoclist = llist
-    let newObj._name = ''
-    let newObj._owner = bufnr('')
-    let newObj._sorted = 0
-    let newObj._columns = g:syntastic_cursor_columns
-
-    return newObj
-endfunction " }}}2
-
-function! g:SyntasticLoclist.current() abort " {{{2
-    if !exists('b:syntastic_loclist') || empty(b:syntastic_loclist)
-        let b:syntastic_loclist = g:SyntasticLoclist.New([])
-    endif
-    return b:syntastic_loclist
-endfunction " }}}2
-
-function! g:SyntasticLoclist.extend(other) abort " {{{2
-    let list = self.copyRaw()
-    call extend(list, a:other.copyRaw())
-    return g:SyntasticLoclist.New(list)
-endfunction " }}}2
-
-function! g:SyntasticLoclist.sort() abort " {{{2
-    if !self._sorted
-        for e in self._rawLoclist
-            call s:_set_screen_column(e)
-        endfor
-
-        call sort(self._rawLoclist, self._columns ? 's:_compare_error_items_by_columns' : 's:_compare_error_items_by_lines')
-
-        let self._sorted = 1
-    endif
-endfunction " }}}2
-
-function! g:SyntasticLoclist.isEmpty() abort " {{{2
-    return empty(self._rawLoclist)
-endfunction " }}}2
-
-function! g:SyntasticLoclist.isNewerThan(stamp) abort " {{{2
-    if !exists('self._stamp')
-        let self._stamp = []
-        return 0
-    endif
-    return syntastic#util#compareLexi(self._stamp, a:stamp) > 0
-endfunction " }}}2
-
-function! g:SyntasticLoclist.copyRaw() abort " {{{2
-    return copy(self._rawLoclist)
-endfunction " }}}2
-
-function! g:SyntasticLoclist.getRaw() abort " {{{2
-    return self._rawLoclist
-endfunction " }}}2
-
-function! g:SyntasticLoclist.getBuffers() abort " {{{2
-    return syntastic#util#unique(map(copy(self._rawLoclist), 'str2nr(v:val["bufnr"])') + [self._owner])
-endfunction " }}}2
-
-function! g:SyntasticLoclist.getCursorColumns() abort " {{{2
-    return self._columns
-endfunction " }}}2
-
-function! g:SyntasticLoclist.getStatuslineFlag() abort " {{{2
-    if !exists('self._stl_format')
-        let self._stl_format = ''
-    endif
-    if !exists('self._stl_flag')
-        let self._stl_flag = ''
-    endif
-
-    if g:syntastic_stl_format !=# self._stl_format
-        let self._stl_format = g:syntastic_stl_format
-
-        if !empty(self._rawLoclist)
-            let errors = self.errors()
-            let warnings = self.warnings()
-
-            let num_errors = len(errors)
-            let num_warnings = len(warnings)
-            let num_issues = len(self._rawLoclist)
-
-            let output = self._stl_format
-
-            "hide stuff wrapped in %E(...) unless there are errors
-            let output = substitute(output, '\m\C%E{\([^}]*\)}', num_errors ? '\1' : '' , 'g')
-
-            "hide stuff wrapped in %W(...) unless there are warnings
-            let output = substitute(output, '\m\C%W{\([^}]*\)}', num_warnings ? '\1' : '' , 'g')
-
-            "hide stuff wrapped in %B(...) unless there are both errors and warnings
-            let output = substitute(output, '\m\C%B{\([^}]*\)}', (num_warnings && num_errors) ? '\1' : '' , 'g')
-
-            "sub in the total errors/warnings/both
-            let output = substitute(output, '\m\C%w', num_warnings, 'g')
-            let output = substitute(output, '\m\C%e', num_errors, 'g')
-            let output = substitute(output, '\m\C%t', num_issues, 'g')
-
-            "first error/warning line num
-            let output = substitute(output, '\m\C%F', num_issues ? self._rawLoclist[0]['lnum'] : '', 'g')
-
-            "first error line num
-            let output = substitute(output, '\m\C%fe', num_errors ? errors[0]['lnum'] : '', 'g')
-
-            "first warning line num
-            let output = substitute(output, '\m\C%fw', num_warnings ? warnings[0]['lnum'] : '', 'g')
-
-            let self._stl_flag = output
-        else
-            let self._stl_flag = ''
-        endif
-    endif
-
-    return self._stl_flag
-endfunction " }}}2
-
-function! g:SyntasticLoclist.getFirstError(...) abort " {{{2
-    let max_issues = len(self._rawLoclist)
-    if a:0 && a:1 < max_issues
-        let max_issues = a:1
-    endif
-
-    for idx in range(max_issues)
-        if get(self._rawLoclist[idx], 'type', '') ==? 'E'
-            return idx + 1
-        endif
-    endfor
-
-    return 0
-endfunction " }}}2
-
-function! g:SyntasticLoclist.getName() abort " {{{2
-    return len(self._name)
-endfunction " }}}2
-
-function! g:SyntasticLoclist.setName(name) abort " {{{2
-    let self._name = a:name
-endfunction " }}}2
-
-function! g:SyntasticLoclist.getOwner() abort " {{{2
-    return self._owner
-endfunction " }}}2
-
-function! g:SyntasticLoclist.setOwner(buffer) abort " {{{2
-    let self._owner = type(a:buffer) == type(0) ? a:buffer : str2nr(a:buffer)
-endfunction " }}}2
-
-function! g:SyntasticLoclist.deploy() abort " {{{2
-    call self.setOwner(bufnr(''))
-    let self._stamp = syntastic#util#stamp()
-    for buf in self.getBuffers()
-        call setbufvar(buf, 'syntastic_loclist', self)
-    endfor
-endfunction " }}}2
-
-function! g:SyntasticLoclist.destroy() abort " {{{2
-    for buf in self.getBuffers()
-        call setbufvar(buf, 'syntastic_loclist', {})
-    endfor
-endfunction " }}}2
-
-function! g:SyntasticLoclist.decorate(tag) abort " {{{2
-    for e in self._rawLoclist
-        let e['text'] .= ' [' . a:tag . ']'
-    endfor
-endfunction " }}}2
-
-function! g:SyntasticLoclist.balloons() abort " {{{2
-    if !exists('self._cachedBalloons')
-        let sep = has('balloon_multiline') ? "\n" : ' | '
-
-        let self._cachedBalloons = {}
-        for e in self._rawLoclist
-            let buf = e['bufnr']
-
-            if !has_key(self._cachedBalloons, buf)
-                let self._cachedBalloons[buf] = {}
-            endif
-
-            if has_key(self._cachedBalloons[buf], e['lnum'])
-                let self._cachedBalloons[buf][e['lnum']] .= sep . e['text']
-            else
-                let self._cachedBalloons[buf][e['lnum']] = e['text']
-            endif
-        endfor
-    endif
-
-    return get(self._cachedBalloons, bufnr(''), {})
-endfunction " }}}2
-
-function! g:SyntasticLoclist.errors() abort " {{{2
-    if !exists('self._cachedErrors')
-        let self._cachedErrors = self.filter({'type': 'E'})
-    endif
-    return self._cachedErrors
-endfunction " }}}2
-
-function! g:SyntasticLoclist.warnings() abort " {{{2
-    if !exists('self._cachedWarnings')
-        let self._cachedWarnings = self.filter({'type': 'W'})
-    endif
-    return self._cachedWarnings
-endfunction " }}}2
-
-" Legacy function.  Syntastic no longer calls it, but we keep it
-" around because other plugins (f.i. powerline) depend on it.
-function! g:SyntasticLoclist.hasErrorsOrWarningsToDisplay() abort " {{{2
-    return !self.isEmpty()
-endfunction " }}}2
-
-" cache used by EchoCurrentError()
-function! g:SyntasticLoclist.messages(buf) abort " {{{2
-    if !exists('self._cachedMessages')
-        let self._cachedMessages = {}
-
-        let errors = self.errors() + self.warnings()
-        for e in errors
-            let b = e['bufnr']
-            let l = e['lnum']
-
-            if !has_key(self._cachedMessages, b)
-                let self._cachedMessages[b] = {}
-            endif
-
-            if !has_key(self._cachedMessages[b], l)
-                let self._cachedMessages[b][l] = [e]
-            elseif self._columns
-                call add(self._cachedMessages[b][l], e)
-            endif
-        endfor
-
-        if self._columns
-            if !self._sorted
-                for b in keys(self._cachedMessages)
-                    for l in keys(self._cachedMessages[b])
-                        if len(self._cachedMessages[b][l]) > 1
-                            for e in self._cachedMessages[b][l]
-                                call s:_set_screen_column(e)
-                            endfor
-                            call sort(self._cachedMessages[b][l], 's:_compare_error_items_by_columns')
-                        endif
-                    endfor
-                endfor
-            endif
-
-            for b in keys(self._cachedMessages)
-                for l in keys(self._cachedMessages[b])
-                    call s:_remove_shadowed_items(self._cachedMessages[b][l])
-                endfor
-            endfor
-        endif
-    endif
-
-    return get(self._cachedMessages, a:buf, {})
-endfunction " }}}2
-
-"Filter the list and return new native loclist
-"e.g.
-"  .filter({'bufnr': 10, 'type': 'e'})
-"
-"would return all errors for buffer 10.
-"
-"Note that all comparisons are done with ==?
-function! g:SyntasticLoclist.filter(filters) abort " {{{2
-    let conditions = values(map(copy(a:filters), 's:_translate(v:key, v:val)'))
-    let filter = len(conditions) == 1 ?
-        \ conditions[0] : join(map(conditions, '"(" . v:val . ")"'), ' && ')
-    return filter(copy(self._rawLoclist), filter)
-endfunction " }}}2
-
-function! g:SyntasticLoclist.setloclist() abort " {{{2
-    if !exists('w:syntastic_loclist_set')
-        let w:syntastic_loclist_set = 0
-    endif
-    let replace = g:syntastic_reuse_loc_lists && w:syntastic_loclist_set
-    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'loclist: setloclist ' . (replace ? '(replace)' : '(new)'))
-    call setloclist(0, self.getRaw(), replace ? 'r' : ' ')
-    let w:syntastic_loclist_set = 1
-endfunction " }}}2
-
-"display the cached errors for this buf in the location list
-function! g:SyntasticLoclist.show() abort " {{{2
-    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'loclist: show')
-    call self.setloclist()
-
-    if !self.isEmpty()
-        let num = winnr()
-        execute 'lopen ' . syntastic#util#var('loc_list_height')
-        if num != winnr()
-            execute num . 'wincmd w'
-        endif
-
-        " try to find the loclist window and set w:quickfix_title
-        let errors = getloclist(0)
-        for buf in tabpagebuflist()
-            if buflisted(buf) && bufloaded(buf) && getbufvar(buf, '&buftype') ==# 'quickfix'
-                let win = bufwinnr(buf)
-                let title = getwinvar(win, 'quickfix_title')
-
-                " TODO: try to make sure we actually own this window; sadly,
-                " errors == getloclist(0) is the only somewhat safe way to
-                " achieve that
-                if strpart(title, 0, 16) ==# ':SyntasticCheck ' ||
-                            \ ( (title ==# '' || title ==# ':setloclist()') && errors == getloclist(0) )
-                    call setwinvar(win, 'quickfix_title', ':SyntasticCheck ' . self._name)
-                    call setbufvar(buf, 'syntastic_owner_buffer', self._owner)
-                endif
-            endif
-        endfor
-    endif
-endfunction " }}}2
-
-" }}}1
-
-" Public functions {{{1
-
-function! SyntasticLoclistHide() abort " {{{2
-    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'loclist: hide')
-    silent! lclose
-endfunction " }}}2
-
-" }}}1
-
-" Utilities {{{1
-
-function! s:_translate(key, val) abort " {{{2
-    return 'get(v:val, ' . string(a:key) . ', "") ==? ' . string(a:val)
-endfunction " }}}2
-
-function! s:_set_screen_column(item) abort " {{{2
-    if !has_key(a:item, 'scol')
-        let col = get(a:item, 'col', 0)
-        if col != 0 && get(a:item, 'vcol', 0) == 0
-            let buf = str2nr(a:item['bufnr'])
-            try
-                let line = getbufline(buf, a:item['lnum'])[0]
-            catch  /\m^Vim\%((\a\+)\)\=:E684/
-                let line = ''
-            endtry
-            let a:item['scol'] = syntastic#util#screenWidth(strpart(line, 0, col), getbufvar(buf, '&tabstop'))
-        else
-            let a:item['scol'] = col
-        endif
-    endif
-endfunction " }}}2
-
-function! s:_remove_shadowed_items(errors) abort " {{{2
-    " keep only the first message at a given column
-    let i = 0
-    while i < len(a:errors) - 1
-        let j = i + 1
-        let dupes = 0
-        while j < len(a:errors) && a:errors[j].scol == a:errors[i].scol
-            let dupes = 1
-            let j += 1
-        endwhile
-        if dupes
-            call remove(a:errors, i + 1, j - 1)
-        endif
-        let i += 1
-    endwhile
-
-    " merge messages with the same text
-    let i = 0
-    while i < len(a:errors) - 1
-        let j = i + 1
-        let dupes = 0
-        while j < len(a:errors) && a:errors[j].text == a:errors[i].text
-            let dupes = 1
-            let j += 1
-        endwhile
-        if dupes
-            call remove(a:errors, i + 1, j - 1)
-        endif
-        let i += 1
-    endwhile
-endfunction " }}}2
-
-function! s:_compare_error_items_by_columns(a, b) abort " {{{2
-    if a:a['bufnr'] != a:b['bufnr']
-        " group by file
-        return a:a['bufnr'] - a:b['bufnr']
-    elseif a:a['lnum'] != a:b['lnum']
-        " sort by line
-        return a:a['lnum'] - a:b['lnum']
-    elseif a:a['scol'] != a:b['scol']
-        " sort by screen column
-        return a:a['scol'] - a:b['scol']
-    elseif a:a['type'] !=? a:b['type']
-        " errors take precedence over warnings
-        return a:a['type'] ==? 'E' ? -1 : 1
-    else
-        return 0
-    endif
-endfunction " }}}2
-
-function! s:_compare_error_items_by_lines(a, b) abort " {{{2
-    if a:a['bufnr'] != a:b['bufnr']
-        " group by file
-        return a:a['bufnr'] - a:b['bufnr']
-    elseif a:a['lnum'] != a:b['lnum']
-        " sort by line
-        return a:a['lnum'] - a:b['lnum']
-    elseif a:a['type'] !=? a:b['type']
-        " errors take precedence over warnings
-        return a:a['type'] ==? 'E' ? -1 : 1
-    else
-        " sort by screen column
-        return a:a['scol'] - a:b['scol']
-    endif
-endfunction " }}}2
-
-" }}}1
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 117
vim/plugin/syntastic/modemap.vim

@@ -1,117 +0,0 @@
-if exists('g:loaded_syntastic_modemap') || !exists('g:loaded_syntastic_plugin')
-    finish
-endif
-let g:loaded_syntastic_modemap = 1
-
-let g:SyntasticModeMap = {}
-
-" Public methods {{{1
-
-function! g:SyntasticModeMap.Instance() abort " {{{2
-    if !exists('s:SyntasticModeMapInstance')
-        let s:SyntasticModeMapInstance = copy(self)
-        call s:SyntasticModeMapInstance.synch()
-    endif
-
-    return s:SyntasticModeMapInstance
-endfunction " }}}2
-
-function! g:SyntasticModeMap.synch() abort " {{{2
-    if exists('g:syntastic_mode_map')
-        let self._mode = get(g:syntastic_mode_map, 'mode', 'active')
-        let self._activeFiletypes = copy(get(g:syntastic_mode_map, 'active_filetypes', []))
-        let self._passiveFiletypes = copy(get(g:syntastic_mode_map, 'passive_filetypes', []))
-    else
-        let self._mode = 'active'
-        let self._activeFiletypes = []
-        let self._passiveFiletypes = []
-    endif
-endfunction " }}}2
-
-function! g:SyntasticModeMap.allowsAutoChecking(filetype) abort " {{{2
-    let fts = split(a:filetype, '\m\.')
-
-    if self.isPassive()
-        return self._isOneFiletypeActive(fts)
-    else
-        return self._noFiletypesArePassive(fts)
-    endif
-endfunction " }}}2
-
-function! g:SyntasticModeMap.doAutoChecking() abort " {{{2
-    let local_mode = get(b:, 'syntastic_mode', '')
-    if local_mode ==# 'active' || local_mode ==# 'passive'
-        return local_mode ==# 'active'
-    endif
-
-    return self.allowsAutoChecking(&filetype)
-endfunction " }}}2
-
-function! g:SyntasticModeMap.isPassive() abort " {{{2
-    return self._mode ==# 'passive'
-endfunction " }}}2
-
-function! g:SyntasticModeMap.toggleMode() abort " {{{2
-    call self.synch()
-
-    if self._mode ==# 'active'
-        let self._mode = 'passive'
-    else
-        let self._mode = 'active'
-    endif
-
-    "XXX Changing a global variable.  Tsk, tsk...
-    if !exists('g:syntastic_mode_map')
-        let g:syntastic_mode_map = {}
-    endif
-    let g:syntastic_mode_map['mode'] = self._mode
-endfunction " }}}2
-
-function! g:SyntasticModeMap.echoMode() abort " {{{2
-    echo 'Syntastic: ' . self._mode . ' mode enabled'
-endfunction " }}}2
-
-function! g:SyntasticModeMap.modeInfo(filetypes) abort " {{{2
-    echomsg 'Syntastic version: ' . g:_SYNTASTIC_VERSION . ' (Vim ' . v:version . ', ' . g:_SYNTASTIC_UNAME . ')'
-    let type = len(a:filetypes) ? a:filetypes[0] : &filetype
-    echomsg 'Info for filetype: ' . type
-
-    call self.synch()
-    echomsg 'Global mode: ' . self._mode
-    if self._mode ==# 'active'
-        if len(self._passiveFiletypes)
-            let plural = len(self._passiveFiletypes) != 1 ? 's' : ''
-            echomsg 'Passive filetype' . plural . ': ' . join(sort(copy(self._passiveFiletypes)))
-        endif
-    else
-        if len(self._activeFiletypes)
-            let plural = len(self._activeFiletypes) != 1 ? 's' : ''
-            echomsg 'Active filetype' . plural . ': ' . join(sort(copy(self._activeFiletypes)))
-        endif
-    endif
-    echomsg 'Filetype ' . type . ' is ' . (self.allowsAutoChecking(type) ? 'active' : 'passive')
-
-    if !len(a:filetypes)
-        if exists('b:syntastic_mode') && (b:syntastic_mode ==# 'active' || b:syntastic_mode ==# 'passive')
-            echomsg 'Local mode: ' . b:syntastic_mode
-        endif
-
-        echomsg 'The current file will ' . (self.doAutoChecking() ? '' : 'not ') . 'be checked automatically'
-    endif
-endfunction " }}}2
-
-" }}}1
-
-" Private methods {{{1
-
-function! g:SyntasticModeMap._isOneFiletypeActive(filetypes) abort " {{{2
-    return !empty(filter(copy(a:filetypes), 'index(self._activeFiletypes, v:val) != -1'))
-endfunction " }}}2
-
-function! g:SyntasticModeMap._noFiletypesArePassive(filetypes) abort " {{{2
-    return empty(filter(copy(a:filetypes), 'index(self._passiveFiletypes, v:val) != -1'))
-endfunction " }}}2
-
-" }}}1
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 86
vim/plugin/syntastic/notifiers.vim

@@ -1,86 +0,0 @@
-if exists('g:loaded_syntastic_notifiers') || !exists('g:loaded_syntastic_plugin')
-    finish
-endif
-let g:loaded_syntastic_notifiers = 1
-
-let g:SyntasticNotifiers = {}
-
-let s:_NOTIFIER_TYPES = ['signs', 'balloons', 'highlighting', 'cursor', 'autoloclist']
-lockvar! s:_NOTIFIER_TYPES
-
-let s:_PERSISTENT_NOTIFIERS = ['signs', 'balloons']
-lockvar! s:_PERSISTENT_NOTIFIERS
-
-" Public methods {{{1
-
-function! g:SyntasticNotifiers.Instance() abort " {{{2
-    if !exists('s:SyntasticNotifiersInstance')
-        let s:SyntasticNotifiersInstance = copy(self)
-        call s:SyntasticNotifiersInstance._initNotifiers()
-    endif
-
-    return s:SyntasticNotifiersInstance
-endfunction " }}}2
-
-function! g:SyntasticNotifiers.refresh(loclist) abort " {{{2
-    if !a:loclist.isEmpty() && !a:loclist.isNewerThan([])
-        " loclist not fully constructed yet
-        return
-    endif
-
-    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'notifiers: refresh')
-    for type in self._enabled_types
-        let class = substitute(type, '\m.*', 'Syntastic\u&Notifier', '')
-        if !has_key(g:{class}, 'enabled') || self._notifier[type].enabled()
-            if index(s:_PERSISTENT_NOTIFIERS, type) > -1
-                " refresh only if loclist has changed since last call
-                if !exists('b:syntastic_private_' . type . '_stamp')
-                    let b:syntastic_private_{type}_stamp = []
-                endif
-                if a:loclist.isNewerThan(b:syntastic_private_{type}_stamp) || a:loclist.isEmpty()
-                    call self._notifier[type].refresh(a:loclist)
-                    let b:syntastic_private_{type}_stamp = syntastic#util#stamp()
-                endif
-            else
-                call self._notifier[type].refresh(a:loclist)
-            endif
-        endif
-    endfor
-endfunction " }}}2
-
-function! g:SyntasticNotifiers.reset(loclist) abort " {{{2
-    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'notifiers: reset')
-    for type in self._enabled_types
-        let class = substitute(type, '\m.*', 'Syntastic\u&Notifier', '')
-
-        " reset notifiers regardless if they are enabled or not, since
-        " the user might have disabled them since the last refresh();
-        " notifiers MUST be prepared to deal with reset() when disabled
-        if has_key(g:{class}, 'reset')
-            call self._notifier[type].reset(a:loclist)
-        endif
-
-        " also reset stamps
-        if index(s:_PERSISTENT_NOTIFIERS, type) > -1
-            let b:syntastic_private_{type}_stamp = []
-        endif
-    endfor
-endfunction " }}}2
-
-" }}}1
-
-" Private methods {{{1
-
-function! g:SyntasticNotifiers._initNotifiers() abort " {{{2
-    let self._notifier = {}
-    for type in s:_NOTIFIER_TYPES
-        let class = substitute(type, '\m.*', 'Syntastic\u&Notifier', '')
-        let self._notifier[type] = g:{class}.New()
-    endfor
-
-    let self._enabled_types = copy(s:_NOTIFIER_TYPES)
-endfunction " }}}2
-
-" }}}1
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 333
vim/plugin/syntastic/registry.vim

@@ -1,333 +0,0 @@
-if exists('g:loaded_syntastic_registry') || !exists('g:loaded_syntastic_plugin')
-    finish
-endif
-let g:loaded_syntastic_registry = 1
-
-" Initialisation {{{1
-
-let s:_DEFAULT_CHECKERS = {
-        \ 'actionscript':  ['mxmlc'],
-        \ 'ada':           ['gcc'],
-        \ 'apiblueprint':  ['snowcrash'],
-        \ 'applescript':   ['osacompile'],
-        \ 'asciidoc':      ['asciidoc'],
-        \ 'asm':           ['gcc'],
-        \ 'bro':           ['bro'],
-        \ 'bemhtml':       ['bemhtmllint'],
-        \ 'c':             ['gcc'],
-        \ 'cabal':         ['cabal'],
-        \ 'chef':          ['foodcritic'],
-        \ 'co':            ['coco'],
-        \ 'cobol':         ['cobc'],
-        \ 'coffee':        ['coffee', 'coffeelint'],
-        \ 'coq':           ['coqtop'],
-        \ 'cpp':           ['gcc'],
-        \ 'cs':            ['mcs'],
-        \ 'css':           ['csslint'],
-        \ 'cucumber':      ['cucumber'],
-        \ 'cuda':          ['nvcc'],
-        \ 'd':             ['dmd'],
-        \ 'dart':          ['dartanalyzer'],
-        \ 'docbk':         ['xmllint'],
-        \ 'dustjs':        ['swiffer'],
-        \ 'elixir':        [],
-        \ 'erlang':        ['escript'],
-        \ 'eruby':         ['ruby'],
-        \ 'fortran':       ['gfortran'],
-        \ 'glsl':          ['cgc'],
-        \ 'go':            ['go'],
-        \ 'haml':          ['haml'],
-        \ 'handlebars':    ['handlebars'],
-        \ 'haskell':       ['ghc_mod', 'hdevtools', 'hlint'],
-        \ 'haxe':          ['haxe'],
-        \ 'hss':           ['hss'],
-        \ 'html':          ['tidy'],
-        \ 'java':          ['javac'],
-        \ 'javascript':    ['jshint', 'jslint'],
-        \ 'json':          ['jsonlint', 'jsonval'],
-        \ 'less':          ['lessc'],
-        \ 'lex':           ['flex'],
-        \ 'limbo':         ['limbo'],
-        \ 'lisp':          ['clisp'],
-        \ 'llvm':          ['llvm'],
-        \ 'lua':           ['luac'],
-        \ 'markdown':      ['mdl'],
-        \ 'matlab':        ['mlint'],
-        \ 'mercury':       ['mmc'],
-        \ 'nasm':          ['nasm'],
-        \ 'nroff':         ['mandoc'],
-        \ 'objc':          ['gcc'],
-        \ 'objcpp':        ['gcc'],
-        \ 'ocaml':         ['camlp4o'],
-        \ 'perl':          ['perlcritic'],
-        \ 'php':           ['php', 'phpcs', 'phpmd'],
-        \ 'po':            ['msgfmt'],
-        \ 'pod':           ['podchecker'],
-        \ 'puppet':        ['puppet', 'puppetlint'],
-        \ 'python':        ['python', 'flake8', 'pylint'],
-        \ 'r':             [],
-        \ 'racket':        ['racket'],
-        \ 'rnc':           ['rnv'],
-        \ 'rst':           ['rst2pseudoxml'],
-        \ 'ruby':          ['mri'],
-        \ 'sass':          ['sass'],
-        \ 'scala':         ['fsc', 'scalac'],
-        \ 'scss':          ['sass', 'scss_lint'],
-        \ 'sh':            ['sh', 'shellcheck'],
-        \ 'slim':          ['slimrb'],
-        \ 'sml':           ['smlnj'],
-        \ 'spec':          ['rpmlint'],
-        \ 'tcl':           ['nagelfar'],
-        \ 'tex':           ['lacheck', 'chktex'],
-        \ 'texinfo':       ['makeinfo'],
-        \ 'text':          [],
-        \ 'twig':          ['twiglint'],
-        \ 'typescript':    ['tsc'],
-        \ 'vala':          ['valac'],
-        \ 'verilog':       ['verilator'],
-        \ 'vhdl':          ['ghdl'],
-        \ 'vim':           ['vimlint'],
-        \ 'xhtml':         ['tidy'],
-        \ 'xml':           ['xmllint'],
-        \ 'xslt':          ['xmllint'],
-        \ 'yacc':          ['bison'],
-        \ 'yaml':          ['jsyaml'],
-        \ 'z80':           ['z80syntaxchecker'],
-        \ 'zpt':           ['zptlint'],
-        \ 'zsh':           ['zsh'],
-    \ }
-lockvar! s:_DEFAULT_CHECKERS
-
-let s:_DEFAULT_FILETYPE_MAP = {
-        \ 'gentoo-metadata': 'xml',
-        \ 'groff': 'nroff',
-        \ 'lhaskell': 'haskell',
-        \ 'litcoffee': 'coffee',
-        \ 'mail': 'text',
-        \ 'mkd': 'markdown',
-        \ 'pe-puppet': 'puppet',
-        \ 'sgml': 'docbk',
-        \ 'sgmllnx': 'docbk',
-    \ }
-lockvar! s:_DEFAULT_FILETYPE_MAP
-
-let s:_ECLIM_TYPES = [
-        \ 'c',
-        \ 'cpp',
-        \ 'html',
-        \ 'java',
-        \ 'php',
-        \ 'python',
-        \ 'ruby',
-    \ ]
-lockvar! s:_ECLIM_TYPES
-
-let s:_YCM_TYPES = [
-        \ 'c',
-        \ 'cpp',
-        \ 'objc',
-        \ 'objcpp',
-    \ ]
-lockvar! s:_YCM_TYPES
-
-let g:SyntasticRegistry = {}
-
-" }}}1
-
-" Public methods {{{1
-
-" Note: Handling of filetype aliases: all public methods take aliases as
-" parameters, all private methods take normalized filetypes.  Public methods
-" are thus supposed to normalize filetypes before calling private methods.
-
-function! g:SyntasticRegistry.Instance() abort " {{{2
-    if !exists('s:SyntasticRegistryInstance')
-        let s:SyntasticRegistryInstance = copy(self)
-        let s:SyntasticRegistryInstance._checkerMap = {}
-    endif
-
-    return s:SyntasticRegistryInstance
-endfunction " }}}2
-
-function! g:SyntasticRegistry.CreateAndRegisterChecker(args) abort " {{{2
-    let checker = g:SyntasticChecker.New(a:args)
-    let registry = g:SyntasticRegistry.Instance()
-    call registry._registerChecker(checker)
-endfunction " }}}2
-
-" Given a list of checker names hints_list, return a map name --> checker.
-" If hints_list is empty, user settings are are used instead. Checkers are
-" not checked for availability (that is, the corresponding IsAvailable() are
-" not run).
-function! g:SyntasticRegistry.getCheckers(ftalias, hints_list) abort " {{{2
-    let ft = s:_normalise_filetype(a:ftalias)
-    call self._loadCheckersFor(ft)
-
-    let checkers_map = self._checkerMap[ft]
-    if empty(checkers_map)
-        return []
-    endif
-
-    call self._checkDeprecation(ft)
-
-    let names =
-        \ !empty(a:hints_list) ? syntastic#util#unique(a:hints_list) :
-        \ exists('b:syntastic_checkers') ? b:syntastic_checkers :
-        \ exists('g:syntastic_' . ft . '_checkers') ? g:syntastic_{ft}_checkers :
-        \ get(s:_DEFAULT_CHECKERS, ft, 0)
-
-    return type(names) == type([]) ?
-        \ self._filterCheckersByName(checkers_map, names) : [checkers_map[keys(checkers_map)[0]]]
-endfunction " }}}2
-
-" Same as getCheckers(), but keep only the checkers available.  This runs the
-" corresponding IsAvailable() functions for all checkers.
-function! g:SyntasticRegistry.getCheckersAvailable(ftalias, hints_list) abort " {{{2
-    return filter(self.getCheckers(a:ftalias, a:hints_list), 'v:val.isAvailable()')
-endfunction " }}}2
-
-function! g:SyntasticRegistry.getKnownFiletypes() abort " {{{2
-    let types = keys(s:_DEFAULT_CHECKERS)
-
-    call extend(types, keys(s:_DEFAULT_FILETYPE_MAP))
-
-    if exists('g:syntastic_filetype_map')
-        call extend(types, keys(g:syntastic_filetype_map))
-    endif
-
-    if exists('g:syntastic_extra_filetypes') && type(g:syntastic_extra_filetypes) == type([])
-        call extend(types, g:syntastic_extra_filetypes)
-    endif
-
-    return syntastic#util#unique(types)
-endfunction " }}}2
-
-function! g:SyntasticRegistry.getNamesOfAvailableCheckers(ftalias) abort " {{{2
-    let ft = s:_normalise_filetype(a:ftalias)
-    call self._loadCheckersFor(ft)
-    return keys(filter( copy(self._checkerMap[ft]), 'v:val.isAvailable()' ))
-endfunction " }}}2
-
-function! g:SyntasticRegistry.echoInfoFor(ftalias_list) abort " {{{2
-    let ft_list = syntastic#util#unique(map( copy(a:ftalias_list), 's:_normalise_filetype(v:val)' ))
-    if len(ft_list) != 1
-        let available = []
-        let active = []
-
-        for ft in ft_list
-            call extend(available, map( self.getNamesOfAvailableCheckers(ft), 'ft . "/" . v:val' ))
-            call extend(active, map( self.getCheckersAvailable(ft, []), 'ft . "/" . v:val.getName()' ))
-        endfor
-    else
-        let ft = ft_list[0]
-        let available = self.getNamesOfAvailableCheckers(ft)
-        let active = map(self.getCheckersAvailable(ft, []), 'v:val.getName()')
-    endif
-
-    let cnt = len(available)
-    let plural = cnt != 1 ? 's' : ''
-    let cklist = cnt ? join(sort(available)) : '-'
-    echomsg 'Available checker' . plural . ': ' . cklist
-
-    let cnt = len(active)
-    let plural = cnt != 1 ? 's' : ''
-    let cklist = cnt ? join(active) : '-'
-    echomsg 'Currently enabled checker' . plural . ': ' . cklist
-
-    " Eclim feels entitled to mess with syntastic's variables {{{3
-    if exists(':EclimValidate') && get(g:, 'EclimFileTypeValidate', 1)
-        let disabled = filter(copy(ft_list), 's:_disabled_by_eclim(v:val)')
-        let cnt = len(disabled)
-        if cnt
-            let plural = cnt != 1 ? 's' : ''
-            let cklist = join(disabled, ', ')
-            echomsg 'Checkers for filetype' . plural . ' ' . cklist . ' possibly disabled by Eclim'
-        endif
-    endif
-    " }}}3
-
-    " So does YouCompleteMe {{{3
-    if exists('g:loaded_youcompleteme') && get(g:, 'ycm_show_diagnostics_ui', get(g:, 'ycm_register_as_syntastic_checker', 1))
-        let disabled = filter(copy(ft_list), 's:_disabled_by_ycm(v:val)')
-        let cnt = len(disabled)
-        if cnt
-            let plural = cnt != 1 ? 's' : ''
-            let cklist = join(disabled, ', ')
-            echomsg 'Checkers for filetype' . plural . ' ' . cklist . ' possibly disabled by YouCompleteMe'
-        endif
-    endif
-    " }}}3
-endfunction " }}}2
-
-" }}}1
-
-" Private methods {{{1
-
-function! g:SyntasticRegistry._registerChecker(checker) abort " {{{2
-    let ft = a:checker.getFiletype()
-    if !has_key(self._checkerMap, ft)
-        let self._checkerMap[ft] = {}
-    endif
-
-    let name = a:checker.getName()
-    if has_key(self._checkerMap[ft], name)
-        throw 'Syntastic: Duplicate syntax checker name: ' . ft . '/' . name
-    endif
-
-    let self._checkerMap[ft][name] = a:checker
-endfunction " }}}2
-
-function! g:SyntasticRegistry._filterCheckersByName(checkers_map, list) abort " {{{2
-    return filter( map(copy(a:list), 'get(a:checkers_map, v:val, {})'), '!empty(v:val)' )
-endfunction " }}}2
-
-function! g:SyntasticRegistry._loadCheckersFor(filetype) abort " {{{2
-    if has_key(self._checkerMap, a:filetype)
-        return
-    endif
-
-    execute 'runtime! syntax_checkers/' . a:filetype . '/*.vim'
-
-    if !has_key(self._checkerMap, a:filetype)
-        let self._checkerMap[a:filetype] = {}
-    endif
-endfunction " }}}2
-
-" Check for obsolete variable g:syntastic_<filetype>_checker
-function! g:SyntasticRegistry._checkDeprecation(filetype) abort " {{{2
-    if exists('g:syntastic_' . a:filetype . '_checker') && !exists('g:syntastic_' . a:filetype . '_checkers')
-        let g:syntastic_{a:filetype}_checkers = [g:syntastic_{a:filetype}_checker]
-        call syntastic#log#oneTimeWarn('variable g:syntastic_' . a:filetype . '_checker is deprecated')
-    endif
-endfunction " }}}2
-
-" }}}1
-
-" Utilities {{{1
-
-"resolve filetype aliases, and replace - with _ otherwise we cant name
-"syntax checker functions legally for filetypes like "gentoo-metadata"
-function! s:_normalise_filetype(ftalias) abort " {{{2
-    let ft = get(s:_DEFAULT_FILETYPE_MAP, a:ftalias, a:ftalias)
-    let ft = get(g:syntastic_filetype_map, ft, ft)
-    let ft = substitute(ft, '\m-', '_', 'g')
-    return ft
-endfunction " }}}2
-
-function! s:_disabled_by_eclim(filetype) abort " {{{2
-    if index(s:_ECLIM_TYPES, a:filetype) >= 0
-        let lang = toupper(a:filetype[0]) . a:filetype[1:]
-        let ft = a:filetype !=# 'cpp' ? lang : 'C'
-        return get(g:, 'Eclim' . lang . 'Validate', 1) && !get(g:, 'Eclim' . ft . 'SyntasticEnabled', 0)
-    endif
-
-    return 0
-endfunction " }}}2
-
-function! s:_disabled_by_ycm(filetype) abort " {{{2
-    return index(s:_YCM_TYPES, a:filetype) >= 0
-endfunction " }}}2
-
-" }}}1
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 138
vim/plugin/syntastic/signs.vim

@@ -1,138 +0,0 @@
-if exists('g:loaded_syntastic_notifier_signs') || !exists('g:loaded_syntastic_plugin')
-    finish
-endif
-let g:loaded_syntastic_notifier_signs = 1
-
-" Initialisation {{{1
-
-" start counting sign ids at 5000, start here to hopefully avoid conflicting
-" with any other code that places signs (not sure if this precaution is
-" actually needed)
-let s:first_sign_id = 5000
-let s:next_sign_id = s:first_sign_id
-
-let g:SyntasticSignsNotifier = {}
-
-let s:setup_done = 0
-
-" }}}1
-
-" Public methods {{{1
-
-function! g:SyntasticSignsNotifier.New() abort " {{{2
-    let newObj = copy(self)
-
-    if !s:setup_done
-        call self._setup()
-        let s:setup_done = 1
-        lockvar s:setup_done
-    endif
-
-    return newObj
-endfunction " }}}2
-
-function! g:SyntasticSignsNotifier.enabled() abort " {{{2
-    return has('signs') && syntastic#util#var('enable_signs')
-endfunction " }}}2
-
-function! g:SyntasticSignsNotifier.refresh(loclist) abort " {{{2
-    call syntastic#log#debug(g:_SYNTASTIC_DEBUG_NOTIFICATIONS, 'signs: refresh')
-    let old_signs = copy(self._bufSignIds())
-    if self.enabled()
-        call self._signErrors(a:loclist)
-    endif
-    call self._removeSigns(old_signs)
-endfunction " }}}2
-
-" }}}1
-
-" Private methods {{{1
-
-" One time setup: define our own sign types and highlighting
-function! g:SyntasticSignsNotifier._setup() abort " {{{2
-    if has('signs')
-        if !hlexists('SyntasticErrorSign')
-            highlight link SyntasticErrorSign error
-        endif
-        if !hlexists('SyntasticWarningSign')
-            highlight link SyntasticWarningSign todo
-        endif
-        if !hlexists('SyntasticStyleErrorSign')
-            highlight link SyntasticStyleErrorSign SyntasticErrorSign
-        endif
-        if !hlexists('SyntasticStyleWarningSign')
-            highlight link SyntasticStyleWarningSign SyntasticWarningSign
-        endif
-        if !hlexists('SyntasticStyleErrorLine')
-            highlight link SyntasticStyleErrorLine SyntasticErrorLine
-        endif
-        if !hlexists('SyntasticStyleWarningLine')
-            highlight link SyntasticStyleWarningLine SyntasticWarningLine
-        endif
-
-        " define the signs used to display syntax and style errors/warns
-        execute 'sign define SyntasticError text=' . g:syntastic_error_symbol .
-            \ ' texthl=SyntasticErrorSign linehl=SyntasticErrorLine'
-        execute 'sign define SyntasticWarning text=' . g:syntastic_warning_symbol .
-            \ ' texthl=SyntasticWarningSign linehl=SyntasticWarningLine'
-        execute 'sign define SyntasticStyleError text=' . g:syntastic_style_error_symbol .
-            \ ' texthl=SyntasticStyleErrorSign linehl=SyntasticStyleErrorLine'
-        execute 'sign define SyntasticStyleWarning text=' . g:syntastic_style_warning_symbol .
-            \ ' texthl=SyntasticStyleWarningSign linehl=SyntasticStyleWarningLine'
-    endif
-endfunction " }}}2
-
-" Place signs by all syntax errors in the buffer
-function! g:SyntasticSignsNotifier._signErrors(loclist) abort " {{{2
-    let loclist = a:loclist
-    if !loclist.isEmpty()
-
-        let buf = bufnr('')
-        if !bufloaded(buf)
-            " signs can be placed only in loaded buffers
-            return
-        endif
-
-        " errors come first, so that they are not masked by warnings
-        let issues = copy(loclist.errors())
-        call extend(issues, loclist.warnings())
-        call filter(issues, 'v:val["bufnr"] == buf')
-        let seen = {}
-
-        for i in issues
-            if i['lnum'] > 0 && !has_key(seen, i['lnum'])
-                let seen[i['lnum']] = 1
-
-                let sign_severity = i['type'] ==? 'W' ? 'Warning' : 'Error'
-                let sign_subtype = get(i, 'subtype', '')
-                let sign_type = 'Syntastic' . sign_subtype . sign_severity
-
-                execute 'sign place ' . s:next_sign_id . ' line=' . i['lnum'] . ' name=' . sign_type . ' buffer=' . i['bufnr']
-                call add(self._bufSignIds(), s:next_sign_id)
-                let s:next_sign_id += 1
-            endif
-        endfor
-    endif
-endfunction " }}}2
-
-" Remove the signs with the given ids from this buffer
-function! g:SyntasticSignsNotifier._removeSigns(ids) abort " {{{2
-    if has('signs')
-        for s in reverse(copy(a:ids))
-            execute 'sign unplace ' . s
-            call remove(self._bufSignIds(), index(self._bufSignIds(), s))
-        endfor
-    endif
-endfunction " }}}2
-
-" Get all the ids of the SyntaxError signs in the buffer
-function! g:SyntasticSignsNotifier._bufSignIds() abort " {{{2
-    if !exists('b:syntastic_private_sign_ids')
-        let b:syntastic_private_sign_ids = []
-    endif
-    return b:syntastic_private_sign_ids
-endfunction " }}}2
-
-" }}}1
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 67
vim/syntax_checkers/actionscript/mxmlc.vim

@@ -1,67 +0,0 @@
-"============================================================================
-"File:        mxmlc.vim
-"Description: ActionScript syntax checker - using mxmlc
-"Maintainer:  Andy Earnshaw <andyearnshaw@gmail.com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"============================================================================
-
-if exists('g:loaded_syntastic_actionscript_mxmlc_checker')
-    finish
-endif
-let g:loaded_syntastic_actionscript_mxmlc_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_actionscript_mxmlc_GetHighlightRegex(item)
-    let term = ''
-
-    if match(a:item['text'], '\mvariable ''') > -1
-        let term = matchstr(a:item['text'], '\m''\zs[^'']\+\ze''')
-
-    elseif match(a:item['text'], 'expected a definition keyword') > -1
-        let term = matchstr(a:item['text'], '\mnot \zs[^.]\+\ze\.')
-
-    elseif match(a:item['text'], '\mundefined \%(property\|method\)') > -1
-        let term = matchstr(a:item['text'], '\mundefined \%(property\|method\) \zs[^. ]\+\ze')
-
-    elseif match(a:item['text'], 'could not be found') > -1
-        let term = matchstr(a:item['text'], '\m \zs\S\+\ze could not be found')
-
-    elseif match(a:item['text'], 'Type was not found') > -1
-        let term = matchstr(a:item['text'], '\m: \zs[^.]\+\zs\.')
-
-    endif
-
-    return term !=# '' ? '\V\<' . escape(term, '\') . '\>' : ''
-endfunction
-
-function! SyntaxCheckers_actionscript_mxmlc_GetLocList() dict
-    call syntastic#log#deprecationWarn('actionscript_mxmlc_conf', 'actionscript_mxmlc_args',
-        \ "'-load-config+=' . syntastic#util#shexpand(OLD_VAR)")
-
-    let makeprg = self.makeprgBuild({ 'args_after': '-output=' . syntastic#util#DevNull() })
-
-    let errorformat =
-        \ '%f(%l): col: %c %trror: %m,' .
-        \ '%f(%l): col: %c %tarning: %m,' .
-        \ '%f: %trror: %m,' .
-        \ '%-G%.%#'
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'actionscript',
-    \ 'name': 'mxmlc'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 47
vim/syntax_checkers/ada/gcc.vim

@@ -1,47 +0,0 @@
-"============================================================================
-"File:        ada.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  Alfredo Di Napoli <alfredo.dinapoli@gmail.com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_ada_gcc_checker')
-    finish
-endif
-let g:loaded_syntastic_ada_gcc_checker = 1
-
-if !exists('g:syntastic_ada_compiler_options')
-    let g:syntastic_ada_compiler_options = ''
-endif
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_ada_gcc_IsAvailable() dict
-    if !exists('g:syntastic_ada_compiler')
-        let g:syntastic_ada_compiler = self.getExec()
-    endif
-    return executable(expand(g:syntastic_ada_compiler, 1))
-endfunction
-
-function! SyntaxCheckers_ada_gcc_GetLocList() dict
-    return syntastic#c#GetLocList('ada', 'gcc', {
-        \ 'errorformat':
-        \     '%-G%f:%s:,' .
-        \     '%f:%l:%c: %m,' .
-        \     '%f:%l: %m',
-        \ 'main_flags': '-c -x ada -fsyntax-only',
-        \ 'header_flags': '-x ada',
-        \ 'header_names': '\.ads$' })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'ada',
-    \ 'name': 'gcc' })
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 66
vim/syntax_checkers/apiblueprint/snowcrash.vim

@@ -1,66 +0,0 @@
-"============================================================================
-"File:        snowcrash.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  LCD 47 <lcd047 at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_apiblueprint_snowcrash_checker')
-    finish
-endif
-let g:loaded_syntastic_apiblueprint_snowcrash_checker = 1
-
-if !exists('g:syntastic_apiblueprint_snowcrash_sort')
-    let g:syntastic_apiblueprint_snowcrash_sort = 1
-endif
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_apiblueprint_snowcrash_GetLocList() dict
-    let makeprg = self.makeprgBuild({ 'post_args': '-u -l' })
-
-    let errorformat =
-        \ '%trror: (%n)  %m,' .
-        \ '%tarning: (%n)  %m,' .
-        \ '%-G%.%#'
-
-    let loclist = SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'defaults': {'bufnr': bufnr('')},
-        \ 'returns': [0, 2] })
-
-    for e in loclist
-        let matches = matchlist(e['text'], '\v^(.+); line (\d+), column (\d+) - line (\d+), column (\d+)$')
-        if len(matches) > 5
-            let e['lnum'] = str2nr(matches[2])
-            let e['col']  = str2nr(matches[3])
-            let e['vcol'] = 0
-
-            if matches[2] == matches[4]
-                let e['hl'] = '\%>' . (e['col'] - 1) . 'c\%<' . matches[5] . 'c'
-            endif
-
-            let e['text'] = matches[1]
-        else
-            let e['valid'] = 0
-        endif
-    endfor
-
-    return loclist
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'apiblueprint',
-    \ 'name': 'snowcrash'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 49
vim/syntax_checkers/applescript/osacompile.vim

@@ -1,49 +0,0 @@
-"==============================================================================
-"       FileName: applescript.vim
-"           Desc: Syntax checking plugin for syntastic.vim
-"         Author: Zhao Cai
-"          Email: caizhaoff@gmail.com
-"        Version: 0.2.1
-"   Date Created: Thu 09 Sep 2011 10:30:09 AM EST
-"  Last Modified: Fri 09 Dec 2011 01:10:24 PM EST
-"
-"        History: 0.1.0 - working, but it will run the script everytime to check
-"                 syntax. Should use osacompile but strangely it does not give
-"                 errors.
-"
-"                 0.2.0 - switch to osacompile, it gives less errors compared
-"                 with osascript.
-"
-"                 0.2.1 - remove g:syntastic_applescript_tempfile. use
-"                 tempname() instead.
-"
-"        License: This program is free software. It comes without any
-"        warranty, to the extent permitted by applicable law. You can
-"        redistribute it and/or modify it under the terms of the Do What The
-"        Fuck You Want To Public License, Version 2, as published by Sam
-"        Hocevar.  See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_applescript_osacompile_checker')
-    finish
-endif
-let g:loaded_syntastic_applescript_osacompile_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_applescript_osacompile_GetLocList() dict
-    let makeprg = self.makeprgBuild({ 'args_after': '-o ' . tempname() . '.scpt' })
-    let errorformat = '%f:%l:%m'
-    return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'applescript',
-    \ 'name': 'osacompile' })
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 47
vim/syntax_checkers/asciidoc/asciidoc.vim

@@ -1,47 +0,0 @@
-"============================================================================
-"File:        asciidoc.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  LCD 47 <lcd047 at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_asciidoc_asciidoc_checker')
-    finish
-endif
-let g:loaded_syntastic_asciidoc_asciidoc_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_asciidoc_asciidoc_GetLocList() dict
-    let makeprg = self.makeprgBuild({ 'args_after': syntastic#c#NullOutput() })
-
-    let errorformat =
-        \ '%Easciidoc: %tRROR: %f: line %l: %m,' .
-        \ '%Easciidoc: %tRROR: %f: %m,' .
-        \ '%Easciidoc: FAILED: %f: line %l: %m,' .
-        \ '%Easciidoc: FAILED: %f: %m,' .
-        \ '%Wasciidoc: %tARNING: %f: line %l: %m,' .
-        \ '%Wasciidoc: %tARNING: %f: %m,' .
-        \ '%Wasciidoc: DEPRECATED: %f: line %l: %m,' .
-        \ '%Wasciidoc: DEPRECATED: %f: %m'
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'returns': [0, 1] })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'asciidoc',
-    \ 'name': 'asciidoc'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 58
vim/syntax_checkers/asm/gcc.vim

@@ -1,58 +0,0 @@
-"============================================================================
-"File:        gcc.vim
-"Description: Syntax checking for at&t and intel assembly files with gcc
-"Maintainer:  Josh Rahm <joshuarahm@gmail.com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_asm_gcc_checker')
-    finish
-endif
-let g:loaded_syntastic_asm_gcc_checker = 1
-
-if !exists('g:syntastic_asm_compiler_options')
-    let g:syntastic_asm_compiler_options = ''
-endif
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_asm_gcc_IsAvailable() dict " {{{1
-    if !exists('g:syntastic_asm_compiler')
-        let g:syntastic_asm_compiler = self.getExec()
-    endif
-    return executable(expand(g:syntastic_asm_compiler, 1))
-endfunction " }}}1
-
-function! SyntaxCheckers_asm_gcc_GetLocList() dict " {{{1
-    return syntastic#c#GetLocList('asm', 'gcc', {
-        \ 'errorformat':
-        \     '%-G%f:%s:,' .
-        \     '%f:%l:%c: %trror: %m,' .
-        \     '%f:%l:%c: %tarning: %m,' .
-        \     '%f:%l: %m',
-        \ 'main_flags': '-x assembler -fsyntax-only -masm=' . s:GetDialect() })
-endfunction " }}}1
-
-" Utilities {{{1
-
-function! s:GetDialect() " {{{2
-    return exists('g:syntastic_asm_dialect') ? g:syntastic_asm_dialect :
-        \ expand('%:e', 1) ==? 'asm' ? 'intel' : 'att'
-endfunction " }}}2
-
-" }}}1
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'asm',
-    \ 'name': 'gcc' })
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 35
vim/syntax_checkers/bemhtml/bemhtmllint.vim

@@ -1,35 +0,0 @@
-"============================================================================
-"File:        bemhtmllint.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  Sergej Tatarincev <s.tatarincev at yandex.ua>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"============================================================================
-
-if exists('g:loaded_syntastic_bemhtml_bemhtmllint_checker')
-    finish
-endif
-
-let g:loaded_syntastic_bemhtml_bemhtmllint_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function SyntaxCheckers_bemhtml_bemhtmllint_GetLocList() dict
-    let makeprg = self.makeprgBuild({})
-    let errorformat = '%f:%l:%c: %m'
-    return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'bemhtml',
-    \ 'name': 'bemhtmllint',
-    \ 'exec': 'bemhtml-lint' })
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 60
vim/syntax_checkers/bro/bro.vim

@@ -1,60 +0,0 @@
-"============================================================================
-"File:        bro.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  Justin Azoff <justin.azoff@gmail.com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_bro_bro_checker')
-    finish
-endif
-let g:loaded_syntastic_bro_bro_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_bro_bro_GetHighlightRegex(item)
-    let term = matchstr(a:item['text'], '\m at or near "\zs[^"]\+\ze"')
-    return term !=# '' ? '\V\<' . escape(term, '\') . '\>' : ''
-endfunction
-
-function! SyntaxCheckers_bro_bro_IsAvailable() dict
-    if !executable(self.getExec())
-        return 0
-    endif
-
-    if syntastic#util#system(self.getExecEscaped() . ' --help') !~# '--parse-only'
-        call self.log('unknown option "--parse-only"')
-        return 0
-    endif
-
-    return 1
-endfunction
-
-function! SyntaxCheckers_bro_bro_GetLocList() dict
-    let makeprg = self.makeprgBuild({ 'args_before': '--parse-only' })
-
-    "example: error in ./foo.bro, line 3: unknown identifier banana, at or near "banana"
-    let errorformat =
-        \ 'fatal %trror in %f\, line %l: %m,' .
-        \ '%trror in %f\, line %l: %m,' .
-        \ '%tarning in %f\, line %l: %m'
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'bro',
-    \ 'name': 'bro'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 57
vim/syntax_checkers/c/avrgcc.vim

@@ -1,57 +0,0 @@
-"============================================================================
-"File:        avrgcc.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  Karel <karelishere at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_c_avrgcc_checker')
-    finish
-endif
-let g:loaded_syntastic_c_avrgcc_checker = 1
-
-if !exists('g:syntastic_avrgcc_config_file')
-    let g:syntastic_avrgcc_config_file = '.syntastic_avrgcc_config'
-endif
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_c_avrgcc_GetLocList() dict
-    let makeprg = self.makeprgBuild({
-        \ 'args_before': syntastic#c#ReadConfig(g:syntastic_avrgcc_config_file),
-        \ 'args_after': '-x c -fsyntax-only' })
-
-    let errorformat =
-        \ '%-G%f:%s:,' .
-        \ '%-G%f:%l: %#error: %#(Each undeclared identifier is reported only%.%#,' .
-        \ '%-G%f:%l: %#error: %#for each function it appears%.%#,' .
-        \ '%-GIn file included%.%#,' .
-        \ '%-G %#from %f:%l\,,' .
-        \ '%f:%l:%c: %trror: %m,' .
-        \ '%f:%l:%c: %tarning: %m,' .
-        \ '%f:%l:%c: %m,' .
-        \ '%f:%l: %trror: %m,' .
-        \ '%f:%l: %tarning: %m,'.
-        \ '%f:%l: %m'
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'postprocess': ['compressWhitespace'] })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'c',
-    \ 'name': 'avrgcc',
-    \ 'exec': 'avr-gcc'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 60
vim/syntax_checkers/c/checkpatch.vim

@@ -1,60 +0,0 @@
-"============================================================================
-"File:        checkpatch.vim
-"Description: Syntax checking plugin for syntastic.vim using checkpatch.pl
-"Maintainer:  Daniel Walker <dwalker at fifo99 dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"============================================================================
-
-if exists('g:loaded_syntastic_c_checkpatch_checker')
-    finish
-endif
-let g:loaded_syntastic_c_checkpatch_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_c_checkpatch_IsAvailable() dict
-    call syntastic#log#deprecationWarn('c_checker_checkpatch_location', 'c_checkpatch_exec')
-
-    if !exists('g:syntastic_c_checkpatch_exec') && !executable(self.getExec())
-        if executable('checkpatch')
-            let g:syntastic_c_checkpatch_exec = 'checkpatch'
-        elseif executable('./scripts/checkpatch.pl')
-            let g:syntastic_c_checkpatch_exec = fnamemodify('./scripts/checkpatch.pl', ':p')
-        elseif executable('./scripts/checkpatch')
-            let g:syntastic_c_checkpatch_exec = fnamemodify('./scripts/checkpatch', ':p')
-        endif
-    endif
-
-    call self.log('exec =', self.getExec())
-
-    return executable(self.getExec())
-endfunction
-
-function! SyntaxCheckers_c_checkpatch_GetLocList() dict
-    let makeprg = self.makeprgBuild({ 'args_after': '--no-summary --no-tree --terse --file' })
-
-    let errorformat =
-        \ '%f:%l: %tARNING: %m,' .
-        \ '%f:%l: %tRROR: %m'
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'returns': [0, 1],
-        \ 'subtype': 'Style' })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'c',
-    \ 'name': 'checkpatch',
-    \ 'exec': 'checkpatch.pl'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 61
vim/syntax_checkers/c/clang_check.vim

@@ -1,61 +0,0 @@
-"============================================================================
-"File:        clang_check.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  Benjamin Bannier <bbannier at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"============================================================================
-
-if exists('g:loaded_syntastic_c_clang_check_checker')
-  finish
-endif
-let g:loaded_syntastic_c_clang_check_checker = 1
-
-if !exists('g:syntastic_clang_check_config_file')
-    let g:syntastic_clang_check_config_file = '.syntastic_clang_check_config'
-endif
-
-if !exists('g:syntastic_c_clang_check_sort')
-    let g:syntastic_c_clang_check_sort = 1
-endif
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_c_clang_check_GetLocList() dict
-    let makeprg = self.makeprgBuild({
-        \ 'post_args':
-        \   '-- ' .
-        \   syntastic#c#ReadConfig(g:syntastic_clang_check_config_file) . ' ' .
-        \   '-fshow-column ' .
-        \   '-fshow-source-location ' .
-        \   '-fno-caret-diagnostics ' .
-        \   '-fno-color-diagnostics ' .
-        \   '-fdiagnostics-format=clang' })
-
-    let errorformat =
-        \ '%E%f:%l:%c: fatal error: %m,' .
-        \ '%E%f:%l:%c: error: %m,' .
-        \ '%W%f:%l:%c: warning: %m,' .
-        \ '%-G%\m%\%%(LLVM ERROR:%\|No compilation database found%\)%\@!%.%#,' .
-        \ '%E%m'
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'defaults': {'bufnr': bufnr('')},
-        \ 'returns': [0, 1] })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'c',
-    \ 'name': 'clang_check',
-    \ 'exec': 'clang-check'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 61
vim/syntax_checkers/c/clang_tidy.vim

@@ -1,61 +0,0 @@
-"============================================================================
-"File:        clang_tidy.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  Benjamin Bannier <bbannier at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"============================================================================
-
-if exists('g:loaded_syntastic_c_clang_tidy_checker')
-  finish
-endif
-let g:loaded_syntastic_c_clang_tidy_checker = 1
-
-if !exists('g:syntastic_clang_tidy_config_file')
-    let g:syntastic_clang_tidy_config_file = '.syntastic_clang_tidy_config'
-endif
-
-if !exists('g:syntastic_c_clang_tidy_sort')
-    let g:syntastic_c_clang_tidy_sort = 1
-endif
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_c_clang_tidy_GetLocList() dict
-    let makeprg = self.makeprgBuild({
-        \ 'post_args':
-        \   '-- ' .
-        \   syntastic#c#ReadConfig(g:syntastic_clang_tidy_config_file) . ' ' .
-        \   '-fshow-column ' .
-        \   '-fshow-source-location ' .
-        \   '-fno-caret-diagnostics ' .
-        \   '-fno-color-diagnostics ' .
-        \   '-fdiagnostics-format=clang' })
-
-    let errorformat =
-        \ '%E%f:%l:%c: fatal error: %m,' .
-        \ '%E%f:%l:%c: error: %m,' .
-        \ '%W%f:%l:%c: warning: %m,' .
-        \ '%-G%\m%\%%(LLVM ERROR:%\|No compilation database found%\)%\@!%.%#,' .
-        \ '%E%m'
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'defaults': {'bufnr': bufnr('')},
-        \ 'returns': [0, 1] })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'c',
-    \ 'name': 'clang_tidy',
-    \ 'exec': 'clang-tidy'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 62
vim/syntax_checkers/c/cppcheck.vim

@@ -1,62 +0,0 @@
-"============================================================================
-"File:        cppcheck.vim
-"Description: Syntax checking plugin for syntastic.vim using cppcheck.pl
-"Maintainer:  LCD 47 <lcd047 at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"============================================================================
-
-if exists('g:loaded_syntastic_c_cppcheck_checker')
-    finish
-endif
-let g:loaded_syntastic_c_cppcheck_checker = 1
-
-if !exists('g:syntastic_cppcheck_config_file')
-    let g:syntastic_cppcheck_config_file = '.syntastic_cppcheck_config'
-endif
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_c_cppcheck_GetLocList() dict
-    let makeprg = self.makeprgBuild({
-        \ 'args': syntastic#c#ReadConfig(g:syntastic_cppcheck_config_file),
-        \ 'args_after': '-q --enable=style' })
-
-    let errorformat =
-        \ '[%f:%l]: (%trror) %m,' .
-        \ '[%f:%l]: (%tarning) %m,' .
-        \ '[%f:%l]: (%ttyle) %m,' .
-        \ '[%f:%l]: (%terformance) %m,' .
-        \ '[%f:%l]: (%tortability) %m,' .
-        \ '[%f:%l]: (%tnformation) %m,' .
-        \ '[%f:%l]: (%tnconclusive) %m,' .
-        \ '%-G%.%#'
-
-    let loclist = SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'preprocess': 'cppcheck',
-        \ 'returns': [0] })
-
-    for e in loclist
-        if e['type'] =~? '\m^[SPI]'
-            let e['type'] = 'w'
-            let e['subtype'] = 'Style'
-        endif
-    endfor
-
-    return loclist
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'c',
-    \ 'name': 'cppcheck'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 59
vim/syntax_checkers/c/gcc.vim

@@ -1,59 +0,0 @@
-"============================================================================
-"File:        c.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  Gregor Uhlenheuer <kongo2002 at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_c_gcc_checker')
-    finish
-endif
-let g:loaded_syntastic_c_gcc_checker = 1
-
-if !exists('g:syntastic_c_compiler_options')
-    let g:syntastic_c_compiler_options = '-std=gnu99'
-endif
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_c_gcc_IsAvailable() dict
-    if !exists('g:syntastic_c_compiler')
-        let g:syntastic_c_compiler = executable(self.getExec()) ? self.getExec() : 'clang'
-    endif
-    call self.log('g:syntastic_c_compiler =', g:syntastic_c_compiler)
-    return executable(expand(g:syntastic_c_compiler, 1))
-endfunction
-
-function! SyntaxCheckers_c_gcc_GetLocList() dict
-    return syntastic#c#GetLocList('c', 'gcc', {
-        \ 'errorformat':
-        \     '%-G%f:%s:,' .
-        \     '%-G%f:%l: %#error: %#(Each undeclared identifier is reported only%.%#,' .
-        \     '%-G%f:%l: %#error: %#for each function it appears%.%#,' .
-        \     '%-GIn file included%.%#,' .
-        \     '%-G %#from %f:%l\,,' .
-        \     '%f:%l:%c: %trror: %m,' .
-        \     '%f:%l:%c: %tarning: %m,' .
-        \     '%f:%l:%c: %m,' .
-        \     '%f:%l: %trror: %m,' .
-        \     '%f:%l: %tarning: %m,'.
-        \     '%f:%l: %m',
-        \ 'main_flags': '-x c -fsyntax-only',
-        \ 'header_flags': '-x c',
-        \ 'header_names': '\m\.h$' })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'c',
-    \ 'name': 'gcc' })
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 61
vim/syntax_checkers/c/make.vim

@@ -1,61 +0,0 @@
-"============================================================================
-"File:        make.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  Gregor Uhlenheuer <kongo2002 at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_c_make_checker')
-    finish
-endif
-let g:loaded_syntastic_c_make_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_c_make_GetLocList() dict
-    let makeprg = self.makeprgBuild({ 'args': '-sk', 'fname': '' })
-
-    let errorformat =
-        \ '%-G%f:%s:,' .
-        \ '%-G%f:%l: %#error: %#(Each undeclared identifier is reported only%.%#,' .
-        \ '%-G%f:%l: %#error: %#for each function it appears%.%#,' .
-        \ '%-GIn file included%.%#,' .
-        \ '%-G %#from %f:%l\,,' .
-        \ '%f:%l:%c: %trror: %m,' .
-        \ '%f:%l:%c: %tarning: %m,' .
-        \ '%f:%l:%c: %m,' .
-        \ '%f:%l: %trror: %m,' .
-        \ '%f:%l: %tarning: %m,'.
-        \ '%f:%l: %m'
-
-    if exists('g:syntastic_c_errorformat')
-        let errorformat = g:syntastic_c_errorformat
-    endif
-
-    " process makeprg
-    let errors = SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat })
-
-    " filter the processed errors if desired
-    if exists('g:syntastic_c_remove_include_errors') && g:syntastic_c_remove_include_errors != 0
-        return filter(errors, 'has_key(v:val, "bufnr") && v:val["bufnr"] == ' . bufnr(''))
-    else
-        return errors
-    endif
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'c',
-    \ 'name': 'make'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 65
vim/syntax_checkers/c/oclint.vim

@@ -1,65 +0,0 @@
-"============================================================================
-"File:        oclint.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  "UnCO" Lin <undercooled aT lavabit com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"============================================================================
-
-if exists('g:loaded_syntastic_c_oclint_checker')
-    finish
-endif
-let g:loaded_syntastic_c_oclint_checker = 1
-
-if !exists('g:syntastic_oclint_config_file')
-    let g:syntastic_oclint_config_file = '.syntastic_oclint_config'
-endif
-
-if !exists('g:syntastic_c_oclint_sort')
-    let g:syntastic_c_oclint_sort = 1
-endif
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_c_oclint_GetLocList() dict
-    let makeprg = self.makeprgBuild({
-        \ 'post_args': '-- -c ' . syntastic#c#ReadConfig(g:syntastic_oclint_config_file) })
-
-    let errorformat =
-        \ '%E%f:%l:%c: fatal error: %m,' .
-        \ '%E%f:%l:%c: error: %m,' .
-        \ '%W%f:%l:%c: warning: %m,' .
-        \ '%E%f:%l:%c: %m,' .
-        \ '%-G%.%#'
-
-    let loclist = SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'subtype': 'Style',
-        \ 'postprocess': ['compressWhitespace'],
-        \ 'returns': [0, 3, 5] })
-
-    for e in loclist
-        if e['text'] =~# '\v P3( |$)'
-            let e['type'] = 'W'
-        endif
-
-        let e['text'] = substitute(e['text'], '\m\C P[1-3]$', '', '')
-        let e['text'] = substitute(e['text'], '\m\C P[1-3] ', ': ', '')
-    endfor
-
-    return loclist
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'c',
-    \ 'name': 'oclint'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 66
vim/syntax_checkers/c/pc_lint.vim

@@ -1,66 +0,0 @@
-"============================================================================
-"File:        pc_lint.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  Steve Bragg <steve at empresseffects dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_c_pc_lint_checker')
-    finish
-endif
-let g:loaded_syntastic_c_pc_lint_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-if !exists('g:syntastic_pc_lint_config_file')
-    let g:syntastic_pc_lint_config_file = 'options.lnt'
-endif
-
-function! SyntaxCheckers_c_pc_lint_GetLocList() dict
-    let config = findfile(g:syntastic_pc_lint_config_file, '.;')
-    call self.log('config =', config)
-
-    " -hFs1         - show filename, add space after messages, try to make message 1 line
-    " -width(0,0)   - make sure there are no line breaks
-    " -t            - set tab size
-    " -v            - turn off verbosity
-    let makeprg = self.makeprgBuild({
-        \ 'args': (filereadable(config) ? syntastic#util#shescape(fnamemodify(config, ':p')) : ''),
-        \ 'args_after': ['-hFs1', '-width(0,0)', '-t' . &tabstop, '-format=%f:%l:%C:%t:%n:%m'] })
-
-    let errorformat =
-        \ '%E%f:%l:%v:Error:%n:%m,' .
-        \ '%W%f:%l:%v:Warning:%n:%m,' .
-        \ '%I%f:%l:%v:Info:%n:%m,' .
-        \ '%-G%.%#'
-
-    let loclist = SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'postprocess': ['cygwinRemoveCR'] })
-
-    for e in loclist
-        if e['type'] ==? 'I'
-            let e['type'] = 'W'
-            let e['subtype'] = 'Style'
-        endif
-    endfor
-
-    return loclist
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'c',
-    \ 'name': 'pc_lint',
-    \ 'exec': 'lint-nt'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 48
vim/syntax_checkers/c/sparse.vim

@@ -1,48 +0,0 @@
-"============================================================================
-"File:        sparse.vim
-"Description: Syntax checking plugin for syntastic.vim using sparse.pl
-"Maintainer:  Daniel Walker <dwalker at fifo99 dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"============================================================================
-
-if exists('g:loaded_syntastic_c_sparse_checker')
-    finish
-endif
-let g:loaded_syntastic_c_sparse_checker = 1
-
-if !exists('g:syntastic_sparse_config_file')
-    let g:syntastic_sparse_config_file = '.syntastic_sparse_config'
-endif
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_c_sparse_GetLocList() dict
-    let makeprg = self.makeprgBuild({
-        \ 'args': syntastic#c#ReadConfig(g:syntastic_sparse_config_file),
-        \ 'args_after': '-ftabstop=' . &ts })
-
-    let errorformat =
-        \ '%f:%l:%v: %trror: %m,' .
-        \ '%f:%l:%v: %tarning: %m,'
-
-    let loclist = SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'defaults': {'bufnr': bufnr('')},
-        \ 'returns': [0, 1] })
-    return loclist
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'c',
-    \ 'name': 'sparse'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 55
vim/syntax_checkers/c/splint.vim

@@ -1,55 +0,0 @@
-"============================================================================
-"File:        splint.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  LCD 47 <lcd047 at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"============================================================================
-
-if exists('g:loaded_syntastic_c_splint_checker')
-    finish
-endif
-let g:loaded_syntastic_c_splint_checker = 1
-
-if !exists('g:syntastic_splint_config_file')
-    let g:syntastic_splint_config_file = '.syntastic_splint_config'
-endif
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_c_splint_GetLocList() dict
-    let makeprg = self.makeprgBuild({
-        \ 'args': syntastic#c#ReadConfig(g:syntastic_splint_config_file),
-        \ 'args_after': '-showfunc -hints +quiet' })
-
-    let errorformat =
-        \ '%-G%f:%l:%v: %[%#]%[%#]%[%#] Internal Bug %.%#,' .
-        \ '%-G%f(%l\,%v): %[%#]%[%#]%[%#] Internal Bug %.%#,' .
-        \ '%W%f:%l:%v: %m,' .
-        \ '%W%f(%l\,%v): %m,' .
-        \ '%W%f:%l: %m,' .
-        \ '%W%f(%l): %m,' .
-        \ '%-C %\+In file included from %.%#,' .
-        \ '%-C %\+from %.%#,' .
-        \ '%+C %.%#'
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'subtype': 'Style',
-        \ 'postprocess': ['compressWhitespace'],
-        \ 'defaults': {'type': 'W'} })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'c',
-    \ 'name': 'splint'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 55
vim/syntax_checkers/cabal/cabal.vim

@@ -1,55 +0,0 @@
-"============================================================================
-"File:        cabal.vim
-"Description: Haskell package description (.cabal file) linting and syntax
-"             validation via 'cabal check'
-"Maintainer: Ian D. Bollinger <ian.bollinger@gmail.com>
-"License:    This program is free software. It comes without any warranty,
-"            to the extent permitted by applicable law. You can redistribute
-"            it and/or modify it under the terms of the Do What The Fuck You
-"            Want To Public License, Version 2, as published by Sam Hocevar.
-"            See http://sam.zoy.org/wtfpl/COPYING for more details.
-"============================================================================
-
-if exists('g:loaded_syntastic_cabal_cabal_checker')
-    finish
-endif
-let g:loaded_syntastic_cabal_cabal_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_cabal_cabal_GetHighlightRegex(item)
-    let field = matchstr(a:item['text'], "\\vParse of field '\\zs[^']+")
-    if field !=# ''
-        return '\v\c^\s*' . field . '\s*:\s*\zs.*$'
-    endif
-    let field = matchstr(a:item['text'], "\\v(^|\\s)'\\zs[^']+\\ze'")
-    if field !=# ''
-        return '\V\c\<' . escape(field, '\') . '\>'
-    endif
-    return ''
-endfunction
-
-function! SyntaxCheckers_cabal_cabal_GetLocList() dict
-    let makeprg = self.getExecEscaped() . ' check'
-
-    let errorformat =
-        \ '%Ecabal: %f:%l: %m,' .
-        \ '%W* %m'
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'cwd': expand('%:p:h', 1),
-        \ 'preprocess': 'cabal',
-        \ 'defaults': {'bufnr': bufnr('')} })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'cabal',
-    \ 'name': 'cabal'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 39
vim/syntax_checkers/chef/foodcritic.vim

@@ -1,39 +0,0 @@
-"============================================================================
-"File:        foodcritic.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  Doug Ireton <dougireton@gmail.com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_chef_foodcritic_checker')
-    finish
-endif
-let g:loaded_syntastic_chef_foodcritic_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_chef_foodcritic_GetLocList() dict
-    let makeprg = self.makeprgBuild({})
-
-    " FC023: Prefer conditional attributes: ./recipes/config.rb:49
-    let errorformat = 'FC%n: %m: %f:%l'
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-      \ 'filetype': 'chef',
-      \ 'name': 'foodcritic'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 47
vim/syntax_checkers/co/coco.vim

@@ -1,47 +0,0 @@
-"============================================================================
-"File:        co.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  Andrew Kelley <superjoe30@gmail.com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_co_coco_checker')
-    finish
-endif
-let g:loaded_syntastic_co_coco_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_co_coco_GetLocList() dict
-    let tmpdir = syntastic#util#tmpdir()
-    let makeprg = self.makeprgBuild({ 'args_after': '-c -o ' . tmpdir })
-
-    let errorformat =
-        \ '%EFailed at: %f,' .
-        \ '%ZSyntax%trror: %m on line %l,'.
-        \ '%EFailed at: %f,'.
-        \ '%Z%trror: Parse error on line %l: %m'
-
-    let loclist = SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat })
-
-    call syntastic#util#rmrf(tmpdir)
-
-    return loclist
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'co',
-    \ 'name': 'coco'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 47
vim/syntax_checkers/cobol/cobc.vim

@@ -1,47 +0,0 @@
-"============================================================================
-"File:        cobc.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  LCD 47 <lcd047 at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-
-if exists('g:loaded_syntastic_cobol_cobc_checker')
-    finish
-endif
-let g:loaded_syntastic_cobol_cobc_checker = 1
-
-if !exists('g:syntastic_cobol_compiler_options')
-    let g:syntastic_cobol_compiler_options = ''
-endif
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_cobol_cobc_IsAvailable() dict
-    if !exists('g:syntastic_cobol_compiler')
-        let g:syntastic_cobol_compiler = self.getExec()
-    endif
-    call self.log('g:syntastic_cobol_compiler =', g:syntastic_cobol_compiler)
-    return executable(expand(g:syntastic_cobol_compiler, 1))
-endfunction
-
-function! SyntaxCheckers_cobol_cobc_GetLocList() dict
-    return syntastic#c#GetLocList('cobol', 'cobc', {
-        \ 'errorformat': '%f:%l: %trror: %m',
-        \ 'main_flags': '-fsyntax-only' })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'cobol',
-    \ 'name': 'cobc' })
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 58
vim/syntax_checkers/coffee/coffee.vim

@@ -1,58 +0,0 @@
-"============================================================================
-"File:        coffee.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  Lincoln Stoll <l@lds.li>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-"
-" Note: this script requires CoffeeScript version 1.6.2 or newer.
-"
-
-if exists('g:loaded_syntastic_coffee_coffee_checker')
-    finish
-endif
-let g:loaded_syntastic_coffee_coffee_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_coffee_coffee_IsAvailable() dict
-    if !executable(self.getExec())
-        return 0
-    endif
-    let ver = self.getVersion(self.getExecEscaped() . ' --version 2>' . syntastic#util#DevNull())
-    return syntastic#util#versionIsAtLeast(ver, [1, 6, 2])
-endfunction
-
-function! SyntaxCheckers_coffee_coffee_GetLocList() dict
-    let makeprg = self.makeprgBuild({ 'args_after': '-cp' })
-
-    let errorformat =
-        \ '%E%f:%l:%c: %trror: %m,' .
-        \ 'Syntax%trror: In %f\, %m on line %l,' .
-        \ '%EError: In %f\, Parse error on line %l: %m,' .
-        \ '%EError: In %f\, %m on line %l,' .
-        \ '%W%f(%l): lint warning: %m,' .
-        \ '%W%f(%l): warning: %m,' .
-        \ '%E%f(%l): SyntaxError: %m,' .
-        \ '%-Z%p^,' .
-        \ '%-G%.%#'
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'coffee',
-    \ 'name': 'coffee'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 47
vim/syntax_checkers/coffee/coffeelint.vim

@@ -1,47 +0,0 @@
-"============================================================================
-"File:        coffeelint.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  Lincoln Stoll <l@lds.li>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_coffee_coffeelint_checker')
-    finish
-endif
-let g:loaded_syntastic_coffee_coffeelint_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_coffee_coffeelint_GetLocList() dict
-    if !exists('s:coffeelint_new')
-        let s:coffeelint_new = syntastic#util#versionIsAtLeast(self.getVersion(), [1, 4])
-    endif
-    let makeprg = self.makeprgBuild({ 'args_after': (s:coffeelint_new ? '--reporter csv' : '--csv') })
-
-    let errorformat =
-        \ '%f\,%l\,%\d%#\,%trror\,%m,' .
-        \ '%f\,%l\,%trror\,%m,' .
-        \ '%f\,%l\,%\d%#\,%tarn\,%m,' .
-        \ '%f\,%l\,%tarn\,%m'
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'subtype': 'Style',
-        \ 'returns': [0, 1] })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'coffee',
-    \ 'name': 'coffeelint'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 40
vim/syntax_checkers/coq/coqtop.vim

@@ -1,40 +0,0 @@
-"============================================================================
-"File:        coqtop.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  Matvey Aksenov <matvey.aksenov at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_coq_coqtop_checker')
-    finish
-endif
-let g:loaded_syntastic_coq_coqtop_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_coq_coqtop_GetLocList() dict
-    let makeprg = self.makeprgBuild({ 'args_after': '-noglob -batch -load-vernac-source' })
-
-    let errorformat =
-        \ '%AFile \"%f\"\, line %l\, characters %c\-%.%#\:,'.
-        \ '%C%m'
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'coq',
-    \ 'name': 'coqtop'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 25
vim/syntax_checkers/cpp/clang_check.vim

@@ -1,25 +0,0 @@
-"============================================================================
-"File:        clang_check.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  Benjamin Bannier <bbannier at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"============================================================================
-
-if exists('g:loaded_syntastic_cpp_clang_check_checker')
-  finish
-endif
-let g:loaded_syntastic_cpp_clang_check_checker = 1
-
-runtime! syntax_checkers/c/*.vim
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'cpp',
-    \ 'name': 'clang_check',
-    \ 'exec': 'clang-check',
-    \ 'redirect': 'c/clang_check'})
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 25
vim/syntax_checkers/cpp/clang_tidy.vim

@@ -1,25 +0,0 @@
-"============================================================================
-"File:        clang_tidy.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  Benjamin Bannier <bbannier at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"============================================================================
-
-if exists('g:loaded_syntastic_cpp_clang_tidy_checker')
-  finish
-endif
-let g:loaded_syntastic_cpp_clang_tidy_checker = 1
-
-runtime! syntax_checkers/c/*.vim
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'cpp',
-    \ 'name': 'clang_tidy',
-    \ 'exec': 'clang-tidy',
-    \ 'redirect': 'c/clang_tidy'})
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 24
vim/syntax_checkers/cpp/cppcheck.vim

@@ -1,24 +0,0 @@
-"============================================================================
-"File:        cppcheck.vim
-"Description: Syntax checking plugin for syntastic.vim using cppcheck.pl
-"Maintainer:  LCD 47 <lcd047 at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"============================================================================
-
-if exists('g:loaded_syntastic_cpp_cppcheck_checker')
-    finish
-endif
-let g:loaded_syntastic_cpp_cppcheck_checker = 1
-
-runtime! syntax_checkers/c/*.vim
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'cpp',
-    \ 'name': 'cppcheck',
-    \ 'redirect': 'c/cppcheck'})
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 52
vim/syntax_checkers/cpp/cpplint.vim

@@ -1,52 +0,0 @@
-"============================================================================
-"File:        cpplint.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  LCD 47 <lcd047 at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_cpp_cpplint_checker')
-    finish
-endif
-let g:loaded_syntastic_cpp_cpplint_checker = 1
-
-if !exists('g:syntastic_cpp_cpplint_thres')
-    let g:syntastic_cpp_cpplint_thres = 5
-endif
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_cpp_cpplint_GetLocList() dict
-    let makeprg = self.makeprgBuild({ 'args': '--verbose=3' })
-
-    let errorformat = '%A%f:%l:  %m [%t],%-G%.%#'
-
-    let loclist = SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'subtype': 'Style',
-        \ 'returns': [0, 1] })
-
-    " change error types according to the prescribed threshold
-    for e in loclist
-        let e['type'] = e['type'] < g:syntastic_cpp_cpplint_thres ? 'W' : 'E'
-    endfor
-
-    return loclist
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'cpp',
-    \ 'name': 'cpplint',
-    \ 'exec': 'cpplint.py'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 56
vim/syntax_checkers/cpp/gcc.vim

@@ -1,56 +0,0 @@
-"============================================================================
-"File:        cpp.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  Gregor Uhlenheuer <kongo2002 at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_cpp_gcc_checker')
-    finish
-endif
-let g:loaded_syntastic_cpp_gcc_checker = 1
-
-if !exists('g:syntastic_cpp_compiler_options')
-    let g:syntastic_cpp_compiler_options = ''
-endif
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_cpp_gcc_IsAvailable() dict
-    if !exists('g:syntastic_cpp_compiler')
-        let g:syntastic_cpp_compiler = executable(self.getExec()) ? self.getExec() : 'clang++'
-    endif
-    call self.log('g:syntastic_cpp_compiler =', g:syntastic_cpp_compiler)
-    return executable(expand(g:syntastic_cpp_compiler, 1))
-endfunction
-
-function! SyntaxCheckers_cpp_gcc_GetLocList() dict
-    return syntastic#c#GetLocList('cpp', 'gcc', {
-        \ 'errorformat':
-        \     '%-G%f:%s:,' .
-        \     '%f:%l:%c: %trror: %m,' .
-        \     '%f:%l:%c: %tarning: %m,' .
-        \     '%f:%l:%c: %m,'.
-        \     '%f:%l: %trror: %m,'.
-        \     '%f:%l: %tarning: %m,'.
-        \     '%f:%l: %m',
-        \ 'main_flags': '-x c++ -fsyntax-only',
-        \ 'header_flags': '-x c++',
-        \ 'header_names': '\m\.\(h\|hpp\|hh\)$' })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'cpp',
-    \ 'name': 'gcc',
-    \ 'exec': 'g++' })
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 24
vim/syntax_checkers/cpp/oclint.vim

@@ -1,24 +0,0 @@
-"============================================================================
-"File:        oclint.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  "UnCO" Lin <undercooled aT lavabit com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"============================================================================
-
-if exists('g:loaded_syntastic_cpp_oclint_checker')
-    finish
-endif
-let g:loaded_syntastic_cpp_oclint_checker = 1
-
-runtime! syntax_checkers/c/*.vim
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'cpp',
-    \ 'name': 'oclint',
-    \ 'redirect': 'c/oclint'})
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 26
vim/syntax_checkers/cpp/pc_lint.vim

@@ -1,26 +0,0 @@
-"============================================================================
-"File:        pc_lint.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  Steve Bragg <steve at empresseffects dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_cpp_pc_lint_checker')
-    finish
-endif
-let g:loaded_syntastic_cpp_pc_lint_checker = 1
-
-runtime! syntax_checkers/c/*.vim
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'cpp',
-    \ 'name': 'pc_lint',
-    \ 'exec': 'lint-nt',
-    \ 'redirect': 'c/pc_lint'})
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 39
vim/syntax_checkers/cs/mcs.vim

@@ -1,39 +0,0 @@
-"============================================================================
-"File:        cs.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  Daniel Walker <dwalker@fifo99.com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_cs_mcs_checker')
-    finish
-endif
-let g:loaded_syntastic_cs_mcs_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_cs_mcs_GetLocList() dict
-    let makeprg = self.makeprgBuild({ 'args_after': '--parse' })
-
-    let errorformat = '%f(%l\,%c): %trror %m'
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'defaults': {'bufnr': bufnr('')} })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'cs',
-    \ 'name': 'mcs'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 47
vim/syntax_checkers/css/csslint.vim

@@ -1,47 +0,0 @@
-"============================================================================
-"File:        css.vim
-"Description: Syntax checking plugin for syntastic.vim using `csslint` CLI tool (http://csslint.net).
-"Maintainer:  Ory Band <oryband at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"============================================================================
-
-if exists('g:loaded_syntastic_css_csslint_checker')
-    finish
-endif
-let g:loaded_syntastic_css_csslint_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_css_csslint_GetLocList() dict
-    call syntastic#log#deprecationWarn('csslint_options', 'css_csslint_args')
-
-    let makeprg = self.makeprgBuild({ 'args_after': '--format=compact' })
-
-    " Print CSS Lint's error/warning messages from compact format. Ignores blank lines.
-    let errorformat =
-        \ '%-G,' .
-        \ '%-G%f: lint free!,' .
-        \ '%f: line %l\, col %c\, %trror - %m,' .
-        \ '%f: line %l\, col %c\, %tarning - %m,'.
-        \ '%f: line %l\, col %c\, %m,'
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'defaults': {'bufnr': bufnr('')} })
-
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'css',
-    \ 'name': 'csslint'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 25
vim/syntax_checkers/css/phpcs.vim

@@ -1,25 +0,0 @@
-"============================================================================
-"File:        phpcs.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  LCD 47 <lcd047 at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_css_phpcs_checker')
-    finish
-endif
-let g:loaded_syntastic_css_phpcs_checker = 1
-
-runtime! syntax_checkers/php/*.vim
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'css',
-    \ 'name': 'phpcs',
-    \ 'redirect': 'php/phpcs'})
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 61
vim/syntax_checkers/css/prettycss.vim

@@ -1,61 +0,0 @@
-"============================================================================
-"File:        prettycss.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  LCD 47 <lcd047 at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_css_prettycss_checker')
-    finish
-endif
-let g:loaded_syntastic_css_prettycss_checker = 1
-
-if !exists('g:syntastic_css_prettycss_sort')
-    let g:syntastic_css_prettycss_sort = 1
-endif
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_css_prettycss_GetHighlightRegex(item)
-    let term = matchstr(a:item['text'], '\m (\zs[^)]\+\ze)$')
-    if term !=# ''
-        let term = '\V' . escape(term, '\')
-    endif
-    return term
-endfunction
-
-function! SyntaxCheckers_css_prettycss_GetLocList() dict
-    let makeprg = self.makeprgBuild({})
-
-    " Print CSS Lint's error/warning messages from compact format. Ignores blank lines.
-    let errorformat =
-        \ '%EError:  %m\, line %l\, char %c),' .
-        \ '%WWarning:  %m\, line %l\, char %c),' .
-        \ '%-G%.%#'
-
-    let loclist = SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'defaults': {'bufnr': bufnr('')} })
-
-    for e in loclist
-        let e['text'] .= ')'
-    endfor
-
-    return loclist
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'css',
-    \ 'name': 'prettycss'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 26
vim/syntax_checkers/css/recess.vim

@@ -1,26 +0,0 @@
-"============================================================================
-"File:        recess.vim
-"Description: Syntax checking plugin for syntastic.vim using `recess`
-"             (http://twitter.github.io/recess/).
-"Maintainer:  Tim Carry <tim at pixelastic dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_css_recess_checker')
-    finish
-endif
-let g:loaded_syntastic_css_recess_checker = 1
-
-runtime! syntax_checkers/less/*.vim
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'css',
-    \ 'name': 'recess',
-    \ 'redirect': 'less/recess'})
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 42
vim/syntax_checkers/cucumber/cucumber.vim

@@ -1,42 +0,0 @@
-"============================================================================
-"File:        cucumber.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  Martin Grenfell <martin.grenfell at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_cucumber_cucumber_checker')
-    finish
-endif
-let g:loaded_syntastic_cucumber_cucumber_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_cucumber_cucumber_GetLocList() dict
-    let makeprg = self.makeprgBuild({ 'args_after': '--dry-run --quiet --strict --format pretty' })
-
-    let errorformat =
-        \ '%f:%l:%c:%m,' .
-        \ '%W      %.%# (%m),' .
-        \ '%-Z%f:%l:%.%#,'.
-        \ '%-G%.%#'
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'cucumber',
-    \ 'name': 'cucumber'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 66
vim/syntax_checkers/cuda/nvcc.vim

@@ -1,66 +0,0 @@
-"============================================================================
-"File:        cuda.vim
-"Description: Syntax checking plugin for syntastic.vim
-"
-"Author:      Hannes Schulz <schulz at ais dot uni-bonn dot de>
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_cuda_nvcc_checker')
-    finish
-endif
-let g:loaded_syntastic_cuda_nvcc_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_cuda_nvcc_GetLocList() dict
-    if exists('g:syntastic_cuda_arch')
-        let arch_flag = '-arch=' . g:syntastic_cuda_arch
-    else
-        let arch_flag = ''
-    endif
-    let makeprg =
-        \ self.getExecEscaped() . ' ' . arch_flag .
-        \ ' --cuda -O0 -I . -Xcompiler -fsyntax-only ' .
-        \ syntastic#util#shexpand('%') . ' ' . syntastic#c#NullOutput()
-
-    let errorformat =
-        \ '%*[^"]"%f"%*\D%l: %m,'.
-        \ '"%f"%*\D%l: %m,'.
-        \ '%-G%f:%l: (Each undeclared identifier is reported only once,'.
-        \ '%-G%f:%l: for each function it appears in.),'.
-        \ '%f:%l:%c:%m,'.
-        \ '%f(%l):%m,'.
-        \ '%f:%l:%m,'.
-        \ '"%f"\, line %l%*\D%c%*[^ ] %m,'.
-        \ '%D%*\a[%*\d]: Entering directory `%f'','.
-        \ '%X%*\a[%*\d]: Leaving directory `%f'','.
-        \ '%D%*\a: Entering directory `%f'','.
-        \ '%X%*\a: Leaving directory `%f'','.
-        \ '%DMaking %*\a in %f,'.
-        \ '%f|%l| %m'
-
-    if expand('%', 1) =~? '\m\%(.h\|.hpp\|.cuh\)$'
-        if exists('g:syntastic_cuda_check_header')
-            let makeprg =
-                \ 'echo > .syntastic_dummy.cu ; ' .
-                \ self.getExecEscaped() . ' ' . arch_flag .
-                \ ' --cuda -O0 -I . .syntastic_dummy.cu -Xcompiler -fsyntax-only -include ' .
-                \ syntastic#util#shexpand('%') . ' ' . syntastic#c#NullOutput()
-        else
-            return []
-        endif
-    endif
-
-    return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'cuda',
-    \ 'name': 'nvcc'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 60
vim/syntax_checkers/d/dmd.vim

@@ -1,60 +0,0 @@
-"============================================================================
-"File:        d.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  Alfredo Di Napoli <alfredo dot dinapoli at gmail dot com>
-"License:     Based on the original work of Gregor Uhlenheuer and his
-"             cpp.vim checker so credits are dued.
-"             THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-"             EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-"             OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-"             NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-"             HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-"             WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-"             FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-"             OTHER DEALINGS IN THE SOFTWARE.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_d_dmd_checker')
-    finish
-endif
-let g:loaded_syntastic_d_dmd_checker = 1
-
-if !exists('g:syntastic_d_compiler_options')
-    let g:syntastic_d_compiler_options = ''
-endif
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_d_dmd_IsAvailable() dict
-    if !exists('g:syntastic_d_compiler')
-        let g:syntastic_d_compiler = self.getExec()
-    endif
-    call self.log('g:syntastic_d_compiler =', g:syntastic_d_compiler)
-    return executable(expand(g:syntastic_d_compiler, 1))
-endfunction
-
-function! SyntaxCheckers_d_dmd_GetLocList() dict
-    if !exists('g:syntastic_d_include_dirs')
-        let g:syntastic_d_include_dirs = filter(glob($HOME . '/.dub/packages/*', 1, 1), 'isdirectory(v:val)')
-        call map(g:syntastic_d_include_dirs, 'isdirectory(v:val . "/source") ? v:val . "/source" : v:val')
-        call add(g:syntastic_d_include_dirs, './source')
-    endif
-
-    return syntastic#c#GetLocList('d', 'dmd', {
-        \ 'errorformat':
-        \     '%-G%f:%s:,%f(%l): %m,' .
-        \     '%f:%l: %m',
-        \ 'main_flags': '-c -of' . syntastic#util#DevNull(),
-        \ 'header_names': '\m\.di$' })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'd',
-    \ 'name': 'dmd' })
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 76
vim/syntax_checkers/dart/dartanalyzer.vim

@@ -1,76 +0,0 @@
-"============================================================================
-"File:        dartanalyzer.vim
-"Description: Dart syntax checker - using dartanalyzer
-"Maintainer:  Maksim Ryzhikov <rv.maksim at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"============================================================================
-
-if exists('g:loaded_syntastic_dart_dartanalyzer_checker')
-    finish
-endif
-let g:loaded_syntastic_dart_dartanalyzer_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_dart_dartanalyzer_GetHighlightRegex(error)
-    if a:error['len']
-        let lcol = a:error['col'] - 1
-        let rcol = a:error['col'] + a:error['len']
-        let ret = '\%>' . lcol . 'c\%<' . rcol . 'c'
-    else
-        let ret = ''
-    endif
-
-    return ret
-endfunction
-
-function! SyntaxCheckers_dart_dartanalyzer_GetLocList() dict
-    let makeprg = self.makeprgBuild({ 'args_after': '--machine' })
-
-    " Machine readable format looks like:
-    " SEVERITY|TYPE|ERROR_CODE|FILENAME|LINE_NUMBER|COLUMN|LENGTH|MESSAGE
-    " SEVERITY: (WARNING|ERROR)
-    " TYPE: (RESOLVER|STATIC_TYPE|...)
-    " ERROR_CODE: (NO_SUCH_TYPE|...)
-    " FILENAME: String
-    " LINE_NUMBER: int
-    " COLUMN: int
-    " LENGTH: int
-    " MESSAGE: String
-
-    " We use %n to grab the error length, for the syntax highlighter
-    let commonformat = '|%.%#|%.%#|%f|%l|%c|%n|%m'
-
-    let errorformat =
-        \ '%EERROR'   . commonformat . ',' .
-        \ '%WWARNING' . commonformat
-
-    let loclist = SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'returns': [0, 1, 2, 3] })
-
-    for e in loclist
-        let e['text'] = substitute(e['text'], '\m\\\([\\|]\)', '\1', 'g')
-
-        " Undo the %n hack
-        let e['len'] = e['nr']
-        call remove(e, 'nr')
-    endfor
-
-    return loclist
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'dart',
-    \ 'name': 'dartanalyzer' })
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 55
vim/syntax_checkers/docbk/igor.vim

@@ -1,55 +0,0 @@
-"============================================================================
-"File:        igor.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  LCD 47 <lcd047 at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_docbk_igor_checker')
-    finish
-endif
-let g:loaded_syntastic_docbk_igor_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_docbk_igor_GetLocList() dict
-    let makeprg = self.makeprgBuild({})
-
-    let errorformat = '%f:%l:%m'
-
-    let loclist = SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'defaults': { 'type': 'W' },
-        \ 'subtype': 'Style',
-        \ 'returns': [0] })
-
-    let buf = bufnr('')
-    for e in loclist
-        " XXX: igor strips directories from filenames
-        let e['bufnr'] = buf
-
-        let e['hl'] = '\V' . escape( substitute(e['text'], '\m[^:]*:', '', ''), '\' )
-        let e['hl'] = substitute(e['hl'], '\V[', '\\zs', 'g')
-        let e['hl'] = substitute(e['hl'], '\V]', '\\ze', 'g')
-
-        " let e['text'] = substitute(e['text'], '\m:.*$', '', '')
-    endfor
-
-    return loclist
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'docbk',
-    \ 'name': 'igor'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 25
vim/syntax_checkers/docbk/xmllint.vim

@@ -1,25 +0,0 @@
-"============================================================================
-"File:        docbk.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  Martin Grenfell <martin.grenfell at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_docbk_xmllint_checker')
-    finish
-endif
-let g:loaded_syntastic_docbk_xmllint_checker = 1
-
-runtime! syntax_checkers/xml/*.vim
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'docbk',
-    \ 'name': 'xmllint',
-    \ 'redirect': 'xml/xmllint'})
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 38
vim/syntax_checkers/dustjs/swiffer.vim

@@ -1,38 +0,0 @@
-"============================================================================
-"File:        swiffer.vim
-"Description: Dust.js syntax checker - using swiffer
-"Maintainer:  Steven Foote <smfoote at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"============================================================================
-
-if exists('g:loaded_syntastic_dustjs_swiffer_checker')
-    finish
-endif
-
-let g:loaded_syntastic_dustjs_swiffer_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_dustjs_swiffer_GetLocList() dict
-    let makeprg = self.makeprgBuild({})
-
-    let errorformat = '%E%f - Line %l\, Column %c: %m'
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat })
- endfunction
-
-call SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'dustjs',
-    \ 'name': 'swiffer'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 61
vim/syntax_checkers/elixir/elixir.vim

@@ -1,61 +0,0 @@
-"============================================================================
-"File:        elixir.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  Richard Ramsden <rramsden at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_elixir_elixir_checker')
-    finish
-endif
-let g:loaded_syntastic_elixir_elixir_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-" TODO: we should probably split this into separate checkers
-function! SyntaxCheckers_elixir_elixir_IsAvailable() dict
-    call self.log(
-        \ 'executable("elixir") = ' . executable('elixir') . ', ' .
-        \ 'executable("mix") = ' . executable('mix'))
-    return executable('elixir') && executable('mix')
-endfunction
-
-function! SyntaxCheckers_elixir_elixir_GetLocList() dict
-    if !exists('g:syntastic_enable_elixir_checker') || !g:syntastic_enable_elixir_checker
-        call syntastic#log#error('checker elixir/elixir: checks disabled for security reasons; ' .
-            \ 'set g:syntastic_enable_elixir_checker to 1 to override')
-        return []
-    endif
-
-    let make_options = {}
-    let compile_command = 'elixir'
-    let mix_file = syntastic#util#findInParent('mix.exs', expand('%:p:h', 1))
-
-    if filereadable(mix_file)
-        let compile_command = 'mix compile'
-        let make_options['cwd'] = fnamemodify(mix_file, ':p:h')
-    endif
-
-    let make_options['makeprg'] = self.makeprgBuild({ 'exe': compile_command })
-
-    let make_options['errorformat'] =
-        \ '%E** %*[^\ ] %f:%l: %m,' .
-        \ '%W%f:%l: warning: %m'
-
-    return SyntasticMake(make_options)
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'elixir',
-    \ 'name': 'elixir'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 76
vim/syntax_checkers/erlang/erlang_check_file.erl

@@ -1,76 +0,0 @@
-#!/usr/bin/env escript
-
-main([File]) ->
-    Dir = get_root(filename:dirname(File)),
-    Defs = [strong_validation,
-            warn_export_all,
-            warn_export_vars,
-            warn_shadow_vars,
-            warn_obsolete_guard,
-            warn_unused_import,
-            report,
-            {i, Dir ++ "/include"}],
-    RebarFile = rebar_file(Dir),
-    RebarOpts = rebar_opts(Dir ++ "/" ++ RebarFile),
-    code:add_patha(filename:absname("ebin")),
-    compile:file(File, Defs ++ RebarOpts);
-
-main(_) ->
-    io:format("Usage: ~s <file>~n", [escript:script_name()]),
-    halt(1).
-
-rebar_file(Dir) ->
-    DirList = filename:split(Dir),
-    case lists:last(DirList) of
-        "test" ->
-            "rebar.test.config";
-        _ ->
-            "rebar.config"
-    end.
-
-rebar_opts(RebarFile) ->
-    Dir = get_root(filename:dirname(RebarFile)),
-    case file:consult(RebarFile) of
-        {ok, Terms} ->
-            RebarLibDirs = proplists:get_value(lib_dirs, Terms, []),
-            lists:foreach(
-                fun(LibDir) ->
-                        code:add_pathsa(filelib:wildcard(LibDir ++ "/*/ebin"))
-                end, RebarLibDirs),
-            RebarDepsDir = proplists:get_value(deps_dir, Terms, "deps"),
-            code:add_pathsa(filelib:wildcard(RebarDepsDir ++ "/*/ebin")),
-            IncludeDeps = {i, filename:join(Dir, RebarDepsDir)},
-            proplists:get_value(erl_opts, Terms, []) ++ [IncludeDeps];
-        {error, _} when RebarFile == "rebar.config" ->
-          fallback_opts();
-        {error, _} ->
-            rebar_opts("rebar.config")
-    end.
-
-fallback_opts() ->
-    code:add_pathsa(filelib:wildcard("deps/*/ebin")),
-    code:add_pathsa(nested_app_ebins()),
-    [ { i, filename:absname("deps") }
-      | [ { i, filename:absname(Path) } || Path <- filelib:wildcard("deps/*/apps")]
-    ].
-
-nested_app_ebins() ->
-    DetectedAppSrcFiles = filelib:wildcard("deps/*/apps/**/*.app.src"),
-    [apps_dir_from_src(AppSrcFile)||AppSrcFile<-DetectedAppSrcFiles].
-
-apps_dir_from_src(SrcFile) ->
-    SrcDir = filename:dirname(SrcFile),
-    filename:join(SrcDir, "../../ebin").
-
-get_root(Dir) ->
-    Path = filename:split(filename:absname(Dir)),
-    filename:join(get_root(lists:reverse(Path), Path)).
-
-get_root([], Path) ->
-    Path;
-get_root(["src" | Tail], _Path) ->
-    lists:reverse(Tail);
-get_root(["test" | Tail], _Path) ->
-    lists:reverse(Tail);
-get_root([_ | Tail], Path) ->
-    get_root(Tail, Path).

+ 0 - 61
vim/syntax_checkers/erlang/escript.vim

@@ -1,61 +0,0 @@
-"============================================================================
-"File:        erlang.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  Pawel Salata <rockplayer.pl at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_erlang_erlang_checker')
-    finish
-endif
-let g:loaded_syntastic_erlang_erlang_checker = 1
-
-if !exists('g:syntastic_erlc_include_path')
-    let g:syntastic_erlc_include_path = ''
-endif
-
-let s:check_file = syntastic#util#shescape(expand('<sfile>:p:h', 1) . syntastic#util#Slash() . 'erlang_check_file.erl')
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_erlang_escript_GetLocList() dict
-    if expand('%:e', 1) ==# 'hrl'
-        return []
-    endif
-
-    let shebang = syntastic#util#parseShebang()
-    if shebang['exe'] ==# 'escript'
-        let args = '-s'
-        let post_args = ''
-    else
-        let args = s:check_file
-        let post_args = g:syntastic_erlc_include_path
-    endif
-    let makeprg = self.makeprgBuild({
-        \ 'args_after': args,
-        \ 'fname': syntastic#util#shexpand('%:p'),
-        \ 'post_args_after': post_args })
-
-    let errorformat =
-        \ '%W%f:%l: warning: %m,'.
-        \ '%E%f:%l: %m'
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'erlang',
-    \ 'name': 'escript'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 42
vim/syntax_checkers/erlang/syntaxerl.vim

@@ -1,42 +0,0 @@
-"============================================================================
-"File:        syntaxerl.vim
-"Description: Syntax checking plugin for syntastic.
-"Maintainer:  locojay
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"============================================================================
-
-if exists('g:loaded_syntastic_erlang_syntaxerl_checker')
-    finish
-endif
-
-let g:loaded_syntastic_erlang_syntaxerl_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-
-function! SyntaxCheckers_erlang_syntaxerl_GetLocList() dict
-
-    let makeprg = self.makeprgBuild({})
-
-    let errorformat =
-        \ '%W%f:%l: warning: %m,'.
-        \ '%E%f:%l: %m'
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'erlang',
-    \ 'name': 'syntaxerl'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 82
vim/syntax_checkers/eruby/ruby.vim

@@ -1,82 +0,0 @@
-"============================================================================
-"File:        ruby.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  Martin Grenfell <martin.grenfell at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_eruby_ruby_checker')
-    finish
-endif
-let g:loaded_syntastic_eruby_ruby_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_eruby_ruby_IsAvailable() dict
-    if !exists('g:syntastic_eruby_ruby_exec') && exists('g:syntastic_ruby_exec')
-        let g:syntastic_eruby_ruby_exec = g:syntastic_ruby_exec
-        call self.log('g:syntastic_eruby_ruby_exec =', g:syntastic_eruby_ruby_exec)
-    endif
-    return executable(self.getExec())
-endfunction
-
-function! SyntaxCheckers_eruby_ruby_GetLocList() dict
-    if !exists('s:ruby_new')
-        let s:ruby_new = syntastic#util#versionIsAtLeast(self.getVersion(), [1, 9])
-    endif
-
-    let fname = "'" . escape(expand('%', 1), "\\'") . "'"
-
-    " TODO: encodings became useful in ruby 1.9 :)
-    if s:ruby_new
-        let enc = &fileencoding !=# '' ? &fileencoding : &encoding
-        let encoding_spec = ', :encoding => "' . (enc ==? 'utf-8' ? 'UTF-8' : 'BINARY') . '"'
-    else
-        let encoding_spec = ''
-    endif
-
-    "gsub fixes issue #7, rails has it's own eruby syntax
-    let makeprg =
-        \ self.getExecEscaped() . ' -rerb -e ' .
-        \ syntastic#util#shescape('puts ERB.new(File.read(' .
-        \     fname . encoding_spec .
-        \     ').gsub(''<%='',''<%''), nil, ''-'').src') .
-        \ ' | ' . self.getExecEscaped() . ' -w -c'
-
-    let errorformat = '%-G%\m%.%#warning: %\%%(possibly %\)%\?useless use of a literal in void context,'
-
-    " filter out lines starting with ...
-    " long lines are truncated and wrapped in ... %p then returns the wrong
-    " column offset
-    let errorformat .= '%-G%\%.%\%.%\%.%.%#,'
-
-    let errorformat .=
-        \ '%-GSyntax OK,'.
-        \ '%E-:%l: syntax error\, %m,%Z%p^,'.
-        \ '%W-:%l: warning: %m,'.
-        \ '%Z%p^,'.
-        \ '%-C%.%#'
-
-    let env = syntastic#util#isRunningWindows() ? {} : { 'RUBYOPT': '' }
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'env': env,
-        \ 'defaults': { 'bufnr': bufnr(''), 'vcol': 1 } })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'eruby',
-    \ 'name': 'ruby'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 99
vim/syntax_checkers/fortran/gfortran.vim

@@ -1,99 +0,0 @@
-"============================================================================
-"File:        fortran.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  Karl Yngve Lervåg <karl.yngve@lervag.net>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_fortran_gfortran_checker')
-    finish
-endif
-let g:loaded_syntastic_fortran_gfortran_checker = 1
-
-if !exists('g:syntastic_fortran_compiler_options')
-    let g:syntastic_fortran_compiler_options = ''
-endif
-
-let s:type_map = {}
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_fortran_gfortran_IsAvailable() dict " {{{1
-    if !exists('g:syntastic_fortran_compiler')
-        let g:syntastic_fortran_compiler = self.getExec()
-    endif
-    call self.log('g:syntastic_fortran_compiler = ', g:syntastic_fortran_compiler)
-    return executable(expand(g:syntastic_fortran_compiler, 1))
-endfunction " }}}1
-
-" @vimlint(EVL104, 1, l:errorformat)
-function! SyntaxCheckers_fortran_gfortran_GetLocList() dict " {{{1
-    call s:SetCompilerType(g:syntastic_fortran_compiler)
-    if !has_key(s:type_map, g:syntastic_fortran_compiler)
-        call syntastic#log#error("checker fortran/gfortran: can't parse version string (abnormal termination?)")
-        return []
-    endif
-
-    if s:type_map[g:syntastic_fortran_compiler] ==# 'gfortran'
-        let errorformat =
-            \ '%-C %#,'.
-            \ '%-C  %#%.%#,'.
-            \ '%A%f:%l.%c:,'.
-            \ '%Z%trror: %m,'.
-            \ '%Z%tarning: %m,'.
-            \ '%-G%.%#'
-        if !exists('g:syntastic_fortran_gfortran_sort')
-            let g:syntastic_fortran_gfortran_sort = 0
-        endif
-    elseif s:type_map[g:syntastic_fortran_compiler] ==# 'ifort'
-        let errorformat =
-            \ '%E%f(%l): error #%n: %m,'.
-            \ '%W%f(%l): warning #%n: %m,'.
-            \ '%W%f(%l): remark #%n: %m,'.
-            \ '%-Z%p^,'.
-            \ '%-G%.%#'
-        if !exists('g:syntastic_fortran_gfortran_sort')
-            let g:syntastic_fortran_gfortran_sort = 1
-        endif
-    endif
-
-    return syntastic#c#GetLocList('fortran', 'gfortran', {
-        \ 'errorformat': errorformat,
-        \ 'main_flags': '-fsyntax-only' })
-endfunction " }}}1
-" @vimlint(EVL104, 0, l:errorformat)
-
-" Utilities {{{1
-
-function! s:SetCompilerType(exe) " {{{2
-    if !has_key(s:type_map, a:exe)
-        try
-            let ver = filter( split(syntastic#util#system(syntastic#util#shescape(a:exe) . ' --version'), '\n'),
-                \ 'v:val =~# "\\v^%(GNU Fortran|ifort) "' )[0]
-            if ver =~# '\m^GNU Fortran '
-                let s:type_map[a:exe] = 'gfortran'
-            elseif ver =~# '\m^ifort '
-                let s:type_map[a:exe] = 'ifort'
-            endif
-        catch /\m^Vim\%((\a\+)\)\=:E684/
-            " do nothing
-        endtry
-    endif
-endfunction " }}}2
-
-" }}}
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'fortran',
-    \ 'name': 'gfortran' })
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 81
vim/syntax_checkers/glsl/cgc.vim

@@ -1,81 +0,0 @@
-"============================================================================
-"File:        glsl.vim
-"Description: Syntax checker for OpenGL Shading Language
-"Maintainer:  Joshua Rahm <joshuarahm@gmail.com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_glsl_cgc_checker')
-    finish
-endif
-let g:loaded_syntastic_glsl_cgc_checker = 1
-
-let s:glsl_extensions = {
-        \ 'glslf': 'gpu_fp',
-        \ 'glslv': 'gpu_vp',
-        \ 'frag':  'gpu_fp',
-        \ 'vert':  'gpu_vp',
-        \ 'fp':    'gpu_fp',
-        \ 'vp':    'gpu_vp'
-    \ }
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_glsl_cgc_GetLocList() dict " {{{1
-    let makeprg = self.makeprgBuild({
-        \ 'args_before': '-oglsl -profile ' . s:GetProfile(),
-        \ 'args': (exists('g:syntastic_glsl_options') ? ' ' . g:syntastic_glsl_options : '') })
-
-    let errorformat =
-        \ '%E%f(%l) : error %m,' .
-        \ '%W%f(%l) : warning %m'
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat })
-endfunction " }}}1
-
-" Utilities {{{1
-
-function! s:GetProfile() " {{{2
-    let save_view = winsaveview()
-    let old_foldenable = &foldenable
-    let old_lazyredraw = &lazyredraw
-
-    let &lazyredraw = 1
-    let &foldenable = 0
-    call cursor(1, 1)
-
-    let magic = '\m\C^// profile:\s*'
-    let line = search(magic, 'c')
-
-    call winrestview(save_view)
-    let &foldenable = old_foldenable
-    let &lazyredraw = old_lazyredraw
-
-    if line
-        let profile = matchstr(getline(line), magic . '\zs.*')
-    else
-        let extensions = exists('g:syntastic_glsl_extensions') ? g:syntastic_glsl_extensions : s:glsl_extensions
-        let profile = get(extensions, tolower(expand('%:e', 1)), 'gpu_vert')
-    endif
-
-    return profile
-endfunction " }}}2
-
-" }}}1
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \'filetype': 'glsl',
-    \'name': 'cgc'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 96
vim/syntax_checkers/go/go.vim

@@ -1,96 +0,0 @@
-"============================================================================
-"File:        go.vim
-"Description: Check go syntax using 'gofmt -l' followed by 'go [build|test]'
-"Maintainer:  Kamil Kisiel <kamil@kamilkisiel.net>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-"
-" This syntax checker does not reformat your source code.
-" Use a BufWritePre autocommand to that end:
-"   autocmd FileType go autocmd BufWritePre <buffer> Fmt
-
-if exists('g:loaded_syntastic_go_go_checker')
-    finish
-endif
-let g:loaded_syntastic_go_go_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_go_go_IsAvailable() dict
-    return executable(self.getExec()) && executable('gofmt')
-endfunction
-
-function! SyntaxCheckers_go_go_GetLocList() dict
-    " Check with gofmt first, since `go build` and `go test` might not report
-    " syntax errors in the current file if another file with syntax error is
-    " compiled first.
-    let makeprg = self.makeprgBuild({
-        \ 'exe': 'gofmt',
-        \ 'args': '-l',
-        \ 'tail': '> ' . syntastic#util#DevNull() })
-
-    let errorformat =
-        \ '%f:%l:%c: %m,' .
-        \ '%-G%.%#'
-
-    let errors = SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'defaults': {'type': 'e'} })
-    if !empty(errors)
-        return errors
-    endif
-
-    " Test files, i.e. files with a name ending in `_test.go`, are not
-    " compiled by `go build`, therefore `go test` must be called for those.
-    if match(expand('%', 1), '\m_test\.go$') == -1
-        let cmd = 'build'
-        let opts = syntastic#util#var('go_go_build_args')
-        let cleanup = 0
-    else
-        let cmd = 'test -c'
-        let opts = syntastic#util#var('go_go_test_args')
-        let cleanup = 1
-    endif
-    let opt_str = (type(opts) != type('') || opts !=# '') ? join(syntastic#util#argsescape(opts)) : opts
-    let makeprg = self.getExec() . ' ' . cmd . ' ' . opt_str . ' ' . syntastic#c#NullOutput()
-
-    " The first pattern is for warnings from C compilers.
-    let errorformat =
-        \ '%W%f:%l: warning: %m,' .
-        \ '%E%f:%l:%c:%m,' .
-        \ '%E%f:%l:%m,' .
-        \ '%C%\s%\+%m,' .
-        \ '%-G#%.%#'
-
-    " The go compiler needs to either be run with an import path as an
-    " argument or directly from the package directory. Since figuring out
-    " the proper import path is fickle, just cwd to the package.
-
-    let errors = SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'cwd': expand('%:p:h', 1),
-        \ 'defaults': {'type': 'e'} })
-
-    if cleanup
-        call delete(expand('%:p:h', 1) . syntastic#util#Slash() . expand('%:p:h:t', 1) . '.test')
-    endif
-
-    return errors
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'go',
-    \ 'name': 'go'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 45
vim/syntax_checkers/go/gofmt.vim

@@ -1,45 +0,0 @@
-"============================================================================
-"File:        gofmt.vim
-"Description: Check go syntax using 'gofmt -l'
-"Maintainer:  Brandon Thomson <bt@brandonthomson.com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-"
-" This syntax checker does not reformat your source code.
-" Use a BufWritePre autocommand to that end:
-"   autocmd FileType go autocmd BufWritePre <buffer> Fmt
-
-if exists('g:loaded_syntastic_go_gofmt_checker')
-    finish
-endif
-let g:loaded_syntastic_go_gofmt_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_go_gofmt_GetLocList() dict
-    let makeprg = self.makeprgBuild({
-        \ 'args_after': '-l',
-        \ 'tail_after': '> ' . syntastic#util#DevNull() })
-
-    let errorformat = '%f:%l:%c: %m,%-G%.%#'
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'defaults': {'type': 'e'} })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'go',
-    \ 'name': 'gofmt'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 42
vim/syntax_checkers/go/golint.vim

@@ -1,42 +0,0 @@
-"============================================================================
-"File:        golint.vim
-"Description: Check go syntax using 'golint'
-"Maintainer:  Hiroshi Ioka <hirochachacha@gmail.com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_go_golint_checker')
-    finish
-endif
-let g:loaded_syntastic_go_golint_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_go_golint_GetLocList() dict
-    let makeprg = self.makeprgBuild({})
-
-    let errorformat =
-        \ '%f:%l:%c: %m,' .
-        \ '%-G%.%#'
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'defaults': {'type': 'w'},
-        \ 'subtype': 'Style' })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'go',
-    \ 'name': 'golint'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 46
vim/syntax_checkers/go/gotype.vim

@@ -1,46 +0,0 @@
-"============================================================================
-"File:        gotype.vim
-"Description: Perform syntactic and semantic checking of Go code using 'gotype'
-"Maintainer:  luz <ne.tetewi@gmail.com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_go_gotype_checker')
-    finish
-endif
-let g:loaded_syntastic_go_gotype_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_go_gotype_GetLocList() dict
-    let makeprg = self.getExecEscaped() . ' .'
-
-    let errorformat =
-        \ '%f:%l:%c: %m,' .
-        \ '%-G%.%#'
-
-    " gotype needs the full go package to test types properly. Just cwd to
-    " the package for the same reasons specified in go.vim ("figuring out
-    " the import path is fickle").
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'cwd': expand('%:p:h', 1),
-        \ 'defaults': {'type': 'e'} })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'go',
-    \ 'name': 'gotype'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 52
vim/syntax_checkers/go/govet.vim

@@ -1,52 +0,0 @@
-"============================================================================
-"File:        govet.vim
-"Description: Perform static analysis of Go code with the vet tool
-"Maintainer:  Kamil Kisiel <kamil@kamilkisiel.net>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_go_govet_checker')
-    finish
-endif
-let g:loaded_syntastic_go_govet_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_go_govet_IsAvailable() dict
-    return executable(self.getExec())
-endfunction
-
-function! SyntaxCheckers_go_govet_GetLocList() dict
-    let makeprg = self.getExec() . ' vet'
-
-    let errorformat =
-        \ '%Evet: %.%\+: %f:%l:%c: %m,' .
-        \ '%W%f:%l: %m,' .
-        \ '%-G%.%#'
-
-    " The go compiler needs to either be run with an import path as an
-    " argument or directly from the package directory. Since figuring out
-    " the proper import path is fickle, just cwd to the package.
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'cwd': expand('%:p:h', 1),
-        \ 'defaults': {'type': 'w'} })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'go',
-    \ 'name': 'govet',
-    \ 'exec': 'go' })
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 46
vim/syntax_checkers/haml/haml.vim

@@ -1,46 +0,0 @@
-"============================================================================
-"File:        haml.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  Martin Grenfell <martin.grenfell at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_haml_haml_checker')
-    finish
-endif
-let g:loaded_syntastic_haml_haml_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_haml_haml_IsAvailable() dict
-    call syntastic#log#deprecationWarn('haml_interpreter', 'haml_haml_exec')
-    return executable(self.getExec())
-endfunction
-
-function! SyntaxCheckers_haml_haml_GetLocList() dict
-    let makeprg = self.makeprgBuild({ 'args_after': '-c' })
-
-    let errorformat =
-        \ 'Haml error on line %l: %m,' .
-        \ 'Syntax error on line %l: %m,' .
-        \ '%-G%.%#'
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'haml',
-    \ 'name': 'haml'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 37
vim/syntax_checkers/haml/haml_lint.vim

@@ -1,37 +0,0 @@
-"============================================================================
-"File:        haml_lint.vim
-"Description: HAML style and syntax checker plugin for Syntastic
-"Maintainer:  Shane da Silva <shane@dasilva.io>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"============================================================================
-
-if exists('g:loaded_syntastic_haml_haml_lint_checker')
-    finish
-endif
-let g:loaded_syntastic_haml_haml_lint_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_haml_haml_lint_GetLocList() dict
-    let makeprg = self.makeprgBuild({})
-    let errorformat = '%f:%l [%t] %m'
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'subtype': 'Style'})
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'haml',
-    \ 'name': 'haml_lint',
-    \ 'exec': 'haml-lint' })
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 43
vim/syntax_checkers/handlebars/handlebars.vim

@@ -1,43 +0,0 @@
-"============================================================================
-"File:        handlebars.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  Martin Grenfell <martin.grenfell at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"============================================================================
-
-if exists('g:loaded_syntastic_handlebars_handlebars_checker')
-    finish
-endif
-let g:loaded_syntastic_handlebars_handlebars_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_handlebars_handlebars_GetLocList() dict
-    let makeprg = self.makeprgBuild({ 'args_after': '-f ' . syntastic#util#DevNull() })
-
-    let errorformat =
-        \ '%EError: %m on line %l:,' .
-        \ '%EError: %m,' .
-        \ '%Z%p^,' .
-        \ '%-G%.%#'
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'postprocess': ['guards'],
-        \ 'defaults': {'bufnr': bufnr('')} })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'handlebars',
-    \ 'name': 'handlebars'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 83
vim/syntax_checkers/haskell/ghc-mod.vim

@@ -1,83 +0,0 @@
-"============================================================================
-"File:        ghc-mod.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  Anthony Carapetis <anthony.carapetis at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_haskell_ghc_mod_checker')
-    finish
-endif
-let g:loaded_syntastic_haskell_ghc_mod_checker = 1
-
-let s:ghc_mod_new = -1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_haskell_ghc_mod_IsAvailable() dict
-    if !executable(self.getExec())
-        return 0
-    endif
-
-    " ghc-mod 5.0.0 and later needs the "version" command to print the
-    " version.  But the "version" command appeared in 4.1.0.  Thus, we need to
-    " know the version in order to know how to find out the version. :)
-
-    " Try "ghc-mod version".
-    let ver = filter(split(syntastic#util#system(self.getExecEscaped() . ' version'), '\n'), 'v:val =~# ''\m\sversion''')
-    if !len(ver)
-        " That didn't work.  Try "ghc-mod" alone.
-        let ver = filter(split(syntastic#util#system(self.getExecEscaped()), '\n'), 'v:val =~# ''\m\sversion''')
-    endif
-
-    if len(ver)
-        " Encouraged by the great success in finding out the version, now we
-        " need either a Vim that can handle NULs in system() output, or a
-        " ghc-mod that has the "--boundary" option.
-        let parsed_ver = syntastic#util#parseVersion(ver[0])
-        call self.setVersion(parsed_ver)
-        let s:ghc_mod_new = syntastic#util#versionIsAtLeast(parsed_ver, [2, 1, 2])
-    else
-        call syntastic#log#error("checker haskell/ghc_mod: can't parse version string (abnormal termination?)")
-        let s:ghc_mod_new = -1
-    endif
-
-    return (s:ghc_mod_new >= 0) && (v:version >= 704 || s:ghc_mod_new)
-endfunction
-
-function! SyntaxCheckers_haskell_ghc_mod_GetLocList() dict
-    let makeprg = self.makeprgBuild({
-        \ 'exe': self.getExecEscaped() . ' check' . (s:ghc_mod_new ? ' --boundary=""' : '') })
-
-    let errorformat =
-        \ '%-G%\s%#,' .
-        \ '%f:%l:%c:%trror: %m,' .
-        \ '%f:%l:%c:%tarning: %m,'.
-        \ '%f:%l:%c: %trror: %m,' .
-        \ '%f:%l:%c: %tarning: %m,' .
-        \ '%f:%l:%c:%m,' .
-        \ '%E%f:%l:%c:,' .
-        \ '%Z%m'
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'postprocess': ['compressWhitespace'],
-        \ 'returns': [0] })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'haskell',
-    \ 'name': 'ghc_mod',
-    \ 'exec': 'ghc-mod' })
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 56
vim/syntax_checkers/haskell/hdevtools.vim

@@ -1,56 +0,0 @@
-"============================================================================
-"File:        hdevtools.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  Anthony Carapetis <anthony.carapetis at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_haskell_hdevtools_checker')
-    finish
-endif
-let g:loaded_syntastic_haskell_hdevtools_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_haskell_hdevtools_GetLocList() dict
-    if !exists('g:syntastic_haskell_hdevtools_args') && exists('g:hdevtools_options')
-        call syntastic#log#oneTimeWarn('variable g:hdevtools_options is deprecated, ' .
-            \ 'please use g:syntastic_haskell_hdevtools_args instead')
-        let g:syntastic_haskell_hdevtools_args = g:hdevtools_options
-    endif
-
-    let makeprg = self.makeprgBuild({
-        \ 'exe_after': 'check',
-        \ 'fname': syntastic#util#shexpand('%:p') })
-
-    let errorformat =
-        \ '%-Z %#,'.
-        \ '%W%f:%l:%v: Warning: %m,'.
-        \ '%W%f:%l:%v: Warning:,'.
-        \ '%E%f:%l:%v: %m,'.
-        \ '%E%>%f:%l:%v:,'.
-        \ '%+C  %#%m,'.
-        \ '%W%>%f:%l:%v:,'.
-        \ '%+C  %#%tarning: %m,'
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'defaults': {'vcol': 1},
-        \ 'postprocess': ['compressWhitespace'] })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'haskell',
-    \ 'name': 'hdevtools'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 39
vim/syntax_checkers/haskell/hlint.vim

@@ -1,39 +0,0 @@
-"============================================================================
-"File:        hlint.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  Nicolas Wu <nicolas.wu at gmail dot com>
-"License:     BSD
-"============================================================================
-
-if exists('g:loaded_syntastic_haskell_hlint_checker')
-    finish
-endif
-let g:loaded_syntastic_haskell_hlint_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_haskell_hlint_GetLocList() dict
-    let makeprg = self.makeprgBuild({
-        \ 'fname': syntastic#util#shexpand('%:p')})
-
-    let errorformat =
-        \ '%E%f:%l:%v: Error: %m,' .
-        \ '%W%f:%l:%v: Warning: %m,' .
-        \ '%C%m'
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'defaults': {'vcol': 1},
-        \ 'postprocess': ['compressWhitespace'] })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'haskell',
-    \ 'name': 'hlint'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 43
vim/syntax_checkers/haskell/scan.vim

@@ -1,43 +0,0 @@
-"============================================================================
-"File:        scan.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  LCD 47 <lcd047 at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_haskell_scan_checker')
-    finish
-endif
-let g:loaded_syntastic_haskell_scan_checker = 1
-
-if !exists('g:syntastic_haskell_scan_sort')
-    let g:syntastic_haskell_scan_sort = 1
-endif
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_haskell_scan_GetLocList() dict
-    let makeprg = self.makeprgBuild({})
-
-    let errorformat = '%f:%l:%v: %m'
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'subtype': 'Style' })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'haskell',
-    \ 'name': 'scan'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 63
vim/syntax_checkers/haxe/haxe.vim

@@ -1,63 +0,0 @@
-"============================================================================
-"File:        haxe.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  David Bernard <david.bernard.31 at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_haxe_haxe_checker')
-    finish
-endif
-let g:loaded_syntastic_haxe_haxe_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_haxe_haxe_GetLocList() dict
-    if exists('b:vaxe_hxml')
-        let hxml = b:vaxe_hxml
-    elseif exists('g:vaxe_hxml')
-        let hxml = g:vaxe_hxml
-    else
-        let hxml = syntastic#util#findInParent('*.hxml', expand('%:p:h', 1))
-    endif
-    let hxml = fnamemodify(hxml, ':p')
-
-    call self.log('hxml =', hxml)
-
-    if hxml !=# ''
-        let makeprg = self.makeprgBuild({
-            \ 'fname': syntastic#util#shescape(fnamemodify(hxml, ':t')) })
-
-        let errorformat = '%E%f:%l: characters %c-%n : %m'
-
-        let loclist = SyntasticMake({
-            \ 'makeprg': makeprg,
-            \ 'errorformat': errorformat,
-            \ 'cwd': fnamemodify(hxml, ':h') })
-
-        for e in loclist
-            let e['hl'] = '\%>' . e['col'] . 'c\%<' . (e['nr'] + 1) . 'c'
-            let e['col'] += 1
-            let e['nr'] = 0
-        endfor
-
-        return loclist
-    endif
-
-    return []
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'haxe',
-    \ 'name': 'haxe'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 38
vim/syntax_checkers/hss/hss.vim

@@ -1,38 +0,0 @@
-"============================================================================
-"File:        hss.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  Justin Donaldson (jdonaldson@gmail.com)
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_hss_hss_checker')
-    finish
-endif
-let g:loaded_syntastic_hss_hss_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_hss_hss_GetLocList() dict
-    let makeprg = self.makeprgBuild({ 'args_after' : '-output ' . syntastic#util#DevNull() })
-
-    let errorformat = '%E%f:%l: %m'
-
-    return SyntasticMake({
-	\ 'makeprg': makeprg,
-	\ 'errorformat': errorformat })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'hss',
-    \ 'name': 'hss'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 50
vim/syntax_checkers/html/jshint.vim

@@ -1,50 +0,0 @@
-"============================================================================
-"File:        jshint.vim
-"Description: Javascript syntax checker for HTML - using jshint
-"Maintainer:  LCD 47 <lcd047@gmail.com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"============================================================================
-
-if exists('g:loaded_syntastic_html_jshint_checker')
-    finish
-endif
-let g:loaded_syntastic_html_jshint_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_html_jshint_IsAvailable() dict
-    call syntastic#log#deprecationWarn('jshint_exec', 'html_jshint_exec')
-    if !executable(self.getExec())
-        return 0
-    endif
-    return syntastic#util#versionIsAtLeast(self.getVersion(), [2, 4])
-endfunction
-
-function! SyntaxCheckers_html_jshint_GetLocList() dict
-    call syntastic#log#deprecationWarn('html_jshint_conf', 'html_jshint_args',
-        \ "'--config ' . syntastic#util#shexpand(OLD_VAR)")
-
-    let makeprg = self.makeprgBuild({ 'args_after': '--verbose --extract always' })
-
-    let errorformat = '%A%f: line %l\, col %v\, %m \(%t%*\d\)'
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'defaults': {'bufnr': bufnr('')},
-        \ 'returns': [0, 2] })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'html',
-    \ 'name': 'jshint'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 212
vim/syntax_checkers/html/tidy.vim

@@ -1,212 +0,0 @@
-"============================================================================
-"File:        tidy.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  Martin Grenfell <martin.grenfell at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_html_tidy_checker')
-    finish
-endif
-let g:loaded_syntastic_html_tidy_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-" Checker options {{{1
-
-if !exists('g:syntastic_html_tidy_ignore_errors')
-    let g:syntastic_html_tidy_ignore_errors = []
-endif
-
-if !exists('g:syntastic_html_tidy_blocklevel_tags')
-    let g:syntastic_html_tidy_blocklevel_tags = []
-endif
-
-if !exists('g:syntastic_html_tidy_inline_tags')
-    let g:syntastic_html_tidy_inline_tags = []
-endif
-
-if !exists('g:syntastic_html_tidy_empty_tags')
-    let g:syntastic_html_tidy_empty_tags = []
-endif
-
-" }}}1
-
-" Constants {{{1
-
-let s:IGNORE_ERRORS = [
-        \ "<table> lacks \"summary\" attribute",
-        \ "not approved by W3C",
-        \ "<input> proprietary attribute \"placeholder\"",
-        \ "<meta> proprietary attribute \"charset\"",
-        \ "<meta> lacks \"content\" attribute",
-        \ "inserting \"type\" attribute",
-        \ "proprietary attribute \"data-",
-        \ "missing <!DOCTYPE> declaration",
-        \ "inserting implicit <body>",
-        \ "inserting missing 'title' element",
-        \ "unescaped & or unknown entity",
-        \ "<input> attribute \"type\" has invalid value",
-        \ "proprietary attribute \"role\"",
-        \ "proprietary attribute \"aria-activedescendant\"",
-        \ "proprietary attribute \"aria-atomic\"",
-        \ "proprietary attribute \"aria-autocomplete\"",
-        \ "proprietary attribute \"aria-busy\"",
-        \ "proprietary attribute \"aria-checked\"",
-        \ "proprietary attribute \"aria-controls\"",
-        \ "proprietary attribute \"aria-describedby\"",
-        \ "proprietary attribute \"aria-disabled\"",
-        \ "proprietary attribute \"aria-dropeffect\"",
-        \ "proprietary attribute \"aria-expanded\"",
-        \ "proprietary attribute \"aria-flowto\"",
-        \ "proprietary attribute \"aria-grabbed\"",
-        \ "proprietary attribute \"aria-haspopup\"",
-        \ "proprietary attribute \"aria-hidden\"",
-        \ "proprietary attribute \"aria-invalid\"",
-        \ "proprietary attribute \"aria-label\"",
-        \ "proprietary attribute \"aria-labelledby\"",
-        \ "proprietary attribute \"aria-level\"",
-        \ "proprietary attribute \"aria-live\"",
-        \ "proprietary attribute \"aria-multiline\"",
-        \ "proprietary attribute \"aria-multiselectable\"",
-        \ "proprietary attribute \"aria-orientation\"",
-        \ "proprietary attribute \"aria-owns\"",
-        \ "proprietary attribute \"aria-posinset\"",
-        \ "proprietary attribute \"aria-pressed\"",
-        \ "proprietary attribute \"aria-readonly\"",
-        \ "proprietary attribute \"aria-relevant\"",
-        \ "proprietary attribute \"aria-relevant\"",
-        \ "proprietary attribute \"aria-required\"",
-        \ "proprietary attribute \"aria-selected\"",
-        \ "proprietary attribute \"aria-setsize\"",
-        \ "proprietary attribute \"aria-sort\"",
-        \ "proprietary attribute \"aria-valuemax\"",
-        \ "proprietary attribute \"aria-valuemin\"",
-        \ "proprietary attribute \"aria-valuenow\"",
-        \ "proprietary attribute \"aria-valuetext\""
-    \ ]
-lockvar! s:IGNORE_ERRORS
-
-let s:BLOCKLEVEL_TAGS = [
-        \ 'main',
-        \ 'section',
-        \ 'article',
-        \ 'aside',
-        \ 'header',
-        \ 'footer',
-        \ 'nav',
-        \ 'figure',
-        \ 'figcaption'
-    \ ]
-lockvar! s:BLOCKLEVEL_TAGS
-
-let s:INLINE_TAGS = [
-        \ 'video',
-        \ 'audio',
-        \ 'source',
-        \ 'embed',
-        \ 'mark',
-        \ 'progress',
-        \ 'meter',
-        \ 'time',
-        \ 'ruby',
-        \ 'rt',
-        \ 'rp',
-        \ 'canvas',
-        \ 'command',
-        \ 'details',
-        \ 'datalist'
-    \ ]
-lockvar! s:INLINE_TAGS
-
-let s:EMPTY_TAGS = [
-        \ 'wbr',
-        \ 'keygen'
-    \ ]
-lockvar! s:EMPTY_TAGS
-
-" }}}1
-
-function! SyntaxCheckers_html_tidy_GetLocList() dict " {{{1
-    let makeprg = self.makeprgBuild({ 'args_after': s:Args() })
-
-    let errorformat =
-        \ '%Wline %l column %v - Warning: %m,' .
-        \ '%Eline %l column %v - Error: %m,' .
-        \ '%-G%.%#'
-
-    let loclist = SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'defaults': {'bufnr': bufnr('')},
-        \ 'returns': [0, 1, 2] })
-
-    " filter out valid HTML5 from the errors
-    for e in loclist
-        if e['valid'] && s:IgnoreError(e['text']) == 1
-            let e['valid'] = 0
-        endif
-    endfor
-
-    return loclist
-endfunction " }}}1
-
-" Utilities {{{1
-
-" TODO: join this with xhtml.vim for DRY's sake?
-function! s:TidyEncOptByFenc() " {{{2
-    let TIDY_OPTS = {
-            \ 'utf-8':        '-utf8',
-            \ 'ascii':        '-ascii',
-            \ 'latin1':       '-latin1',
-            \ 'iso-2022-jp':  '-iso-2022',
-            \ 'cp1252':       '-win1252',
-            \ 'macroman':     '-mac',
-            \ 'utf-16le':     '-utf16le',
-            \ 'utf-16':       '-utf16',
-            \ 'big5':         '-big5',
-            \ 'cp932':        '-shiftjis',
-            \ 'sjis':         '-shiftjis',
-            \ 'cp850':        '-ibm858',
-        \ }
-    return get(TIDY_OPTS, &fileencoding, '-utf8')
-endfunction " }}}2
-
-function! s:IgnoreError(text) " {{{2
-    for item in s:IGNORE_ERRORS + g:syntastic_html_tidy_ignore_errors
-        if stridx(a:text, item) != -1
-            return 1
-        endif
-    endfor
-    return 0
-endfunction " }}}2
-
-function! s:NewTags(name) " {{{2
-    return syntastic#util#shescape(join( s:{toupper(a:name)} + g:syntastic_html_tidy_{a:name}, ',' ))
-endfunction " }}}2
-
-function! s:Args() " {{{2
-    let args = s:TidyEncOptByFenc() .
-        \ ' --new-blocklevel-tags ' . s:NewTags('blocklevel_tags') .
-        \ ' --new-inline-tags ' . s:NewTags('inline_tags') .
-        \ ' --new-empty-tags ' . s:NewTags('empty_tags') .
-        \ ' -e'
-    return args
-endfunction " }}}2
-
-" }}}1
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'html',
-    \ 'name': 'tidy'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 69
vim/syntax_checkers/html/validator.vim

@@ -1,69 +0,0 @@
-"============================================================================
-"File:        validator.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  LCD 47 <lcd047 at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_html_validator_checker')
-    finish
-endif
-let g:loaded_syntastic_html_validator_checker=1
-
-if !exists('g:syntastic_html_validator_api')
-    let g:syntastic_html_validator_api = 'https://validator.nu/'
-endif
-
-if !exists('g:syntastic_html_validator_parser')
-    let g:syntastic_html_validator_parser = ''
-endif
-
-if !exists('g:syntastic_html_validator_nsfilter')
-    let g:syntastic_html_validator_nsfilter = ''
-endif
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_html_validator_GetLocList() dict
-    let fname = syntastic#util#shexpand('%')
-    let makeprg = self.getExecEscaped() . ' -q -L -s --compressed -F out=gnu -F asciiquotes=yes' .
-        \ (g:syntastic_html_validator_parser !=# '' ? ' -F parser=' . g:syntastic_html_validator_parser : '') .
-        \ (g:syntastic_html_validator_nsfilter !=# '' ? ' -F nsfilter=' . g:syntastic_html_validator_nsfilter : '') .
-        \ ' -F doc=@' . fname . '\;type=text/html\;filename=' . fname . ' ' . g:syntastic_html_validator_api
-
-    let errorformat =
-        \ '%E"%f":%l: %trror: %m,' .
-        \ '%E"%f":%l-%\d%\+: %trror: %m,' .
-        \ '%E"%f":%l%\%.%c: %trror: %m,' .
-        \ '%E"%f":%l%\%.%c-%\d%\+%\%.%\d%\+: %trror: %m,' .
-        \ '%E"%f":%l: %trror fatal: %m,' .
-        \ '%E"%f":%l-%\d%\+: %trror fatal: %m,' .
-        \ '%E"%f":%l%\%.%c: %trror fatal: %m,' .
-        \ '%E"%f":%l%\%.%c-%\d%\+%\%.%\d%\+: %trror fatal: %m,' .
-        \ '%W"%f":%l: info %tarning: %m,' .
-        \ '%W"%f":%l-%\d%\+: info %tarning: %m,' .
-        \ '%W"%f":%l%\%.%c: info %tarning: %m,' .
-        \ '%W"%f":%l%\%.%c-%\d%\+%\%.%\d%\+: info %tarning: %m'
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'preprocess': 'validator',
-        \ 'returns': [0] })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'html',
-    \ 'name': 'validator',
-    \ 'exec': 'curl' })
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 62
vim/syntax_checkers/html/w3.vim

@@ -1,62 +0,0 @@
-"============================================================================
-"File:        w3.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  Martin Grenfell <martin.grenfell at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_html_w3_checker')
-    finish
-endif
-let g:loaded_syntastic_html_w3_checker = 1
-
-if !exists('g:syntastic_html_w3_api')
-    let g:syntastic_html_w3_api = 'http://validator.w3.org/check'
-endif
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_html_w3_GetLocList() dict
-    let makeprg = self.getExecEscaped() . ' -q -L -s -F output=json ' .
-        \ '-F uploaded_file=@' . syntastic#util#shexpand('%:p') . '\;type=text/html ' .
-        \ g:syntastic_html_w3_api
-
-    let errorformat =
-        \ '%A %\+{,' .
-        \ '%C %\+"lastLine": %l\,%\?,' .
-        \ '%C %\+"lastColumn": %c\,%\?,' .
-        \ '%C %\+"message": "%m"\,%\?,' .
-        \ '%C %\+"type": "%trror"\,%\?,' .
-        \ '%-G %\+"type": "%tnfo"\,%\?,' .
-        \ '%C %\+"subtype": "%tarning"\,%\?,' .
-        \ '%Z %\+}\,,' .
-        \ '%-G%.%#'
-
-    let loclist = SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'defaults': {'bufnr': bufnr('')},
-        \ 'returns': [0] })
-
-    for e in loclist
-        let e['text'] = substitute(e['text'], '\m\\\([\"]\)', '\1', 'g')
-    endfor
-
-    return loclist
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'html',
-    \ 'name': 'w3',
-    \ 'exec': 'curl' })
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 77
vim/syntax_checkers/java/checkstyle.vim

@@ -1,77 +0,0 @@
-"============================================================================
-"File:        checkstyle.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  Dmitry Geurkov <d.geurkov at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-" Tested with checkstyle 5.5
-"============================================================================
-
-if exists('g:loaded_syntastic_java_checkstyle_checker')
-    finish
-endif
-let g:loaded_syntastic_java_checkstyle_checker = 1
-
-if !exists('g:syntastic_java_checkstyle_classpath')
-    let g:syntastic_java_checkstyle_classpath = 'checkstyle-5.5-all.jar'
-endif
-
-if !exists('g:syntastic_java_checkstyle_conf_file')
-    let g:syntastic_java_checkstyle_conf_file = 'sun_checks.xml'
-endif
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_java_checkstyle_IsAvailable() dict
-    if !executable(self.getExec())
-        return 0
-    endif
-
-    let classpath = expand(g:syntastic_java_checkstyle_classpath, 1)
-    let conf_file = expand(g:syntastic_java_checkstyle_conf_file, 1)
-    call self.log(
-        \ 'filereadable(' . string(classpath) . ') = ' . filereadable(classpath) . ', ' .
-        \ 'filereadable(' . string(conf_file) . ') = ' . filereadable(conf_file))
-
-    return filereadable(classpath) && filereadable(conf_file)
-endfunction
-
-function! SyntaxCheckers_java_checkstyle_GetLocList() dict
-
-    let fname = syntastic#util#shescape( expand('%:p:h', 1) . syntastic#util#Slash() . expand('%:t', 1) )
-
-    if has('win32unix')
-        let fname = substitute(syntastic#util#system('cygpath -m ' . fname), '\m\%x00', '', 'g')
-    endif
-
-    let makeprg = self.makeprgBuild({
-        \ 'args_after': [
-        \       '-cp', expand(g:syntastic_java_checkstyle_classpath, 1),
-        \       'com.puppycrawl.tools.checkstyle.Main',
-        \       '-c', expand(g:syntastic_java_checkstyle_conf_file, 1),
-        \       '-f', 'xml'],
-        \ 'fname': fname })
-
-    let errorformat = '%f:%t:%l:%c:%m'
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'preprocess': 'checkstyle',
-        \ 'subtype': 'Style' })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'java',
-    \ 'name': 'checkstyle',
-    \ 'exec': 'java'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 420
vim/syntax_checkers/java/javac.vim

@@ -1,420 +0,0 @@
-"============================================================================
-"File:        javac.vim
-"Description: Syntax checking plugin for syntastic.vim
-"Maintainer:  Jochen Keil <jochen.keil at gmail dot com>
-"             Dmitry Geurkov <d.geurkov at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"============================================================================
-
-if exists('g:loaded_syntastic_java_javac_checker')
-    finish
-endif
-let g:loaded_syntastic_java_javac_checker = 1
-let g:syntastic_java_javac_maven_pom_tags = ['build', 'properties']
-let g:syntastic_java_javac_maven_pom_properties = {}
-let s:has_maven = 0
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-" Checker options {{{1
-
-if !exists('g:syntastic_java_javac_executable')
-    let g:syntastic_java_javac_executable = 'javac'
-endif
-
-if !exists('g:syntastic_java_maven_executable')
-    let g:syntastic_java_maven_executable = 'mvn'
-endif
-
-if !exists('g:syntastic_java_javac_options')
-    let g:syntastic_java_javac_options = '-Xlint'
-endif
-
-if !exists('g:syntastic_java_maven_options')
-    let g:syntastic_java_maven_options = ''
-endif
-
-if !exists('g:syntastic_java_javac_classpath')
-    let g:syntastic_java_javac_classpath = ''
-endif
-
-if !exists('g:syntastic_java_javac_delete_output')
-    let g:syntastic_java_javac_delete_output = 1
-endif
-
-if !exists('g:syntastic_java_javac_autoload_maven_classpath')
-    let g:syntastic_java_javac_autoload_maven_classpath = 1
-endif
-
-if !exists('g:syntastic_java_javac_config_file_enabled')
-    let g:syntastic_java_javac_config_file_enabled = 0
-endif
-
-if !exists('g:syntastic_java_javac_config_file')
-    let g:syntastic_java_javac_config_file = '.syntastic_javac_config'
-endif
-
-if !exists('g:syntastic_java_javac_custom_classpath_command')
-    let g:syntastic_java_javac_custom_classpath_command = ''
-endif
-
-if !exists('g:syntastic_java_javac_maven_pom_ftime')
-    let g:syntastic_java_javac_maven_pom_ftime = {}
-endif
-
-if !exists('g:syntastic_java_javac_maven_pom_classpath')
-    let g:syntastic_java_javac_maven_pom_classpath = {}
-endif
-
-" }}}1
-
-command! SyntasticJavacEditClasspath call s:EditClasspath()
-
-if g:syntastic_java_javac_config_file_enabled
-    command! SyntasticJavacEditConfig call s:EditConfig()
-endif
-
-function! SyntaxCheckers_java_javac_IsAvailable() dict " {{{1
-    let s:has_maven = executable(expand(g:syntastic_java_maven_executable, 1))
-    return executable(expand(g:syntastic_java_javac_executable, 1))
-endfunction " }}}1
-
-function! SyntaxCheckers_java_javac_GetLocList() dict " {{{1
-    let javac_opts = g:syntastic_java_javac_options
-
-    let output_dir = ''
-    if g:syntastic_java_javac_delete_output
-        let output_dir = syntastic#util#tmpdir()
-        let javac_opts .= ' -d ' . syntastic#util#shescape(output_dir)
-    endif
-
-    " load classpath from config file
-    if g:syntastic_java_javac_config_file_enabled
-        call s:LoadConfigFile()
-    endif
-
-
-    " add classpathes to javac_classpath {{{2
-    let javac_classpath = ''
-
-    for path in split(g:syntastic_java_javac_classpath, s:ClassSep())
-        if path !=# ''
-            try
-                let ps = glob(path, 1, 1)
-            catch
-                let ps = split(glob(path, 1), "\n")
-            endtry
-            if type(ps) == type([])
-                for p in ps
-                    let javac_classpath = s:AddToClasspath(javac_classpath, p)
-                endfor
-            else
-                let javac_classpath = s:AddToClasspath(javac_classpath, ps)
-            endif
-        endif
-    endfor
-
-    if s:has_maven && g:syntastic_java_javac_autoload_maven_classpath
-        if !g:syntastic_java_javac_delete_output
-            let javac_opts .= ' -d ' . syntastic#util#shescape(s:MavenOutputDirectory())
-        endif
-        let javac_classpath = s:AddToClasspath(javac_classpath, s:GetMavenClasspath())
-    endif
-    " }}}2
-
-    " load custom classpath {{{2
-    if g:syntastic_java_javac_custom_classpath_command !=# ''
-        let lines = syntastic#util#system(g:syntastic_java_javac_custom_classpath_command)
-        if syntastic#util#isRunningWindows() || has('win32unix')
-            let lines = substitute(lines, "\r\n", "\n", 'g')
-        endif
-        for l in split(lines, "\n")
-            let javac_classpath = s:AddToClasspath(javac_classpath, l)
-        endfor
-    endif
-
-    if javac_classpath !=# ''
-        let javac_opts .= ' -cp ' . syntastic#util#shexpand(javac_classpath)
-    endif
-    " }}}2
-
-    let fname = expand('%:p:h', 1) . syntastic#util#Slash() . expand ('%:t', 1)
-
-    if has('win32unix')
-        let fname = syntastic#util#CygwinPath(fname)
-    endif
-
-    let makeprg = self.makeprgBuild({
-        \ 'args': javac_opts,
-        \ 'fname': syntastic#util#shescape(fname) })
-
-    " unashamedly stolen from *errorformat-javac* (quickfix.txt) and modified to include error types
-    let errorformat =
-        \ '%E%f:%l: error: %m,'.
-        \ '%W%f:%l: warning: %m,'.
-        \ '%A%f:%l: %m,'.
-        \ '%+Z%p^,'.
-        \ '%+C%.%#,'.
-        \ '%-G%.%#'
-
-    if output_dir !=# ''
-        silent! call mkdir(output_dir, 'p')
-    endif
-    let errors = SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'postprocess': ['cygwinRemoveCR'] })
-
-    if output_dir !=# ''
-        call syntastic#util#rmrf(output_dir)
-    endif
-    return errors
-
-endfunction " }}}1
-
-" Utilities {{{1
-
-function! s:RemoveCarriageReturn(line) " {{{2
-    return substitute(a:line, "\r", '', 'g')
-endfunction " }}}2
-
-function! s:ClassSep() " {{{2
-    return (syntastic#util#isRunningWindows() || has('win32unix')) ? ';' : ':'
-endfunction " }}}2
-
-function! s:AddToClasspath(classpath, path) " {{{2
-    if a:path ==# ''
-        return a:classpath
-    endif
-    return (a:classpath !=# '') ? a:classpath . s:ClassSep() . a:path : a:path
-endfunction " }}}2
-
-function! s:SplitClasspath(classpath) " {{{2
-    return split(a:classpath, s:ClassSep())
-endfunction " }}}2
-
-function! s:LoadConfigFile() " {{{2
-    if filereadable(expand(g:syntastic_java_javac_config_file, 1))
-        execute 'source ' . fnameescape(expand(g:syntastic_java_javac_config_file, 1))
-    endif
-endfunction " }}}2
-
-function! s:SaveClasspath() " {{{2
-    " build classpath from lines
-    let path = ''
-    let lines = getline(1, line('$'))
-    for l in lines
-        let path = s:AddToClasspath(path, l)
-    endfor
-    " save classpath to config file
-    if g:syntastic_java_javac_config_file_enabled
-        if filereadable(expand(g:syntastic_java_javac_config_file, 1))
-            " load lines from config file
-            let lines = readfile(expand(g:syntastic_java_javac_config_file, 1))
-            " strip g:syntastic_java_javac_classpath options from config file lines
-            let i = 0
-            while i < len(lines)
-                if match(lines[i], 'g:syntastic_java_javac_classpath') != -1
-                    call remove(lines, i)
-                else
-                    let i += 1
-                endif
-            endwhile
-        else
-            let lines = []
-        endif
-        " add new g:syntastic_java_javac_classpath option to config
-        call add(lines, 'let g:syntastic_java_javac_classpath = ' . string(path))
-        " save config file lines
-        call writefile(lines, expand(g:syntastic_java_javac_config_file, 1))
-    endif
-    " set new classpath
-    let g:syntastic_java_javac_classpath = path
-    let &modified = 0
-endfunction " }}}2
-
-function! s:EditClasspath() " {{{2
-    let command = 'syntastic javac classpath'
-    let winnr = bufwinnr('^' . command . '$')
-    if winnr < 0
-        let path = []
-        let pathlines = split(g:syntastic_java_javac_classpath, "\n")
-        for p in pathlines
-            call extend(path, s:SplitClasspath(p))
-        endfor
-        execute (len(path) + 5) . 'sp ' . fnameescape(command)
-
-        augroup syntastic
-            autocmd BufWriteCmd <buffer> call s:SaveClasspath() | bwipeout
-        augroup END
-
-        setlocal buftype=acwrite bufhidden=wipe nobuflisted noswapfile nowrap number
-        for p in path
-            call append(line('$') - 1, p)
-        endfor
-        let &modified = 0
-    else
-        execute winnr . 'wincmd w'
-    endif
-endfunction " }}}2
-
-function! s:SaveConfig() " {{{2
-    " get lines
-    let lines = getline(1, line('$'))
-    if g:syntastic_java_javac_config_file_enabled
-        " save config file lines
-        call writefile(lines, expand(g:syntastic_java_javac_config_file, 1))
-    endif
-    let &modified = 0
-endfunction " }}}2
-
-function! s:EditConfig() " {{{2
-    let command = 'syntastic javac config'
-    let winnr = bufwinnr('^' . command . '$')
-    if winnr < 0
-        let lines = []
-        if filereadable(expand(g:syntastic_java_javac_config_file, 1))
-            let lines = readfile(expand(g:syntastic_java_javac_config_file, 1))
-        endif
-        execute (len(lines) + 5) . 'sp ' . fnameescape(command)
-
-        augroup syntastic
-            autocmd BufWriteCmd <buffer> call s:SaveConfig() | bwipeout
-        augroup END
-
-        setlocal ft=vim buftype=acwrite bufhidden=wipe nobuflisted noswapfile nowrap number
-        for l in lines
-            call append(line('$') - 1, l)
-        endfor
-        let &modified = 0
-    else
-        execute winnr . 'wincmd w'
-    endif
-endfunction " }}}2
-
-function! s:GetMavenProperties() " {{{2
-    let mvn_properties = {}
-    let pom = findfile('pom.xml', '.;')
-    if s:has_maven && filereadable(pom)
-        if !has_key(g:syntastic_java_javac_maven_pom_properties, pom)
-            let mvn_cmd = syntastic#util#shexpand(g:syntastic_java_maven_executable) .
-                \ ' -f ' . syntastic#util#shescape(pom) .
-                \ ' ' . g:syntastic_java_maven_options
-            let mvn_is_managed_tag = 1
-            let mvn_settings_output = split(syntastic#util#system(mvn_cmd . ' help:effective-pom'), "\n")
-            let current_path = 'project'
-            for line in mvn_settings_output
-                let matches = matchlist(line, '\m^\s*<\([a-zA-Z0-9\-\.]\+\)>\s*$')
-                if mvn_is_managed_tag && !empty(matches)
-                    let mvn_is_managed_tag = index(g:syntastic_java_javac_maven_pom_tags, matches[1]) >= 0
-                    let current_path .= '.' . matches[1]
-                else
-                    let matches = matchlist(line, '\m^\s*</\([a-zA-Z0-9\-\.]\+\)>\s*$')
-                    if !empty(matches)
-                        let mvn_is_managed_tag = index(g:syntastic_java_javac_maven_pom_tags, matches[1]) < 0
-                        let current_path  = substitute(current_path, '\m\.' . matches[1] . '$', '', '')
-                    else
-                        let matches = matchlist(line, '\m^\s*<\([a-zA-Z0-9\-\.]\+\)>\(.\+\)</[a-zA-Z0-9\-\.]\+>\s*$')
-                        if mvn_is_managed_tag && !empty(matches)
-                            let mvn_properties[current_path . '.' . matches[1]] = matches[2]
-                        endif
-                    endif
-                endif
-            endfor
-            let g:syntastic_java_javac_maven_pom_properties[pom] = mvn_properties
-        endif
-        return g:syntastic_java_javac_maven_pom_properties[pom]
-    endif
-    return mvn_properties
-endfunction " }}}2
-
-function! s:GetMavenClasspath() " {{{2
-    let pom = findfile('pom.xml', '.;')
-    if s:has_maven && filereadable(pom)
-        if !has_key(g:syntastic_java_javac_maven_pom_ftime, pom) || g:syntastic_java_javac_maven_pom_ftime[pom] != getftime(pom)
-            let mvn_cmd = syntastic#util#shexpand(g:syntastic_java_maven_executable) .
-                \ ' -f ' . syntastic#util#shescape(pom) .
-                \ ' ' . g:syntastic_java_maven_options
-            let mvn_classpath_output = split(syntastic#util#system(mvn_cmd . ' dependency:build-classpath'), "\n")
-            let mvn_classpath = ''
-            let class_path_next = 0
-
-            for line in mvn_classpath_output
-                if class_path_next == 1
-                    let mvn_classpath = s:RemoveCarriageReturn(line)
-                    break
-                endif
-                if stridx(line, 'Dependencies classpath:') >= 0
-                    let class_path_next = 1
-                endif
-            endfor
-
-            let mvn_properties = s:GetMavenProperties()
-
-            let sep = syntastic#util#Slash()
-            let output_dir = join(['target', 'classes'], sep)
-            if has_key(mvn_properties, 'project.build.outputDirectory')
-                let output_dir = mvn_properties['project.build.outputDirectory']
-            endif
-            let mvn_classpath = s:AddToClasspath(mvn_classpath, output_dir)
-
-            let test_output_dir = join(['target', 'test-classes'], sep)
-            if has_key(mvn_properties, 'project.build.testOutputDirectory')
-                let test_output_dir = mvn_properties['project.build.testOutputDirectory']
-            endif
-            let mvn_classpath = s:AddToClasspath(mvn_classpath, test_output_dir)
-
-            let g:syntastic_java_javac_maven_pom_ftime[pom] = getftime(pom)
-            let g:syntastic_java_javac_maven_pom_classpath[pom] = mvn_classpath
-        endif
-        return g:syntastic_java_javac_maven_pom_classpath[pom]
-    endif
-    return ''
-endfunction " }}}2
-
-function! s:MavenOutputDirectory() " {{{2
-    let pom = findfile('pom.xml', '.;')
-    if s:has_maven && filereadable(pom)
-        let mvn_properties = s:GetMavenProperties()
-        let output_dir = getcwd()
-        if has_key(mvn_properties, 'project.properties.build.dir')
-            let output_dir = mvn_properties['project.properties.build.dir']
-        endif
-
-        let sep = syntastic#util#Slash()
-        if stridx(expand('%:p:h', 1), join(['src', 'main', 'java'], sep)) >= 0
-            let output_dir = join ([output_dir, 'target', 'classes'], sep)
-            if has_key(mvn_properties, 'project.build.outputDirectory')
-                let output_dir = mvn_properties['project.build.outputDirectory']
-            endif
-        endif
-        if stridx(expand('%:p:h', 1), join(['src', 'test', 'java'], sep)) >= 0
-            let output_dir = join([output_dir, 'target', 'test-classes'], sep)
-            if has_key(mvn_properties, 'project.build.testOutputDirectory')
-                let output_dir = mvn_properties['project.build.testOutputDirectory']
-            endif
-        endif
-
-        if has('win32unix')
-            let output_dir = syntastic#util#CygwinPath(output_dir)
-        endif
-        return output_dir
-    endif
-    return '.'
-endfunction " }}}2
-
-" }}}1
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'java',
-    \ 'name': 'javac'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 76
vim/syntax_checkers/javascript/closurecompiler.vim

@@ -1,76 +0,0 @@
-"============================================================================
-"File:        closurecompiler.vim
-"Description: Javascript syntax checker - using Google Closure Compiler
-"Maintainer:  Motohiro Takayama <mootoh at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"============================================================================
-
-if exists('g:loaded_syntastic_javascript_closurecompiler_checker')
-    finish
-endif
-let g:loaded_syntastic_javascript_closurecompiler_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_javascript_closurecompiler_IsAvailable() dict
-    call syntastic#log#deprecationWarn('javascript_closure_compiler_path', 'javascript_closurecompiler_path')
-
-    if !executable(self.getExec())
-        return 0
-    endif
-
-    let s:has_script = exists('g:syntastic_javascript_closurecompiler_script')
-    if s:has_script
-        return 1
-    endif
-
-    let cp = get(g:, 'syntastic_javascript_closurecompiler_path', '')
-    call self.log('g:syntastic_javascript_closurecompiler_path =', cp)
-
-    let jar = expand(cp, 1)
-    call self.log('filereadable(' . string(jar) . ') = ' . filereadable(jar))
-
-    return filereadable(jar)
-endfunction
-
-function! SyntaxCheckers_javascript_closurecompiler_GetLocList() dict
-    call syntastic#log#deprecationWarn('javascript_closure_compiler_options', 'javascript_closurecompiler_args')
-    call syntastic#log#deprecationWarn('javascript_closure_compiler_file_list', 'javascript_closurecompiler_file_list')
-
-    let flist = expand(get(g:, 'syntastic_javascript_closurecompiler_file_list', ''), 1)
-    if filereadable(flist)
-        let file_list = map( readfile(flist), 'expand(v:var, 1)' )
-    else
-        let file_list = [expand('%', 1)]
-    endif
-
-    let makeprg = self.makeprgBuild({
-        \ 'exe_after': (s:has_script ? [] : ['-jar', expand(g:syntastic_javascript_closurecompiler_path, 1)]),
-        \ 'args_after': '--js',
-        \ 'fname': file_list })
-
-    let errorformat =
-        \ '%-GOK,'.
-        \ '%E%f:%l: ERROR - %m,'.
-        \ '%W%f:%l: WARNING - %m,'.
-        \ '%Z%p^'
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'javascript',
-    \ 'name': 'closurecompiler',
-    \ 'exec': get(g:, 'syntastic_javascript_closurecompiler_script', 'java')})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 60
vim/syntax_checkers/javascript/eslint.vim

@@ -1,60 +0,0 @@
-"============================================================================
-"File:        eslint.vim
-"Description: Javascript syntax checker - using eslint
-"Maintainer:  Maksim Ryzhikov <rv.maksim at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"============================================================================
-
-if exists('g:loaded_syntastic_javascript_eslint_checker')
-    finish
-endif
-let g:loaded_syntastic_javascript_eslint_checker = 1
-
-if !exists('g:syntastic_javascript_eslint_sort')
-    let g:syntastic_javascript_eslint_sort = 1
-endif
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_javascript_eslint_IsAvailable() dict
-    if !executable(self.getExec())
-        return 0
-    endif
-    return syntastic#util#versionIsAtLeast(self.getVersion(), [0, 1])
-endfunction
-
-function! SyntaxCheckers_javascript_eslint_GetLocList() dict
-    call syntastic#log#deprecationWarn('javascript_eslint_conf', 'javascript_eslint_args',
-        \ "'--config ' . syntastic#util#shexpand(OLD_VAR)")
-
-    let makeprg = self.makeprgBuild({ 'args_before': '-f compact' })
-
-    let errorformat =
-        \ '%E%f: line %l\, col %c\, Error - %m,' .
-        \ '%W%f: line %l\, col %c\, Warning - %m'
-
-    let loclist = SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'postprocess': ['guards'] })
-
-    for e in loclist
-        let e['col'] += 1
-    endfor
-
-    return loclist
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'javascript',
-    \ 'name': 'eslint'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 60
vim/syntax_checkers/javascript/flow.vim

@@ -1,60 +0,0 @@
-"============================================================================
-"File:        flow.vim
-"Description: Javascript syntax checker - using flow
-"Maintainer:  Michael Robinson <mike@pagesofinterest.net>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"============================================================================
-
-if exists('g:loaded_syntastic_javascript_flow_checker')
-    finish
-endif
-let g:loaded_syntastic_javascript_flow_checker = 1
-
-if !exists('g:syntastic_javascript_flow_sort')
-    let g:syntastic_javascript_flow_sort = 1
-endif
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_javascript_flow_GetLocList() dict
-    if findfile('.flowconfig', '.;') ==# ''
-        return []
-    endif
-
-    let makeprg = self.makeprgBuild({
-        \ 'exe': self.getExecEscaped() . ' check',
-        \ 'args_after': '--show-all-errors --json' })
-
-    let errorformat =
-        \ '%f:%l:%c:%n: %m,' .
-        \ '%f:%l:%c: %m'
-
-    let loclist = SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'preprocess': 'flow',
-        \ 'defaults': {'type': 'E'} })
-
-    for e in loclist
-        if get(e, 'col', 0) && get(e, 'nr', 0)
-            let e['hl'] = '\%>' . (e['col'] - 1) . 'c\%<' . (e['nr'] + 1) . 'c'
-            let e['nr'] = 0
-        endif
-    endfor
-
-    return loclist
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'javascript',
-    \ 'name': 'flow'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 45
vim/syntax_checkers/javascript/gjslint.vim

@@ -1,45 +0,0 @@
-"============================================================================
-"File:        gjslint.vim
-"Description: Javascript syntax checker - using gjslint
-"Maintainer:  Martin Grenfell <martin.grenfell at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"============================================================================
-
-if exists('g:loaded_syntastic_javascript_gjslint_checker')
-    finish
-endif
-let g:loaded_syntastic_javascript_gjslint_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_javascript_gjslint_GetLocList() dict
-    call syntastic#log#deprecationWarn('javascript_gjslint_conf', 'javascript_gjslint_args')
-
-    let makeprg = self.makeprgBuild({
-        \ 'args_after': '--nosummary --unix_mode --nodebug_indentation --nobeep' })
-
-    let errorformat =
-        \ "%f:%l:(New Error -%\\?\%n) %m," .
-        \ "%f:%l:(-%\\?%n) %m," .
-        \ "%-G1 files checked," .
-        \ " no errors found.," .
-        \ "%-G%.%#"
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'javascript',
-    \ 'name': 'gjslint'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 44
vim/syntax_checkers/javascript/jscs.vim

@@ -1,44 +0,0 @@
-"============================================================================
-"File:        jscs.vim
-"Description: Javascript syntax checker - using jscs
-"Maintainer:  LCD 47 <lcd047@gmail.com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"============================================================================
-
-if exists('g:loaded_syntastic_javascript_jscs_checker')
-    finish
-endif
-let g:loaded_syntastic_javascript_jscs_checker = 1
-
-if !exists('g:syntastic_javascript_jscs_sort')
-    let g:syntastic_javascript_jscs_sort = 1
-endif
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_javascript_jscs_GetLocList() dict
-    let makeprg = self.makeprgBuild({ 'args_after': '--no-colors --reporter checkstyle' })
-
-    let errorformat = '%f:%t:%l:%c:%m'
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'subtype': 'Style',
-        \ 'preprocess': 'checkstyle',
-        \ 'returns': [0, 2] })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'javascript',
-    \ 'name': 'jscs'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 60
vim/syntax_checkers/javascript/jshint.vim

@@ -1,60 +0,0 @@
-"============================================================================
-"File:        jshint.vim
-"Description: Javascript syntax checker - using jshint
-"Maintainer:  Martin Grenfell <martin.grenfell at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"============================================================================
-
-if exists('g:loaded_syntastic_javascript_jshint_checker')
-    finish
-endif
-let g:loaded_syntastic_javascript_jshint_checker = 1
-
-if !exists('g:syntastic_javascript_jshint_sort')
-    let g:syntastic_javascript_jshint_sort = 1
-endif
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_javascript_jshint_IsAvailable() dict
-    call syntastic#log#deprecationWarn('jshint_exec', 'javascript_jshint_exec')
-    if !executable(self.getExec())
-        return 0
-    endif
-
-    let ver = self.getVersion()
-    let s:jshint_new = syntastic#util#versionIsAtLeast(ver, [1, 1])
-
-    return syntastic#util#versionIsAtLeast(ver, [1])
-endfunction
-
-function! SyntaxCheckers_javascript_jshint_GetLocList() dict
-    call syntastic#log#deprecationWarn('javascript_jshint_conf', 'javascript_jshint_args',
-        \ "'--config ' . syntastic#util#shexpand(OLD_VAR)")
-
-    let makeprg = self.makeprgBuild({ 'args_after': (s:jshint_new ? '--verbose ' : '') })
-
-    let errorformat = s:jshint_new ?
-        \ '%A%f: line %l\, col %v\, %m \(%t%*\d\)' :
-        \ '%E%f: line %l\, col %v\, %m'
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'defaults': {'bufnr': bufnr('')},
-        \ 'returns': [0, 2] })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'javascript',
-    \ 'name': 'jshint'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 48
vim/syntax_checkers/javascript/jsl.vim

@@ -1,48 +0,0 @@
-"============================================================================
-"File:        jsl.vim
-"Description: Javascript syntax checker - using jsl
-"Maintainer:  Martin Grenfell <martin.grenfell at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"============================================================================
-
-if exists('g:loaded_syntastic_javascript_jsl_checker')
-    finish
-endif
-let g:loaded_syntastic_javascript_jsl_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_javascript_jsl_GetLocList() dict
-    call syntastic#log#deprecationWarn('javascript_jsl_conf', 'javascript_jsl_args',
-        \ "'-conf ' . syntastic#util#shexpand(OLD_VAR)")
-
-    let makeprg = self.makeprgBuild({
-        \ 'args_after': '-nologo -nofilelisting -nosummary -nocontext -process' })
-
-    let errorformat =
-        \ '%W%f(%l): lint warning: %m,'.
-        \ '%-Z%p^,'.
-        \ '%W%f(%l): warning: %m,'.
-        \ '%-Z%p^,'.
-        \ '%E%f(%l): SyntaxError: %m,'.
-        \ '%-Z%p^,'.
-        \ '%-G'
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'javascript',
-    \ 'name': 'jsl'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

+ 0 - 51
vim/syntax_checkers/javascript/jslint.vim

@@ -1,51 +0,0 @@
-"============================================================================
-"File:        jslint.vim
-"Description: Javascript syntax checker - using jslint
-"Maintainer:  Martin Grenfell <martin.grenfell at gmail dot com>
-"License:     This program is free software. It comes without any warranty,
-"             to the extent permitted by applicable law. You can redistribute
-"             it and/or modify it under the terms of the Do What The Fuck You
-"             Want To Public License, Version 2, as published by Sam Hocevar.
-"             See http://sam.zoy.org/wtfpl/COPYING for more details.
-"
-"============================================================================
-
-if exists('g:loaded_syntastic_javascript_jslint_checker')
-    finish
-endif
-
-let g:loaded_syntastic_javascript_jslint_checker = 1
-
-let s:save_cpo = &cpo
-set cpo&vim
-
-function! SyntaxCheckers_javascript_jslint_GetHighlightRegex(item)
-    let term = matchstr(a:item['text'], '\mExpected .* and instead saw ''\zs.*\ze''')
-    if term !=# ''
-        let term = '\V\<' . escape(term, '\') . '\>'
-    endif
-    return term
-endfunction
-
-function! SyntaxCheckers_javascript_jslint_GetLocList() dict
-    let makeprg = self.makeprgBuild({ 'args': '--white --nomen --regexp --plusplus --bitwise --newcap --sloppy --vars' })
-
-    let errorformat =
-        \ '%E %##%\d%\+ %m,'.
-        \ '%-Z%.%#Line %l\, Pos %c,'.
-        \ '%-G%.%#'
-
-    return SyntasticMake({
-        \ 'makeprg': makeprg,
-        \ 'errorformat': errorformat,
-        \ 'defaults': {'bufnr': bufnr('')} })
-endfunction
-
-call g:SyntasticRegistry.CreateAndRegisterChecker({
-    \ 'filetype': 'javascript',
-    \ 'name': 'jslint'})
-
-let &cpo = s:save_cpo
-unlet s:save_cpo
-
-" vim: set sw=4 sts=4 et fdm=marker:

Unele fișiere nu au fost afișate deoarece prea multe fișiere au fost modificate în acest diff