1
0
mirror of https://github.com/amix/vimrc synced 2025-06-23 23:15:01 +08:00

Updated plugins

This commit is contained in:
amix
2016-02-20 13:13:10 +00:00
parent 795a8fb80d
commit e81e42ec4d
214 changed files with 5916 additions and 1107 deletions

View File

@ -54,17 +54,17 @@ compile their code or execute their script to find them.
At the time of this writing, syntastic has checking plugins for ActionScript,
Ada, Ansible configurations, API Blueprint, AppleScript, AsciiDoc, ASM,
BEMHTML, Bro, Bourne shell, C, C++, C#, Cabal, Chef, CoffeeScript, Coco, Coq,
CSS, Cucumber, CUDA, D, Dart, DocBook, Dockerfile, Dust, Elixir, Erlang,
eRuby, Fortran, Gentoo metadata, GLSL, Go, Haml, Haskell, Haxe, Handlebars,
HSS, HTML, Jade, Java, JavaScript, JSON, JSX, LESS, Lex, Limbo, LISP, LLVM
intermediate language, Lua, Markdown, MATLAB, Mercury, NASM, Nix, Objective-C,
Objective-C++, OCaml, Perl, Perl POD, PHP, gettext Portable Object, OS X and
iOS property lists, Puppet, Python, QML, R, Racket, Relax NG, reStructuredText,
RPM spec, Ruby, SASS/SCSS, Scala, Slim, SML, Sphinx, SQL, Stylus, Tcl, TeX,
Texinfo, Twig, TypeScript, Vala, Verilog, VHDL, VimL, xHtml, XML, XSLT, XQuery,
YACC, YAML, z80, Zope page templates, and zsh. See the [wiki][3] for details
about the corresponding supported checkers.
BEMHTML, Bro, Bourne shell, C, C++, C#, Cabal, Chef, CoffeeScript, Coco,
Coq, CSS, Cucumber, CUDA, D, Dart, DocBook, Dockerfile, Dust, Elixir,
Erlang, eRuby, Fortran, Gentoo metadata, GLSL, Go, Haml, Haskell, Haxe,
Handlebars, HSS, HTML, Java, JavaScript, JSON, JSX, LESS, Lex, Limbo, LISP,
LLVM intermediate language, Lua, Markdown, MATLAB, Mercury, NASM, Nix,
Objective-C, Objective-C++, OCaml, Perl, Perl POD, PHP, gettext Portable
Object, OS X and iOS property lists, Pug (formerly Jade), Puppet, Python, QML,
R, Racket, Relax NG, reStructuredText, RPM spec, Ruby, SASS/SCSS, Scala, Slim,
SML, Sphinx, SQL, Stylus, Tcl, TeX, Texinfo, Twig, TypeScript, Vala, Verilog,
VHDL, VimL, xHtml, XML, XSLT, XQuery, YACC, YAML, z80, Zope page templates, and
zsh. See the [wiki][3] for details about the corresponding supported checkers.
A number of third-party Vim plugins also provide checkers for syntastic,
for example: [merlin][30], [omnisharp-vim][25], [rust.vim][12],

View File

@ -173,10 +173,17 @@ endfunction " }}}2
" Utilities {{{1
function! s:_log_timestamp() abort " {{{2
function! s:_log_timestamp_smart() abort " {{{2
return printf('syntastic: %f: ', reltimefloat(reltime(g:_SYNTASTIC_START)))
endfunction " }}}2
function! s:_log_timestamp_dumb() abort " {{{2
return 'syntastic: ' . split(reltimestr(reltime(g:_SYNTASTIC_START)))[0] . ': '
endfunction " }}}2
let s:_log_timestamp = function(has('float') && exists('*reltimefloat') ? 's:_log_timestamp_smart' : 's:_log_timestamp_dumb')
lockvar s:_log_timestamp
function! s:_format_variable(name) abort " {{{2
let vals = []
if exists('g:syntastic_' . a:name)

View File

@ -284,6 +284,42 @@ function! syntastic#preprocess#rparse(errors) abort " {{{2
return out
endfunction " }}}2
function! syntastic#preprocess#scss_lint(errors) abort " {{{2
let errs = join(a:errors, '')
if errs ==# ''
return []
endif
let json = s:_decode_JSON(errs)
let out = []
if type(json) == type({})
for fname in keys(json)
if type(json[fname]) == type([])
for e in json[fname]
try
cal add(out, fname . ':' .
\ e['severity'][0] . ':' .
\ e['line'] . ':' .
\ e['column'] . ':' .
\ e['length'] . ':' .
\ ( has_key(e, 'linter') ? e['linter'] . ': ' : '' ) .
\ e['reason'])
catch /\m^Vim\%((\a\+)\)\=:E716/
call syntastic#log#warn('checker scss/scss_lint: unrecognized error item ' . string(e))
let out = []
endtry
endfor
else
call syntastic#log#warn('checker scss/scss_lint: unrecognized error format')
endif
endfor
else
call syntastic#log#warn('checker scss/scss_lint: unrecognized error format')
endif
return out
endfunction " }}}2
function! syntastic#preprocess#stylelint(errors) abort " {{{2
let out = []

View File

@ -51,7 +51,7 @@ endfunction " }}}2
function! syntastic#util#tmpdir() abort " {{{2
let tempdir = ''
if (has('unix') || has('mac')) && executable('mktemp')
if (has('unix') || has('mac')) && executable('mktemp') && !has('win32unix')
" 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")
@ -90,18 +90,7 @@ function! syntastic#util#rmrf(what) abort " {{{2
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
call s:_delete(a:what, 'rf')
else
silent! call delete(a:what)
endif
@ -274,8 +263,9 @@ 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
let k = string(e)
if !has_key(seen, k)
let seen[k] = 1
call add(uniques, e)
endif
endfor
@ -478,6 +468,27 @@ function! s:_translateElement(key, term) abort " {{{2
return ret
endfunction " }}}2
" @vimlint(EVL103, 1, a:flags)
function! s:_delete_dumb(what, flags) abort " {{{2
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
endfunction " }}}2
" @vimlint(EVL103, 0, a:flags)
" delete(dir, 'rf') was added in Vim 7.4.1107, but it didn't become usable until 7.4.1128
let s:_delete = function(v:version > 704 || (v:version == 704 && has('patch1128')) ? 'delete' : 's:_delete_dumb')
lockvar s:_delete
function! s:_rmrf(what) abort " {{{2
if !exists('s:rmdir')
let s:rmdir = syntastic#util#shescape(get(g:, 'netrw_localrmdir', 'rmdir'))

View File

@ -36,6 +36,7 @@ CONTENTS *syntastic-contents*
5.2.Choosing the executable................|syntastic-config-exec|
5.3.Configuring specific checkers..........|syntastic-config-makeprg|
5.4.Sorting errors.........................|syntastic-config-sort|
5.5.Debugging..............................|syntastic-config-debug|
6.Notes........................................|syntastic-notes|
6.1.Handling of composite filetypes........|syntastic-composite|
6.2.Editing files over network.............|syntastic-netrw|
@ -158,6 +159,11 @@ Something like this could be more useful: >
When syntax errors are detected a flag will be shown. The content of the flag
is derived from the |syntastic_stl_format| option.
Please note that these settings might conflict with other Vim plugins that
change the way statusline works. Refer to these plugins' documentation for
possible solutions. See also |syntastic-powerline| below if you're using the
"powerline" Vim plugin (https://github.com/powerline/powerline).
------------------------------------------------------------------------------
2.2. Error signs *syntastic-error-signs*
@ -541,10 +547,10 @@ 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|.
"regex" - each item in list is matched against the messages' text as a
case-insensitive |regular-expression|
"file" - each item in list 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).
@ -814,6 +820,25 @@ defined.
For aggregated lists (see |syntastic-aggregating-errors|) these variables are
ignored if |'syntastic_sort_aggregated_errors'| is set (which is the default).
------------------------------------------------------------------------------
5.5 Debugging *syntastic-config-debug*
Syntastic can log a trace of its working to Vim's |message-history|. To verify
the command line constructed by syntastic to run a checker, set the variable
|'syntastic_debug'| to a non-zero value, run the checker, then run |:mes| to
display the messages, and look for "makeprg" in the output.
From a user's perspective, the useful values for |'syntastic_debug'| are 1, 3,
and 33:
1 - logs syntastic's workflow
3 - logs workflow, checker's output, and |location-list| manipulations
33 - logs workflow and checker-specific details (such as version checks).
Debug logs can be saved to a file; see |'syntastic_debug_file'| for details.
Setting |'syntastic_debug'| to 0 turns off logging.
==============================================================================
6. Notes *syntastic-notes*

View File

@ -19,7 +19,7 @@ if has('reltime')
lockvar! g:_SYNTASTIC_START
endif
let g:_SYNTASTIC_VERSION = '3.7.0-69'
let g:_SYNTASTIC_VERSION = '3.7.0-88'
lockvar g:_SYNTASTIC_VERSION
" Sanity checks {{{1

View File

@ -40,7 +40,7 @@ let s:_DEFAULT_CHECKERS = {
\ 'go': ['go'],
\ 'haml': ['haml'],
\ 'handlebars': ['handlebars'],
\ 'haskell': ['ghc_mod', 'hdevtools', 'hlint'],
\ 'haskell': ['hdevtools', 'hlint'],
\ 'haxe': ['haxe'],
\ 'hss': ['hss'],
\ 'html': ['tidy'],
@ -68,6 +68,7 @@ let s:_DEFAULT_CHECKERS = {
\ 'po': ['msgfmt'],
\ 'pod': ['podchecker'],
\ 'puppet': ['puppet', 'puppetlint'],
\ 'pug': ['pug_lint'],
\ 'python': ['python', 'flake8', 'pylint'],
\ 'qml': ['qmllint'],
\ 'r': [],

View File

@ -22,14 +22,14 @@ 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'
\ '%E%\w%\+: %tRROR: %f: line %l: %m,' .
\ '%E%\w%\+: %tRROR: %f: %m,' .
\ '%E%\w%\+: FAILED: %f: line %l: %m,' .
\ '%E%\w%\+: FAILED: %f: %m,' .
\ '%W%\w%\+: %tARNING: %f: line %l: %m,' .
\ '%W%\w%\+: %tARNING: %f: %m,' .
\ '%W%\w%\+: DEPRECATED: %f: line %l: %m,' .
\ '%W%\w%\+: DEPRECATED: %f: %m'
return SyntasticMake({
\ 'makeprg': makeprg,

View File

@ -10,7 +10,7 @@
"============================================================================
if exists('g:loaded_syntastic_c_clang_check_checker')
finish
finish
endif
let g:loaded_syntastic_c_clang_check_checker = 1

View File

@ -10,7 +10,7 @@
"============================================================================
if exists('g:loaded_syntastic_c_clang_tidy_checker')
finish
finish
endif
let g:loaded_syntastic_c_clang_tidy_checker = 1

View File

@ -30,8 +30,8 @@ function! SyntaxCheckers_chef_foodcritic_GetLocList() dict
endfunction
call g:SyntasticRegistry.CreateAndRegisterChecker({
\ 'filetype': 'chef',
\ 'name': 'foodcritic'})
\ 'filetype': 'chef',
\ 'name': 'foodcritic'})
let &cpo = s:save_cpo
unlet s:save_cpo

View File

@ -10,7 +10,7 @@
"============================================================================
if exists('g:loaded_syntastic_cpp_clang_check_checker')
finish
finish
endif
let g:loaded_syntastic_cpp_clang_check_checker = 1

View File

@ -10,7 +10,7 @@
"============================================================================
if exists('g:loaded_syntastic_cpp_clang_tidy_checker')
finish
finish
endif
let g:loaded_syntastic_cpp_clang_tidy_checker = 1

View File

@ -19,8 +19,12 @@ let g:loaded_syntastic_css_stylelint_checker = 1
let s:save_cpo = &cpo
set cpo&vim
let s:args_after = {
\ 'css': '-f json',
\ 'scss': '-f json -s scss' }
function! SyntaxCheckers_css_stylelint_GetLocList() dict
let makeprg = self.makeprgBuild({ 'args_after': '-f json' })
let makeprg = self.makeprgBuild({ 'args_after': get(s:args_after, self.getFiletype(), '') })
let errorformat = '%t:%f:%l:%c:%m'

View File

@ -1,7 +1,7 @@
"============================================================================
"File: jade_lint.vim
"Description: Syntax checking plugin for syntastic.vim
"Maintainer: Ben Parnell <benjaminparnell.94@gmail.com>
"Description: Syntax checking plugin for syntastic
"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
@ -15,26 +15,10 @@ if exists('g:loaded_syntastic_jade_jade_lint_checker')
endif
let g:loaded_syntastic_jade_jade_lint_checker = 1
let s:save_cpo = &cpo
set cpo&vim
function! SyntaxCheckers_jade_jade_lint_GetLocList() dict
let makeprg = self.makeprgBuild({ 'args_after': '-r inline' })
let errorformat = '%f:%l:%c %m'
return SyntasticMake({
\ 'makeprg': makeprg,
\ 'errorformat': errorformat,
\ 'returns': [0, 2] })
endfunction
call g:SyntasticRegistry.CreateAndRegisterChecker({
\ 'filetype': 'jade',
\ 'name': 'jade_lint',
\ 'exec': 'jade-lint' })
let &cpo = s:save_cpo
unlet s:save_cpo
\ 'exec': 'jade-lint',
\ 'redirect': 'pug/pug_lint'})
" vim: set sw=4 sts=4 et fdm=marker:

View File

@ -34,7 +34,7 @@ function! SyntaxCheckers_javascript_flow_GetLocList() dict
endif
let makeprg = self.makeprgBuild({
\ 'exe': self.getExecEscaped() . ' status',
\ 'exe': self.getExecEscaped() . ' check',
\ 'args_after': '--show-all-errors --json' })
let errorformat =

View File

@ -29,7 +29,8 @@ function! SyntaxCheckers_javascript_jscs_IsAvailable() dict
endfunction
function! SyntaxCheckers_javascript_jscs_GetLocList() dict
let makeprg = self.makeprgBuild({ 'args_after': '--no-colors --reporter json' })
let makeprg = self.makeprgBuild({
\ 'args_after': '--no-colors --max-errors -1 --reporter json' })
let errorformat = '%f:%l:%c:%m'

View File

@ -26,7 +26,7 @@ function! SyntaxCheckers_markdown_mdl_GetLocList() dict
let makeprg = self.makeprgBuild({ 'args': '--warnings' })
let errorformat =
\ '%E%f:%l: %m,'.
\ '%E%f:%\s%\=%l: %m,'.
\ '%W%f: Kramdown Warning: %m found on line %l'
return SyntasticMake({

View File

@ -0,0 +1,40 @@
"============================================================================
"File: pug_lint.vim
"Description: Syntax checking plugin for syntastic.vim
"Maintainer: Ben Parnell <benjaminparnell.94@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_pug_pug_lint_checker')
finish
endif
let g:loaded_syntastic_pug_pug_lint_checker = 1
let s:save_cpo = &cpo
set cpo&vim
function! SyntaxCheckers_pug_pug_lint_GetLocList() dict
let makeprg = self.makeprgBuild({ 'args_after': '-r inline' })
let errorformat = '%f:%l:%c %m'
return SyntasticMake({
\ 'makeprg': makeprg,
\ 'errorformat': errorformat,
\ 'returns': [0, 2] })
endfunction
call g:SyntasticRegistry.CreateAndRegisterChecker({
\ 'filetype': 'pug',
\ 'name': 'pug_lint',
\ 'exec': 'pug-lint' })
let &cpo = s:save_cpo
unlet s:save_cpo
" vim: set sw=4 sts=4 et fdm=marker:

View File

@ -29,10 +29,8 @@ function! SyntaxCheckers_rst_rst2pseudoxml_GetLocList() dict
\ 'tail': syntastic#util#DevNull() })
let errorformat =
\ '%f:%l: (%tNFO/1) %m,'.
\ '%f:%l: (%tARNING/2) %m,'.
\ '%f:%l: (%tRROR/3) %m,'.
\ '%f:%l: (%tEVERE/4) %m,'.
\ '%f:%l: (%t%\w%\+/%\d%\+) %m,'.
\ '%f:: (%t%\w%\+/%\d%\+) %m,'.
\ '%-G%.%#'
let loclist = SyntasticMake({
@ -40,11 +38,11 @@ function! SyntaxCheckers_rst_rst2pseudoxml_GetLocList() dict
\ 'errorformat': errorformat })
for e in loclist
if e['type'] ==? 'S'
let e['type'] = 'E'
elseif e['type'] ==? 'I'
if e['type'] ==? 'I'
let e['type'] = 'W'
let e['subtype'] = 'Style'
else
let e['type'] = 'E'
endif
endfor

View File

@ -21,21 +21,28 @@ function! SyntaxCheckers_scss_scss_lint_IsAvailable() dict
if !executable(self.getExec())
return 0
endif
return syntastic#util#versionIsAtLeast(self.getVersion(), [0, 12])
return syntastic#util#versionIsAtLeast(self.getVersion(), [0, 29])
endfunction
function! SyntaxCheckers_scss_scss_lint_GetLocList() dict
let makeprg = self.makeprgBuild({})
let makeprg = self.makeprgBuild({ 'args_after': '-f JSON' })
let errorformat = '%f:%l [%t] %m'
let errorformat = '%f:%t:%l:%c:%n:%m'
let loclist = SyntasticMake({
\ 'makeprg': makeprg,
\ 'errorformat': errorformat,
\ 'preprocess': 'scss_lint',
\ 'postprocess': ['guards'],
\ 'returns': [0, 1, 2, 65, 66] })
let cutoff = strlen('Syntax Error: ')
for e in loclist
if e['nr'] > 1
let e['hl'] = '\%>' . (e['col'] - 1) . 'c\%<' . (e['col'] + e['nr']) . 'c'
endif
let e['nr'] = 0
if e['text'][: cutoff-1] ==# 'Syntax Error: '
let e['text'] = e['text'][cutoff :]
else

View File

@ -0,0 +1,23 @@
"============================================================================
"File: stylelint.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_scss_stylelint_checker')
finish
endif
let g:loaded_syntastic_scss_stylelint_checker = 1
call g:SyntasticRegistry.CreateAndRegisterChecker({
\ 'filetype': 'scss',
\ 'name': 'stylelint',
\ 'redirect': 'css/stylelint'})
" vim: set sw=4 sts=4 et fdm=marker:

View File

@ -0,0 +1,52 @@
"============================================================================
"File: yamllint.vim
"Description: YAML files linting for syntastic.vim
"Maintainer: Adrien Vergé
"License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute
" it and/or modify it under the terms of the Do What The Fuck You
" Want To Public License, Version 2, as published by Sam Hocevar.
" See http://sam.zoy.org/wtfpl/COPYING for more details.
"
"============================================================================
if exists('g:loaded_syntastic_yaml_yamllint_checker')
finish
endif
let g:loaded_syntastic_yaml_yamllint_checker = 1
let s:save_cpo = &cpo
set cpo&vim
function! SyntaxCheckers_yaml_yamllint_GetLocList() dict
let makeprg = self.makeprgBuild({ 'args_after': '-f parsable' })
let errorformat =
\ '%f:%l:%c: [%trror] %m,' .
\ '%f:%l:%c: [%tarning] %m'
let env = syntastic#util#isRunningWindows() ? {} : { 'TERM': 'dumb' }
let loclist = SyntasticMake({
\ 'makeprg': makeprg,
\ 'errorformat': errorformat,
\ 'env': env,
\ 'returns': [0, 1] })
for e in loclist
if e['type'] ==? 'W'
let e['subtype'] = 'Style'
endif
endfor
return loclist
endfunction
call g:SyntasticRegistry.CreateAndRegisterChecker({
\ 'filetype': 'yaml',
\ 'name': 'yamllint' })
let &cpo = s:save_cpo
unlet s:save_cpo
" vim: set sw=4 sts=4 et fdm=marker: