misc: adds customizable options to syntastic Nit syntax checker
authorAlexis Laferrière <alexis.laf@xymus.net>
Tue, 29 May 2012 18:07:09 +0000 (14:07 -0400)
committerAlexis Laferrière <alexis.laf@xymus.net>
Tue, 29 May 2012 18:07:09 +0000 (14:07 -0400)
g:syntastic_nitc specifies custom path to compiler
g:syntastic_nit_dir specifies the NIT_DIR env variable
g:syntastic_nit_args specifies extra arguments to call nitc
g:syntastic_nit_include_dirs lists directories to include, must be a list

Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>

misc/syntastic/nit.vim

index b213b1a..7da1985 100644 (file)
@@ -7,6 +7,11 @@
 "             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.
+"
+"      g:syntastic_nitc specifies custom path to compiler
+"      g:syntastic_nit_dir specifies the NIT_DIR env variable
+"      g:syntastic_nit_args specifies extra arguments to call nitc
+"      g:syntastic_nit_include_dirs lists directories to include, must be a list
 "============================================================================
 if exists("loaded_nit_syntax_checker")
        finish
@@ -14,12 +19,40 @@ endif
 let loaded_nit_syntax_checker = 1
 
 " check if nitc is accessible
-if !executable("nitc")
+if exists('g:syntastic_nitc')
+       let s:nitc = g:syntastic_nitc
+else
+       let s:nitc = "nitc"
+endif
+
+if !executable(s:nitc)
+       if exists('g:syntastic_nitc')
+               echo "Syntastic for Nit error: Custom nitc cannot be found at: " . g:syntastic_nitc
+       endif
        finish
 endif
 
 function! SyntaxCheckers_nit_GetLocList()
-       let makeprg = "nitc --no-color --only-metamodel 2>&1 " . shellescape(expand("%"))
+       let makeprg = s:nitc . " --no-color --only-metamodel 2>&1 " . shellescape(expand("%"))
+
+       " custom NIT_DIR
+       if exists('g:syntastic_nit_dir')
+               let makeprg = "NIT_DIR=" . g:syntastic_nit_dir . " " . makeprg
+               echo makeprg
+       endif
+
+       " custom options for nit compiler
+       if exists('g:syntastic_nit_options')
+               let makeprg .= " " . g:syntastic_nit_options
+       endif
+
+       " custom dirs to include for compiler
+       if exists('g:syntastic_nit_include_dirs')
+               for d in g:syntastic_nit_include_dirs
+                       let makeprg .= " -I " . d
+               endfor
+       end
+
        " possible combinations of error messages
        let ef_start = [ '%f:%l\,%c--%*[0-9]:', '%f:%l\,%c--%*[0-9]\,%*[0-9]:', '%f:%l\,%c:' ]
        let ef_type = [ ' %tarning: ', ' %trror: ', ' Syntax %trror: ' ]