mirror of
https://github.com/sheerun/vim-polyglot.git
synced 2025-11-08 11:33:52 -05:00
Switch to elzr for json syntax, and disable conceal by default
This commit is contained in:
@@ -5,6 +5,10 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'json') == -1
|
||||
" Maintainer: Eli Parra <eli@elzr.com> https://github.com/elzr/vim-json
|
||||
" Last Change: 2014-12-20 Load ftplugin/json.vim
|
||||
|
||||
" Reload the definition of g:vim_json_syntax_conceal
|
||||
" see https://github.com/elzr/vim-json/issues/42
|
||||
runtime! ftplugin/json.vim
|
||||
|
||||
if !exists("main_syntax")
|
||||
if version < 600
|
||||
syntax clear
|
||||
@@ -16,10 +20,16 @@ endif
|
||||
|
||||
syntax match jsonNoise /\%(:\|,\)/
|
||||
|
||||
" NOTE that for the concealing to work your conceallevel should be set to 2
|
||||
|
||||
" Syntax: Strings
|
||||
" Separated into a match and region because a region by itself is always greedy
|
||||
syn match jsonStringMatch /"\([^"]\|\\\"\)\+"\ze[[:blank:]\r\n]*[,}\]]/ contains=jsonString
|
||||
syn region jsonString oneline matchgroup=jsonQuote start=/"/ skip=/\\\\\|\\"/ end=/"/ concealends contains=jsonEscape contained
|
||||
if has('conceal') && g:vim_json_syntax_conceal == 1
|
||||
syn region jsonString oneline matchgroup=jsonQuote start=/"/ skip=/\\\\\|\\"/ end=/"/ concealends contains=jsonEscape contained
|
||||
else
|
||||
syn region jsonString oneline matchgroup=jsonQuote start=/"/ skip=/\\\\\|\\"/ end=/"/ contains=jsonEscape contained
|
||||
endif
|
||||
|
||||
" Syntax: JSON does not allow strings with single quotes, unlike JavaScript.
|
||||
syn region jsonStringSQError oneline start=+'+ skip=+\\\\\|\\"+ end=+'+
|
||||
@@ -27,7 +37,11 @@ syn region jsonStringSQError oneline start=+'+ skip=+\\\\\|\\"+ end=+'+
|
||||
" Syntax: JSON Keywords
|
||||
" Separated into a match and region because a region by itself is always greedy
|
||||
syn match jsonKeywordMatch /"\([^"]\|\\\"\)\+"[[:blank:]\r\n]*\:/ contains=jsonKeyword
|
||||
syn region jsonKeyword matchgroup=jsonQuote start=/"/ end=/"\ze[[:blank:]\r\n]*\:/ contains=jsonEscape contained
|
||||
if has('conceal') && g:vim_json_syntax_conceal == 1
|
||||
syn region jsonKeyword matchgroup=jsonQuote start=/"/ end=/"\ze[[:blank:]\r\n]*\:/ concealends contains=jsonEscape contained
|
||||
else
|
||||
syn region jsonKeyword matchgroup=jsonQuote start=/"/ end=/"\ze[[:blank:]\r\n]*\:/ contains=jsonEscape contained
|
||||
endif
|
||||
|
||||
" Syntax: Escape sequences
|
||||
syn match jsonEscape "\\["\\/bfnrt]" contained
|
||||
@@ -37,31 +51,33 @@ syn match jsonEscape "\\u\x\{4}" contained
|
||||
syn match jsonNumber "-\=\<\%(0\|[1-9]\d*\)\%(\.\d\+\)\=\%([eE][-+]\=\d\+\)\=\>\ze[[:blank:]\r\n]*[,}\]]"
|
||||
|
||||
" ERROR WARNINGS **********************************************
|
||||
" Syntax: Strings should always be enclosed with quotes.
|
||||
syn match jsonNoQuotesError "\<[[:alpha:]][[:alnum:]]*\>"
|
||||
syn match jsonTripleQuotesError /"""/
|
||||
if (!exists("g:vim_json_warnings") || g:vim_json_warnings==1)
|
||||
" Syntax: Strings should always be enclosed with quotes.
|
||||
syn match jsonNoQuotesError "\<[[:alpha:]][[:alnum:]]*\>"
|
||||
syn match jsonTripleQuotesError /"""/
|
||||
|
||||
" Syntax: An integer part of 0 followed by other digits is not allowed.
|
||||
syn match jsonNumError "-\=\<0\d\.\d*\>"
|
||||
" Syntax: An integer part of 0 followed by other digits is not allowed.
|
||||
syn match jsonNumError "-\=\<0\d\.\d*\>"
|
||||
|
||||
" Syntax: Decimals smaller than one should begin with 0 (so .1 should be 0.1).
|
||||
syn match jsonNumError "\:\@<=[[:blank:]\r\n]*\zs\.\d\+"
|
||||
" Syntax: Decimals smaller than one should begin with 0 (so .1 should be 0.1).
|
||||
syn match jsonNumError "\:\@<=[[:blank:]\r\n]*\zs\.\d\+"
|
||||
|
||||
" Syntax: No comments in JSON, see http://stackoverflow.com/questions/244777/can-i-comment-a-json-file
|
||||
syn match jsonCommentError "//.*"
|
||||
syn match jsonCommentError "\(/\*\)\|\(\*/\)"
|
||||
" Syntax: No comments in JSON, see http://stackoverflow.com/questions/244777/can-i-comment-a-json-file
|
||||
syn match jsonCommentError "//.*"
|
||||
syn match jsonCommentError "\(/\*\)\|\(\*/\)"
|
||||
|
||||
" Syntax: No semicolons in JSON
|
||||
syn match jsonSemicolonError ";"
|
||||
" Syntax: No semicolons in JSON
|
||||
syn match jsonSemicolonError ";"
|
||||
|
||||
" Syntax: No trailing comma after the last element of arrays or objects
|
||||
syn match jsonTrailingCommaError ",\_s*[}\]]"
|
||||
" Syntax: No trailing comma after the last element of arrays or objects
|
||||
syn match jsonTrailingCommaError ",\_s*[}\]]"
|
||||
|
||||
" Syntax: Watch out for missing commas between elements
|
||||
syn match jsonMissingCommaError /\("\|\]\|\d\)\zs\_s\+\ze"/
|
||||
syn match jsonMissingCommaError /\(\]\|\}\)\_s\+\ze"/ "arrays/objects as values
|
||||
syn match jsonMissingCommaError /}\_s\+\ze{/ "objects as elements in an array
|
||||
syn match jsonMissingCommaError /\(true\|false\)\_s\+\ze"/ "true/false as value
|
||||
" Syntax: Watch out for missing commas between elements
|
||||
syn match jsonMissingCommaError /\("\|\]\|\d\)\zs\_s\+\ze"/
|
||||
syn match jsonMissingCommaError /\(\]\|\}\)\_s\+\ze"/ "arrays/objects as values
|
||||
syn match jsonMissingCommaError /}\_s\+\ze{/ "objects as elements in an array
|
||||
syn match jsonMissingCommaError /\(true\|false\)\_s\+\ze"/ "true/false as value
|
||||
endif
|
||||
|
||||
" ********************************************** END OF ERROR WARNINGS
|
||||
" Allowances for JSONP: function call at the beginning of the file,
|
||||
@@ -87,20 +103,22 @@ if version >= 508 || !exists("did_json_syn_inits")
|
||||
hi def link jsonString String
|
||||
hi def link jsonTest Label
|
||||
hi def link jsonEscape Special
|
||||
hi def link jsonNumber Number
|
||||
hi def link jsonNumber Delimiter
|
||||
hi def link jsonBraces Delimiter
|
||||
hi def link jsonNull Function
|
||||
hi def link jsonBoolean Boolean
|
||||
hi def link jsonBoolean Delimiter
|
||||
hi def link jsonKeyword Label
|
||||
|
||||
hi def link jsonNumError Error
|
||||
hi def link jsonCommentError Error
|
||||
hi def link jsonSemicolonError Error
|
||||
hi def link jsonTrailingCommaError Error
|
||||
hi def link jsonMissingCommaError Error
|
||||
hi def link jsonStringSQError Error
|
||||
hi def link jsonNoQuotesError Error
|
||||
hi def link jsonTripleQuotesError Error
|
||||
if (!exists("g:vim_json_warnings") || g:vim_json_warnings==1)
|
||||
hi def link jsonNumError Error
|
||||
hi def link jsonCommentError Error
|
||||
hi def link jsonSemicolonError Error
|
||||
hi def link jsonTrailingCommaError Error
|
||||
hi def link jsonMissingCommaError Error
|
||||
hi def link jsonStringSQError Error
|
||||
hi def link jsonNoQuotesError Error
|
||||
hi def link jsonTripleQuotesError Error
|
||||
endif
|
||||
hi def link jsonQuote Quote
|
||||
hi def link jsonNoise Noise
|
||||
endif
|
||||
|
||||
Reference in New Issue
Block a user