From 243becc5dd83c25fcd2bd46a54f194757236f25d Mon Sep 17 00:00:00 2001 From: Motohiro Takayama Date: Fri, 4 May 2012 18:06:51 -0700 Subject: [PATCH] Javascript syntax check with Google Closure Compiler. --- syntax_checkers/javascript.vim | 2 +- syntax_checkers/javascript/gcc.vim | 37 ++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 syntax_checkers/javascript/gcc.vim diff --git a/syntax_checkers/javascript.vim b/syntax_checkers/javascript.vim index 3d5236c4..bcc8da67 100644 --- a/syntax_checkers/javascript.vim +++ b/syntax_checkers/javascript.vim @@ -19,5 +19,5 @@ if exists("loaded_javascript_syntax_checker") endif let loaded_javascript_syntax_checker = 1 -let s:supported_checkers = ["gjslint", "jslint", "jsl", "jshint"] +let s:supported_checkers = ["gjslint", "jslint", "jsl", "jshint", "gcc"] call SyntasticLoadChecker(s:supported_checkers, 'javascript') diff --git a/syntax_checkers/javascript/gcc.vim b/syntax_checkers/javascript/gcc.vim new file mode 100644 index 00000000..e5c28d16 --- /dev/null +++ b/syntax_checkers/javascript/gcc.vim @@ -0,0 +1,37 @@ +"============================================================================ +"File: gcc.vim +"Description: Javascript syntax checker - using Google Closure Compiler +"Maintainer: Motohiro Takayama +"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. +"============================================================================ +" +" To enable this plugin, edit the .vimc like this; +" +" let g:syntastic_javascript_checker = "gcc" +" +" and set the path to the Google Closure Compiler: +" +" let g:syntastic_javascript_closure_compiler_path = '/path/to/google-closure-compiler.jar' +" +" It takes additional options for Google Closure Compiler with the variable +" g:syntastic_javascript_closure_compiler_options. +" + +if !exists("g:syntastic_javascript_closure_compiler_options") + let g:syntastic_javascript_closure_compiler_options = "" +endif + +"bail if the user does not specify the path to closure compiler. +if !exists("g:syntastic_javascript_closure_compiler_path") + finish +endif + +function! SyntaxCheckers_javascript_GetLocList() + let makeprg = 'java -jar ' . g:syntastic_javascript_closure_compiler_path . ' ' . g:syntastic_javascript_closure_compiler_options . ' --js ' . shellescape(expand('%')) + let errorformat = '%-GOK,%E%f:%l: ERROR - %m,%Z%p^,%W%f:%l: WARNING - %m,%Z%p^' + return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) +endfunction