Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

syntax highlighting for json

  • Loading branch information...
commit f638f015a64c773fa8320b23d5b46ec7811068a3 1 parent e0098a9
Elmar Athmer authored
Showing with 78 additions and 0 deletions.
  1. +1 −0  filetype.vim
  2. +77 −0 syntax/json.vim
View
1  filetype.vim
@@ -1 +1,2 @@
au BufNewFile,BufRead *.ts setf typoscript
+au! BufRead,BufNewFile *.json setfiletype json
View
77 syntax/json.vim
@@ -0,0 +1,77 @@
+" Vim syntax file
+" Language: JSON
+" Maintainer: Jeroen Ruigrok van der Werven <asmodai@in-nomine.org>
+" Last Change: 2009-06-16
+" Version: 0.4
+" {{{1
+
+" Syntax setup {{{2
+" For version 5.x: Clear all syntax items
+" For version 6.x: Quit when a syntax file was already loaded
+
+if !exists("main_syntax")
+ if version < 600
+ syntax clear
+ elseif exists("b:current_syntax")
+ finish
+ endif
+ let main_syntax = 'json'
+endif
+
+" Syntax: Strings {{{2
+syn region jsonString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=jsonEscape
+" Syntax: JSON does not allow strings with single quotes, unlike JavaScript.
+syn region jsonStringSQ start=+'+ skip=+\\\\\|\\"+ end=+'+
+
+" Syntax: Escape sequences {{{3
+syn match jsonEscape "\\["\\/bfnrt]" contained
+syn match jsonEscape "\\u\x\{4}" contained
+
+" Syntax: Strings should always be enclosed with quotes.
+syn match jsonNoQuotes "\<\a\+\>"
+
+" Syntax: Numbers {{{2
+syn match jsonNumber "-\=\<\%(0\|[1-9]\d*\)\%(\.\d\+\)\=\%([eE][-+]\=\d\+\)\=\>"
+
+" Syntax: An integer part of 0 followed by other digits is not allowed.
+syn match jsonNumError "-\=\<0\d\.\d*\>"
+
+" Syntax: Boolean {{{2
+syn keyword jsonBoolean true false
+
+" Syntax: Null {{{2
+syn keyword jsonNull null
+
+" Syntax: Braces {{{2
+syn match jsonBraces "[{}\[\]]"
+
+" Define the default highlighting. {{{1
+" For version 5.7 and earlier: only when not done already
+" For version 5.8 and later: only when an item doesn't have highlighting yet
+if version >= 508 || !exists("did_json_syn_inits")
+ if version < 508
+ let did_json_syn_inits = 1
+ command -nargs=+ HiLink hi link <args>
+ else
+ command -nargs=+ HiLink hi def link <args>
+ endif
+ HiLink jsonString String
+ HiLink jsonEscape Special
+ HiLink jsonNumber Number
+ HiLink jsonBraces Operator
+ HiLink jsonNull Function
+ HiLink jsonBoolean Boolean
+
+ HiLink jsonNumError Error
+ HiLink jsonStringSQ Error
+ HiLink jsonNoQuotes Error
+ delcommand HiLink
+endif
+
+let b:current_syntax = "json"
+if main_syntax == 'json'
+ unlet main_syntax
+endif
+
+" Vim settings {{{2
+" vim: ts=8 fdm=marker
Please sign in to comment.
Something went wrong with that request. Please try again.