57 lines
1.4 KiB
VimL
57 lines
1.4 KiB
VimL
|
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'flatbuffers') != -1
|
||
|
finish
|
||
|
endif
|
||
|
|
||
|
if exists("b:current_syntax")
|
||
|
finish
|
||
|
endif
|
||
|
|
||
|
syn case match
|
||
|
|
||
|
syn keyword fbTodo contained TODO FIXME XXX
|
||
|
syn cluster fbCommentGrp contains=fbTodo
|
||
|
|
||
|
syn keyword fbSyntax include namespace attribute root_type
|
||
|
syn keyword fbTypeDef enum
|
||
|
syn keyword fbTypeDecl union struct table
|
||
|
syn keyword fbFieldType bool byte int8 ubyte uint8
|
||
|
syn keyword fbFieldType short int16 ushort uint16
|
||
|
syn keyword fbFieldType int int32 uint uint32
|
||
|
syn keyword fbFieldType long int64 ulong uint64
|
||
|
syn keyword fbFieldType float float32 double float64
|
||
|
syn keyword fbFieldType string
|
||
|
syn keyword fbBool true false
|
||
|
|
||
|
syn region fbComment start="//" skip="\\$" end="$" keepend contains=@fbCommentGrp
|
||
|
|
||
|
syn match fbInt /-\?\<\d\+\>/
|
||
|
syn match fbInt /\<0[xX]\x+\>/
|
||
|
syn match fbFloat /\<-\?\d*\(\.\d*\)\?/
|
||
|
|
||
|
syn region fbString start=/"/ skip=/\\./ end=/"/
|
||
|
|
||
|
if version >= 508 || !exists("did_proto_syn_inits")
|
||
|
if version < 508
|
||
|
let did_proto_syn_inits = 1
|
||
|
command -nargs=+ HiLink hi link <args>
|
||
|
else
|
||
|
command -nargs=+ HiLink hi def link <args>
|
||
|
endif
|
||
|
|
||
|
HiLink fbTodo Todo
|
||
|
HiLink fbSyntax Include
|
||
|
HiLink fbTypeDecl Structure
|
||
|
HiLink fbFieldType Type
|
||
|
HiLink fbTypeDef Typedef
|
||
|
HiLink fbBool Boolean
|
||
|
|
||
|
HiLink fbInt Number
|
||
|
HiLink fbFloat Float
|
||
|
HiLink fbComment Comment
|
||
|
HiLink fbString String
|
||
|
|
||
|
delcommand HiLink
|
||
|
endif
|
||
|
|
||
|
let b:current_syntax = "fbs"
|