diff --git a/syntax_checkers/jsonnet/jsonnet.vim b/syntax_checkers/jsonnet/jsonnet.vim new file mode 100644 index 0000000..aceb5b9 --- /dev/null +++ b/syntax_checkers/jsonnet/jsonnet.vim @@ -0,0 +1,45 @@ +" Vim syntastic plugin +" Language: jsonnet +" Author: Benjamin Staffin +" +" For details on how to add an external Syntastic checker: +" https://github.com/scrooloose/syntastic/wiki/Syntax-Checker-Guide#external + +if exists("g:loaded_syntastic_jsonnet_jsonnet_checker") + finish +endif +let g:loaded_syntastic_jsonnet_jsonnet_checker = 1 + +let s:save_cpo = &cpo +set cpo&vim + +function! SyntaxCheckers_jsonnet_jsonnet_IsAvailable() dict + return executable(self.getExec()) +endfunction + +function! SyntaxCheckers_jsonnet_jsonnet_GetLocList() dict + + let errorformat = + \ 'STATIC ERROR:\ %f:%l:%c:%m,' . + \ 'STATIC ERROR:\ %f:%l:%c-%\d%#:%m,' . + \ '%ERUNTIME ERROR:\ %m,' . + \ '%C\ %#%f:(%\?%l:%c)%\?%.%#' + + return SyntasticMake({ + \ 'makeprg': self.makeprgBuild({}), + \ 'errorformat': errorformat }) +endfunction + +call g:SyntasticRegistry.CreateAndRegisterChecker({ + \ 'filetype': 'jsonnet', + \ 'name': 'jsonnet'}) + +" Register for syntastic tab completion: +if exists('g:syntastic_extra_filetypes') + call add(g:syntastic_extra_filetypes, 'jsonnet') +else + let g:syntastic_extra_filetypes = ['jsonnet'] +endif + +let &cpo = s:save_cpo +unlet s:save_cpo