2014-07-10 21:05:51 -07:00
|
|
|
" Vim syntax file
|
2016-04-16 17:33:36 -07:00
|
|
|
" Language: DataScript
|
2014-07-10 21:05:51 -07:00
|
|
|
" Maintainer: Dominique Pelle <dominique.pelle@gmail.com>
|
2016-04-16 17:33:36 -07:00
|
|
|
" Last Change: 2015 Jul 30
|
2014-07-10 21:05:51 -07:00
|
|
|
"
|
|
|
|
" DataScript is a formal language for modelling binary datatypes,
|
|
|
|
" bitstreams or file formats. For more information, see:
|
2016-04-16 17:33:36 -07:00
|
|
|
"
|
|
|
|
" http://dstools.sourceforge.net/DataScriptLanguageOverview.html
|
2014-07-10 21:05:51 -07:00
|
|
|
|
2017-04-28 12:06:44 -07:00
|
|
|
" quit when a syntax file was already loaded
|
|
|
|
if exists("b:current_syntax")
|
2014-07-10 21:05:51 -07:00
|
|
|
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
|
2016-04-16 17:33:36 -07:00
|
|
|
syn keyword dsType varint16 varint32 varint64
|
|
|
|
syn keyword dsType varuint16 varuint32 varuint64
|
2014-07-10 21:05:51 -07:00
|
|
|
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
|
2016-04-16 17:33:36 -07:00
|
|
|
syn keyword dsSql sql_integer sql_metadata sql_key sql_virtual
|
|
|
|
syn keyword dsSql using reference_key foreign_key to
|
2014-07-10 21:05:51 -07:00
|
|
|
|
|
|
|
" 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
|
|
|
|
|
2016-04-16 17:33:36 -07:00
|
|
|
syn sync ccomment dsComment
|
|
|
|
|
2014-07-10 21:05:51 -07:00
|
|
|
" 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
|