diff --git a/README.markdown b/README.markdown index 408a13ae..07106032 100644 --- a/README.markdown +++ b/README.markdown @@ -61,11 +61,11 @@ 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, YANG data models, z80, Zope -page templates, and zsh. See the [wiki][3] for details about the corresponding -supported checkers. +R, Racket, RDF TriG, RDF Turtle, 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, +YANG data models, 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], diff --git a/plugin/syntastic.vim b/plugin/syntastic.vim index 2bf4c5a2..8b9ecd6f 100644 --- a/plugin/syntastic.vim +++ b/plugin/syntastic.vim @@ -19,7 +19,7 @@ if has('reltime') lockvar! g:_SYNTASTIC_START endif -let g:_SYNTASTIC_VERSION = '3.7.0-130' +let g:_SYNTASTIC_VERSION = '3.7.0-132' lockvar g:_SYNTASTIC_VERSION " Sanity checks {{{1 diff --git a/plugin/syntastic/registry.vim b/plugin/syntastic/registry.vim index 74fade22..167c78bb 100644 --- a/plugin/syntastic/registry.vim +++ b/plugin/syntastic/registry.vim @@ -90,6 +90,8 @@ let s:_DEFAULT_CHECKERS = { \ 'tex': ['lacheck', 'chktex'], \ 'texinfo': ['makeinfo'], \ 'text': [], + \ 'trig': ['rapper'], + \ 'turtle': ['rapper'], \ 'twig': ['twiglint'], \ 'typescript': ['tsc'], \ 'vala': ['valac'], diff --git a/syntax_checkers/trig/rapper.vim b/syntax_checkers/trig/rapper.vim index e649fbea..f459cdab 100644 --- a/syntax_checkers/trig/rapper.vim +++ b/syntax_checkers/trig/rapper.vim @@ -1,28 +1,23 @@ "============================================================================ "File: rapper.vim -"Description: Syntax checking plugin for syntastic.vim +"Description: Syntax checking plugin for syntastic "Maintainer: Sebastian Tramp "License: This program is free software. It comes without any warranty, " to the extent permitted by applicable law. You can redistribute " it and/or modify it under the terms of the Do What The Fuck You " Want To Public License, Version 2, as published by Sam Hocevar. " See http://sam.zoy.org/wtfpl/COPYING for more details. +" "============================================================================ -" file is build based on the given guide as well as existing checker plugins -" https://github.com/scrooloose/syntastic/wiki/Syntax-Checker-Guide - -if exists('g:loaded_syntastic_trig_rapper_checker') " {{{1 +if exists('g:loaded_syntastic_trig_rapper_checker') finish -else - let g:loaded_syntastic_trig_rapper_checker = 1 -endif " }}}1 +endif +let g:loaded_syntastic_trig_rapper_checker = 1 -" redirect trig syntax check to turtle syntax check {{{1 call g:SyntasticRegistry.CreateAndRegisterChecker({ \ 'filetype': 'trig', \ 'name': 'rapper', \ 'redirect': 'turtle/rapper'}) -" }}}1 " vim: set sw=4 sts=4 et fdm=marker: diff --git a/syntax_checkers/turtle/rapper.vim b/syntax_checkers/turtle/rapper.vim index fbae09e4..4585a07e 100644 --- a/syntax_checkers/turtle/rapper.vim +++ b/syntax_checkers/turtle/rapper.vim @@ -1,75 +1,46 @@ "============================================================================ "File: rapper.vim -"Description: Syntax checking plugin for syntastic.vim +"Description: Syntax checking plugin for syntastic "Maintainer: Sebastian Tramp "License: This program is free software. It comes without any warranty, " to the extent permitted by applicable law. You can redistribute " it and/or modify it under the terms of the Do What The Fuck You " Want To Public License, Version 2, as published by Sam Hocevar. " See http://sam.zoy.org/wtfpl/COPYING for more details. -"============================================================================ " -" file is build based on the given guide as well as existing checker plugins -" https://github.com/scrooloose/syntastic/wiki/Syntax-Checker-Guide +"============================================================================ -if exists('g:loaded_syntastic_turtle_rapper_checker') " {{{1 +if exists('g:loaded_syntastic_turtle_rapper_checker') finish -else - let g:loaded_syntastic_turtle_rapper_checker = 1 -endif " }}}1" +endif +let g:loaded_syntastic_turtle_rapper_checker = 1 -" reset options to the Vim defaults {{{1 -" http://vi.stackexchange.com/questions/2116 let s:save_cpo = &cpo set cpo&vim -" }}}1 -" verify that the checker is installed and any other environment deps are met -function! SyntaxCheckers_turtle_rapper_IsAvailable() dict " {{{1 - return executable(self.getExec()) -endfunction " }}}1 - -" perform the syntax check and return the results in the form of a quickfix list -function! SyntaxCheckers_turtle_rapper_GetLocList() dict " {{{1 - - " Create the program call via makeprg - " example call: rapper -i guess -q --count file.ttl - " this uses "-i guess" in order to allow to redirect other rdf formats - let makeprg = self.makeprgBuild({ - \ 'args': '-i guess -q --count ', - \ 'args_after': '' }) - - " Create error format matching lines - " Example output: - " rapper: Error - URI file:///.../file.ttl:39 - syntax error, unexpected a - let errorformat = 'rapper: Error - URI file://%f:%l - %m' - - " sets up the environment according to the options given, runs the checker, - " resets the environment, and returns the location list - return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat}) -endfunction " }}}1 - -" return a regular expression pattern matching the current error in order to -" highlight parts of the line -function! SyntaxCheckers_turtle_rapper_GetHighlightRegex(item) " {{{1 +function! SyntaxCheckers_turtle_rapper_GetHighlightRegex(item) let term = matchstr(a:item['text'], '\mFailed to convert qname \zs\S\+\ze to URI') - if term !=# '' - let term = '\V' . escape(term, '\') - endif - return term -endfunction " }}}1 + return term !=# '' ? '\V\<' . escape(term, '\') . '\>' : '' +endfunction + +function! SyntaxCheckers_turtle_rapper_GetLocList() dict + let makeprg = self.makeprgBuild({ 'args': '-i guess -q --count' }) + + let errorformat = + \ 'rapper: %trror - URI file://%f:%l - %m,' . + \ 'rapper: %tarning - URI file://%f:%l - %m' + + return SyntasticMake({ + \ 'makeprg': makeprg, + \ 'errorformat': errorformat, + \ 'returns': [0, 1] }) +endfunction -" tell syntastic that this plugin exists {{{1 call g:SyntasticRegistry.CreateAndRegisterChecker({ - \ 'filetype': 'turtle', - \ 'name': 'rapper', - \ 'exec': 'rapper' }) -" }}}1 + \ 'filetype': 'turtle', + \ 'name': 'rapper'}) -" reload saved options {{{1 -" http://vi.stackexchange.com/questions/2116 let &cpo = s:save_cpo unlet s:save_cpo -" }}}1 " vim: set sw=4 sts=4 et fdm=marker: