diff options
Diffstat (limited to 'runtime/syntax')
-rw-r--r-- | runtime/syntax/shada.vim | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/runtime/syntax/shada.vim b/runtime/syntax/shada.vim new file mode 100644 index 0000000000..e5325af5b0 --- /dev/null +++ b/runtime/syntax/shada.vim @@ -0,0 +1,125 @@ +if exists("b:current_syntax") + finish +endif + +syntax match ShaDaEntryHeader + \ '^\u.\{-} with timestamp \d\{4}-\d\d-\d\dT\d\d:\d\d:\d\d:$' +syntax match ShaDaEntryName '^\u.\{-}\ze with' contained + \ containedin=ShaDaEntryHeader +syntax match ShaDaEntryTimestamp 'timestamp \zs\d\{4}-\d\d-\d\dT\d\d:\d\d:\d\d' + \ contained containedin=ShaDaEntryHeader +syntax match ShaDaEntryTimestampNumber '\d\+' contained + \ containedin=ShaDaEntryTimestamp + +syntax match ShaDaComment '^\s*#.*$' + +syntax region ShaDaEntryMapLong start='^ % Key_* Description_* Value$' + \ end='^ %\|^\S'me=s-1 contains=ShaDaComment,ShaDaEntryMapLongEntryStart +syntax region ShaDaEntryMapShort start='^ % Key_* Value$' + \ end='^ %\|^\S'me=s-1 contains=ShaDaComment,ShaDaEntryMapShortEntryStart +syntax match ShaDaEntryMapHeader '^ % Key_* \(Description_* \)\?Value$' + \ contained containedin=ShaDaEntryMapLong,ShaDaEntryMapShort +syntax match ShaDaEntryMapLongEntryStart '^ + 'hs=e-2,he=e-1 + \ nextgroup=ShaDaEntryMapLongKey +syntax match ShaDaEntryMapLongKey '\S\+ \+\ze\S'he=e-2 contained + \ nextgroup=ShaDaEntryMapLongDescription +syntax match ShaDaEntryMapLongDescription '.\{-} \ze\S'he=e-2 contained + \ nextgroup=@ShaDaEntryMsgpackValue +syntax match ShaDaEntryMapShortEntryStart '^ + 'hs=e-2,he=e-1 contained + \ nextgroup=ShaDaEntryMapShortKey +syntax match ShaDaEntryMapShortKey '\S\+ \+\ze\S'he=e-2 contained + \ nextgroup=@ShaDaEntryMsgpackValue +syntax match ShaDaEntryMapBinArrayStart '^ | - 'hs=e-4,he=e-1 contained + \ containedin=ShaDaEntryMapLong,ShaDaEntryMapShort + \ nextgroup=@ShaDaEntryMsgpackValue + +syntax region ShaDaEntryArray start='^ @ Description_* Value$' + \ end='^\S'me=s-1 keepend + \ contains=ShaDaComment,ShaDaEntryArrayEntryStart,ShaDaEntryArrayHeader +syntax match ShaDaEntryArrayHeader '^ @ Description_* Value$' contained +syntax match ShaDaEntryArrayEntryStart '^ - 'hs=e-2,he=e-1 + \ nextgroup=ShaDaEntryArrayDescription +syntax match ShaDaEntryArrayDescription '.\{-} \ze\S'he=e-2 contained + \ nextgroup=@ShaDaEntryMsgpackValue + +syntax match ShaDaEntryRawMsgpack '^ = ' nextgroup=@ShaDaEntryMsgpackValue + +syntax cluster ShaDaEntryMsgpackValue + \ add=ShaDaMsgpackKeyword,ShaDaMsgpackShaDaKeyword + \ add=ShaDaMsgpackInteger,ShaDaMsgpackCharacter,ShaDaMsgpackFloat + \ add=ShaDaMsgpackBinaryString,ShaDaMsgpackString,ShaDaMsgpackExt + \ add=ShaDaMsgpackArray,ShaDaMsgpackMap + \ add=ShaDaMsgpackMultilineArray +syntax keyword ShaDaMsgpackKeyword contained NIL TRUE FALSE +syntax keyword ShaDaMsgpackShaDaKeyword contained + \ CMD SEARCH EXPR INPUT DEBUG + \ CHARACTERWISE LINEWISE BLOCKWISE +syntax region ShaDaMsgpackBinaryString matchgroup=ShaDaMsgpackStringQuotes + \ start='"' skip='\\"' end='"' contained keepend +syntax match ShaDaMsgpackBinaryStringEscape '\\[\\0n"]' + \ contained containedin=ShaDaMsgpackBinaryString +syntax match ShaDaMsgpackString '=' contained nextgroup=ShaDaMsgpackBinaryString +syntax match ShaDaMsgpackExt '+(-\?\d\+)' contained + \ nextgroup=ShaDaMsgpackBinaryString +syntax match ShaDaMsgpackExtType '-\?\d\+' contained containedin=ShaDaMsgpackExt +syntax match ShaDaMsgpackCharacter /'.'/ contained +syntax match ShaDaMsgpackInteger '-\?\%(0x\x\{,16}\|\d\+\)' contained +syntax match ShaDaMsgpackFloat '-\?\d\+\.\d\+\%(e[+-]\?\d\+\)\?' contained +syntax region ShaDaMsgpackArray matchgroup=ShaDaMsgpackArrayBraces + \ start='\[' end='\]' contained + \ contains=@ShaDaEntryMsgpackValue,ShaDaMsgpackComma +syntax region ShaDaMsgpackMap matchgroup=ShaDaMsgpackMapBraces + \ start='{' end='}' contained + \ contains=@ShaDaEntryMsgpackValue,ShaDaMsgpackComma,ShaDaMsgpackColon +syntax match ShaDaMsgpackComma ',' contained +syntax match ShaDaMsgpackColon ':' contained +syntax match ShaDaMsgpackMultilineArray '@' contained + +hi def link ShaDaComment Comment +hi def link ShaDaEntryNumber Number +hi def link ShaDaEntryTimestamp Operator +hi def link ShaDaEntryName Keyword + +hi def link ShaDaEntryMapHeader PreProc + +hi def link ShaDaEntryMapEntryStart Label +hi def link ShaDaEntryMapLongEntryStart ShaDaEntryMapEntryStart +hi def link ShaDaEntryMapShortEntryStart ShaDaEntryMapEntryStart +hi def link ShaDaEntryMapBinArrayStart ShaDaEntryMapEntryStart +hi def link ShaDaEntryArrayEntryStart ShaDaEntryMapEntryStart + +hi def link ShaDaEntryMapKey String +hi def link ShaDaEntryMapLongKey ShaDaEntryMapKey +hi def link ShaDaEntryMapShortKey ShaDaEntryMapKey + +hi def link ShaDaEntryMapDescription Comment +hi def link ShaDaEntryMapLongDescription ShaDaEntryMapDescription +hi def link ShaDaEntryMapShortDescription ShaDaEntryMapDescription + +hi def link ShaDaEntryArrayHeader PreProc + +hi def link ShaDaEntryArrayDescription ShaDaEntryMapDescription + +hi def link ShaDaMsgpackKeyword Keyword +hi def link ShaDaMsgpackShaDaKeyword ShaDaMsgpackKeyword +hi def link ShaDaMsgpackCharacter Character +hi def link ShaDaMsgpackInteger Number +hi def link ShaDaMsgpackFloat Float + +hi def link ShaDaMsgpackBinaryString String +hi def link ShaDaMsgpackBinaryStringEscape SpecialChar +hi def link ShaDaMsgpackExtType Typedef + +hi def link ShaDaMsgpackStringQuotes Operator +hi def link ShaDaMsgpackString ShaDaMsgpackStringQuotes +hi def link ShaDaMsgpackExt ShaDaMsgpackStringQuotes + +hi def link ShaDaMsgpackMapBraces Operator +hi def link ShaDaMsgpackArrayBraces ShaDaMsgpackMapBraces + +hi def link ShaDaMsgpackComma Operator +hi def link ShaDaMsgpackColon ShaDaMsgpackComma + +hi def link ShaDaMsgpackMultilineArray Operator + +let b:current_syntax = "shada" |