From 9f102ffacadc0b412afcbdad5954e40fd2823905 Mon Sep 17 00:00:00 2001 From: David Young-chan Kay Date: Sat, 20 Oct 2018 15:59:03 -0700 Subject: [PATCH] Implemented basic Zig syntax checker. Depends on using a Zig buildfile. --- plugin/syntastic/registry.vim | 1 + syntax_checkers/zig/zig.vim | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 syntax_checkers/zig/zig.vim diff --git a/plugin/syntastic/registry.vim b/plugin/syntastic/registry.vim index 2796233a8..cc07977f9 100644 --- a/plugin/syntastic/registry.vim +++ b/plugin/syntastic/registry.vim @@ -114,6 +114,7 @@ let s:_DEFAULT_CHECKERS = { \ 'yang': ['pyang'], \ 'yara': ['yarac'], \ 'z80': ['z80syntaxchecker'], + \ 'zig': ['zig'], \ 'zpt': ['zptlint'], \ 'zsh': ['zsh'], \ } diff --git a/syntax_checkers/zig/zig.vim b/syntax_checkers/zig/zig.vim new file mode 100644 index 000000000..174dcf19b --- /dev/null +++ b/syntax_checkers/zig/zig.vim @@ -0,0 +1,32 @@ +if exists('g:loaded_syntastic_zig_zig_checker') + finish +endif +let g:loaded_syntastic_zig_zig_checker = 1 + +let s:save_cpo = &cpo +set cpo&vim + +function! SyntaxCheckers_zig_zig_IsAvailable() dict + return executable(self.getExec()) +endfunction + +function! SyntaxCheckers_zig_zig_GetLocList() dict + let makeprg = self.makeprgBuild({ + \ 'exe_after': 'build', + \ 'fname': '' }) + let errorformat = '%f:%l:%c: %m' + let loclist = SyntasticMake({ + \ 'makeprg': makeprg, + \ 'errorformat': errorformat, + \ 'env': {} }) + return loclist +endfunction + +call g:SyntasticRegistry.CreateAndRegisterChecker({ + \ 'filetype': 'zig', + \ 'name': 'zig' }) + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: set sw=4 sts=4 et fdm=marker: