New checker for lex: flex.

This commit is contained in:
LCD 47 2013-12-02 13:11:32 +02:00
parent aa63e1d79e
commit 9856b73b3a
3 changed files with 55 additions and 6 deletions

View File

@ -28,12 +28,12 @@ execute their script to find them.
At the time of this writing, syntax checking plugins exist for Ada, At the time of this writing, syntax checking plugins exist for Ada,
AppleScript, AsciiDoc, Bourne shell, C, C++, C#, Chef, CoffeeScript, Coco, AppleScript, AsciiDoc, Bourne shell, C, C++, C#, Chef, CoffeeScript, Coco,
Coq, CSS, Cucumber, CUDA, D, Dart, DocBook, Dust, Elixir, Erlang, eRuby, Coq, CSS, Cucumber, CUDA, D, Dart, DocBook, Dust, Elixir, Erlang, eRuby,
Fortran, Gentoo metadata, Go, Haml, Haskell, Haxe, Handlebars, HSS, HTML, Java, Fortran, Gentoo metadata, Go, Haml, Haskell, Haxe, Handlebars, HSS, HTML,
JavaScript, JSON, LESS, Limbo, LISP, LLVM intermediate language, Lua, MATLAB, Java, JavaScript, JSON, LESS, Lex, Limbo, LISP, LLVM intermediate language,
NASM, Objective-C, Objective-C++, OCaml, Perl, Perl POD, PHP, gettext Portable Lua, MATLAB, NASM, Objective-C, Objective-C++, OCaml, Perl, Perl POD, PHP,
Object, Puppet, Python, Racket, reStructuredText, Ruby, Rust, SASS/SCSS, Scala, gettext Portable Object, Puppet, Python, Racket, reStructuredText, Ruby, Rust,
Slim, Tcl, TeX, Twig, TypeScript, Vala, Verilog, VHDL, xHtml, XML, XSLT, YAML, SASS/SCSS, Scala, Slim, Tcl, TeX, Twig, TypeScript, Vala, Verilog, VHDL, xHtml,
z80, Zope page templates, zsh. XML, XSLT, YAML, z80, Zope page templates, zsh.
## Screenshot ## Screenshot

View File

@ -37,6 +37,7 @@ let s:defaultCheckers = {
\ 'javascript': ['jshint', 'jslint'], \ 'javascript': ['jshint', 'jslint'],
\ 'json': ['jsonlint', 'jsonval'], \ 'json': ['jsonlint', 'jsonval'],
\ 'less': ['lessc'], \ 'less': ['lessc'],
\ 'lex': ['flex'],
\ 'limbo': ['limbo'], \ 'limbo': ['limbo'],
\ 'lisp': ['clisp'], \ 'lisp': ['clisp'],
\ 'llvm': ['llvm'], \ 'llvm': ['llvm'],

View File

@ -0,0 +1,48 @@
"============================================================================
"File: lex.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_lex_flex_checker")
finish
endif
let g:loaded_syntastic_lex_flex_checker = 1
let s:save_cpo = &cpo
set cpo&vim
function! SyntaxCheckers_lex_flex_GetHighlightRegex(item)
let term = matchstr(a:item['text'],
\ '\m^\(unrecognized %option\|bad <start condition>\|bad character\( class expression\)\=\): \zs.*')
if term == ''
let term = matchstr(a:item['text'],
\ '\m^\(Definition value for\|undefined definition\) {\zs[^}]\+\ze}')
endif
return term != '' ? '\V' . term : ''
endfunction
function! SyntaxCheckers_lex_flex_GetLocList() dict
let makeprg = self.makeprgBuild({
\ 'exe': self.getExec() . ' ' . syntastic#c#NullOutput() })
let errorformat = '%f:%l: %m'
return SyntasticMake({
\ 'makeprg': makeprg,
\ 'errorformat': errorformat })
endfunction
call g:SyntasticRegistry.CreateAndRegisterChecker({
\ 'filetype': 'lex',
\ 'name': 'flex'})
let &cpo = s:save_cpo
unlet s:save_cpo