diff options
Diffstat (limited to 'syntax/datascript.vim')
| -rw-r--r-- | syntax/datascript.vim | 106 | 
1 files changed, 106 insertions, 0 deletions
diff --git a/syntax/datascript.vim b/syntax/datascript.vim new file mode 100644 index 00000000..074a4eb5 --- /dev/null +++ b/syntax/datascript.vim @@ -0,0 +1,106 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 +   +" Vim syntax file +" Language:	DataScript +" Maintainer:	Dominique Pelle <dominique.pelle@gmail.com> +" Last Change:	2015 Jul 30 +" +" DataScript is a formal language for modelling binary datatypes, +" bitstreams or file formats. For more information, see: +" +" http://dstools.sourceforge.net/DataScriptLanguageOverview.html + +" quit when a syntax file was already loaded +if exists("b:current_syntax") +  finish +endif +let s:keepcpo= &cpo +set cpo&vim + +syn keyword dsPackage      import package +syn keyword dsType         bit bool string +syn keyword dsType         int int8 int16 int32 int64 +syn keyword dsType         uint8 uint16 uint32 uint64 +syn keyword dsType         varint16 varint32 varint64 +syn keyword dsType         varuint16 varuint32 varuint64 +syn keyword dsType         leint16 leint32 leint64 +syn keyword dsType         leuint16 leuint32 leuint64 +syn keyword dsEndian       little big +syn keyword dsAlign        align +syn keyword dsLabel        case default +syn keyword dsConditional  if condition +syn keyword dsBoolean      true false +syn keyword dsCompound     union choice on enum bitmask subtype explicit +syn keyword dsKeyword      function return +syn keyword dsOperator     sizeof bitsizeof lengthof is sum forall in +syn keyword dsStorageClass const +syn keyword dsTodo         contained TODO FIXME XXX +syn keyword dsSql          sql sql_table sql_database sql_pragma sql_index +syn keyword dsSql          sql_integer sql_metadata sql_key sql_virtual +syn keyword dsSql          using reference_key foreign_key to + +" dsCommentGroup allows adding matches for special things in comments. +syn cluster dsCommentGroup  contains=dsTodo + +syn match   dsOffset        display "^\s*[a-zA-Z_:\.][a-zA-Z0-9_:\.]*\s*:" + +syn match   dsNumber        display "\<\d\+\>" +syn match   dsNumberHex     display "\<0[xX]\x\+\>" +syn match   dsNumberBin     display "\<[01]\+[bB]\>" contains=dsBinaryB +syn match   dsBinaryB       display contained "[bB]\>" +syn match   dsOctal         display "\<0\o\+\>" contains=dsOctalZero +syn match   dsOctalZero     display contained "\<0" + +syn match   dsOctalError    display "\<0\o*[89]\d*\>" + +syn match   dsCommentError      display "\*/" +syn match   dsCommentStartError display "/\*"me=e-1 contained + +syn region   dsCommentL +  \ start="//" skip="\\$" end="$" keepend +  \ contains=@dsCommentGroup,@Spell +syn region   dsComment +  \ matchgroup=dsCommentStart start="/\*" end="\*/" +  \ contains=@dsCommentGroup,dsCommentStartError,@Spell extend + +syn region  dsString +  \ start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=@Spell + +syn sync ccomment dsComment + +" Define the default highlighting. +hi def link dsType              Type +hi def link dsEndian            StorageClass +hi def link dsStorageClass      StorageClass +hi def link dsAlign             Label +hi def link dsLabel             Label +hi def link dsOffset            Label +hi def link dsSql               PreProc +hi def link dsCompound          Structure +hi def link dsConditional       Conditional +hi def link dsBoolean           Boolean +hi def link dsKeyword           Statement +hi def link dsString            String +hi def link dsNumber            Number +hi def link dsNumberBin         Number +hi def link dsBinaryB           Special +hi def link dsOctal             Number +hi def link dsOctalZero         Special +hi def link dsOctalError        Error +hi def link dsNumberHex         Number +hi def link dsTodo              Todo +hi def link dsOperator          Operator +hi def link dsPackage           Include +hi def link dsCommentError      Error +hi def link dsCommentStartError Error +hi def link dsCommentStart      dsComment +hi def link dsCommentL          dsComment +hi def link cCommentL           dsComment +hi def link dsComment           Comment + +let b:current_syntax = "datascript" + +let &cpo = s:keepcpo +unlet s:keepcpo + +endif  | 
