Skip to content
This repository has been archived by the owner on Sep 20, 2023. It is now read-only.

Commit

Permalink
Checker rapper: cleanup.
Browse files Browse the repository at this point in the history
  • Loading branch information
lcd047 committed May 5, 2016
1 parent 952e297 commit 71208eb
Show file tree
Hide file tree
Showing 5 changed files with 34 additions and 66 deletions.
10 changes: 5 additions & 5 deletions README.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -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],
Expand Down
2 changes: 1 addition & 1 deletion plugin/syntastic.vim
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 2 additions & 0 deletions plugin/syntastic/registry.vim
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,8 @@ let s:_DEFAULT_CHECKERS = {
\ 'tex': ['lacheck', 'chktex'],
\ 'texinfo': ['makeinfo'],
\ 'text': [],
\ 'trig': ['rapper'],
\ 'turtle': ['rapper'],
\ 'twig': ['twiglint'],
\ 'typescript': ['tsc'],
\ 'vala': ['valac'],
Expand Down
15 changes: 5 additions & 10 deletions syntax_checkers/trig/rapper.vim
Original file line number Diff line number Diff line change
@@ -1,28 +1,23 @@
"============================================================================
"File: rapper.vim
"Description: Syntax checking plugin for syntastic.vim
"Description: Syntax checking plugin for syntastic
"Maintainer: Sebastian Tramp <mail@sebastian.tramp.name>
"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:
71 changes: 21 additions & 50 deletions syntax_checkers/turtle/rapper.vim
Original file line number Diff line number Diff line change
@@ -1,75 +1,46 @@
"============================================================================
"File: rapper.vim
"Description: Syntax checking plugin for syntastic.vim
"Description: Syntax checking plugin for syntastic
"Maintainer: Sebastian Tramp <mail@sebastian.tramp.name>
"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': '' })
function! SyntaxCheckers_turtle_rapper_GetHighlightRegex(item)
let term = matchstr(a:item['text'], '\mFailed to convert qname \zs\S\+\ze to URI')
return term !=# '' ? '\V\<' . escape(term, '\') . '\>' : ''
endfunction

" 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'
function! SyntaxCheckers_turtle_rapper_GetLocList() dict
let makeprg = self.makeprgBuild({ 'args': '-i guess -q --count' })

" 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
let errorformat =
\ 'rapper: %trror - URI file://%f:%l - %m,' .
\ 'rapper: %tarning - URI file://%f:%l - %m'

" return a regular expression pattern matching the current error in order to
" highlight parts of the line
function! SyntaxCheckers_turtle_rapper_GetHighlightRegex(item) " {{{1
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 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:

0 comments on commit 71208eb

Please sign in to comment.