Merge remote-tracking branch 'millermedeiros/jsonlint'

Conflicts:
	doc/syntastic.txt
This commit is contained in:
Martin Grenfell 2011-12-18 13:43:50 +00:00
commit 26b5bb871c
4 changed files with 77 additions and 0 deletions

View File

@ -344,6 +344,8 @@ Next
- auto close location list when leaving buffer. (millermedeiros)
- updates/fixes to existing checkers:
- javascript (millermedeiros)
- Support for new filetypes:
- JSON (millermedeiros, tocer)
2.1.0
- when the cursor is on a line containing an error, echo the
@ -440,6 +442,7 @@ Next
Thanks to the following people for testing, bug reports, patches etc. They own,
hard.
tocer
James Rowe (JNRowe)
Zhai Cai
Matt Butcher (technosophos)

41
syntax_checkers/json.vim Normal file
View File

@ -0,0 +1,41 @@
"============================================================================
"File: json.vim
"Description: Figures out which json syntax checker (if any) to load
" from the json directory.
"Maintainer: Miller Medeiros <contact at millermedeiros 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.
"
" Use g:syntastic_json_checker option to specify which jsonlint executable
" should be used (see below for a list of supported checkers).
" If g:syntastic_json_checker is not set, just use the first syntax
" checker that we find installed.
"============================================================================
if exists("loaded_json_syntax_checker")
finish
endif
let loaded_json_syntax_checker = 1
let s:supported_checkers = ["jsonlint", "jsonval"]
function! s:load_checker(checker)
exec "runtime syntax_checkers/json/" . a:checker . ".vim"
endfunction
if exists("g:syntastic_json_checker")
if index(s:supported_checkers, g:syntastic_json_checker) != -1 && executable(g:syntastic_json_checker)
call s:load_checker(g:syntastic_json_checker)
else
echoerr "JSON syntax not supported or not installed."
endif
else
for checker in s:supported_checkers
if executable(checker)
call s:load_checker(checker)
break
endif
endfor
endif

View File

@ -0,0 +1,16 @@
"============================================================================
"File: jsonlint.vim
"Description: JSON syntax checker - using jsonlint
"Maintainer: Miller Medeiros <contact at millermedeiros 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.
"============================================================================
function! SyntaxCheckers_json_GetLocList()
let makeprg = 'jsonlint ' . shellescape(expand("%")) . ' --compact'
let errorformat = '%ELine %l:%c,%Z\\s%#Reason: %m,%C%.%#,%f: line %l\, col %c\, %m,%-G%.%#'
return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat, 'defaults': {'bufnr': bufnr('')} })
endfunction

View File

@ -0,0 +1,17 @@
"============================================================================
"File: jsonval.vim
"Description: JSON syntax checker - using jsonval
"Maintainer: Miller Medeiros <contact at millermedeiros 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.
"============================================================================
function! SyntaxCheckers_json_GetLocList()
" based on https://gist.github.com/1196345
let makeprg = 'jsonval '. shellescape(expand('%'))
let errorformat = '%E%f:\ %m\ at\ line\ %l,%-G%.%#'
return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat, 'defaults': {'bufnr': bufnr('')} })
endfunction