" Modified from the original taken from https://github.com/gutenye/json5.vim

" Syntax setup
if exists('b:current_syntax') && b:current_syntax == 'json5'
  finish
endif

" Numbers
syn match   json5Number    "[-+]\=\%(0\|[1-9]\d*\)\%(\.\d*\)\=\%([eE][-+]\=\d\+\)\="
syn match   json5Number    "[-+]\=\%(\.\d\+\)\%([eE][-+]\=\d\+\)\="
syn match   json5Number    "[-+]\=0[xX]\x*"
syn match   json5Number    "[-+]\=Infinity\|NaN"

" An integer part of 0 followed by other digits is not allowed
syn match   json5NumError  "[-+]\=0\d\(\d\|\.\)*"

" A hexadecimal number cannot have a fractional part
syn match   json5NumError  "[-+]\=0x\x*\.\x*"

" Strings
syn region  json5String    start=+"+  skip=+\\\\\|\\"+  end=+"+  contains=json5Escape,@Spell
syn region  json5String    start=+'+  skip=+\\\\\|\\'+  end=+'+  contains=json5Escape,@Spell

" Escape sequences
syn match   json5Escape    "\\['\"\\bfnrtv]" contained
syn match   json5Escape    "\\u\x\{4}" contained

" Boolean
syn keyword json5Boolean   true false

" Null
syn keyword json5Null      null

" Delimiters and Operators
syn match   json5Delimiter  ","
syn match   json5Operator   ":"

" Braces
syn match   json5Braces	   "[{}\[\]]"

" Keys
syn match   json5Key /@\?\%(\I\|\$\)\%(\i\|\$\)*\s*\ze::\@!/ contains=@Spell
syn match   json5Key /"\([^"]\|\\"\)\{-}"\ze\s*:/ contains=json5Escape,@Spell

" Comment
syn region  json5LineComment    start=+\/\/+ end=+$+ keepend contains=@Spell
syn region  json5LineComment    start=+^\s*\/\/+ skip=+\n\s*\/\/+ end=+$+ keepend fold contains=@Spell
syn region  json5Comment        start="/\*"  end="\*/" fold contains=@Spell

" Define the default highlighting
hi def link json5String             String
hi def link json5Key                Identifier
hi def link json5Escape             Special
hi def link json5Number             Number
hi def link json5Delimiter          Delimiter
hi def link json5Operator           Operator
hi def link json5Braces             Delimiter
hi def link json5Null               Keyword
hi def link json5Boolean            Boolean
hi def link json5LineComment        Comment
hi def link json5Comment            Comment
hi def link json5NumError           Error

if !exists('b:current_syntax')
  let b:current_syntax = 'json5'
endif

