diff options
author | Adam Stankiewicz <sheerun@sher.pl> | 2019-03-04 10:35:44 +0100 |
---|---|---|
committer | Adam Stankiewicz <sheerun@sher.pl> | 2019-03-04 10:35:44 +0100 |
commit | 4f0bde6d67160df91875be29abae7f87587771a2 (patch) | |
tree | 5ea4b27712a6602fc7bc2a2ea1c6bfaa5839971d /syntax | |
parent | 833b2fadd5e9830435d53b9b16e438b0aa96ac77 (diff) | |
download | vim-polyglot-4f0bde6d67160df91875be29abae7f87587771a2.tar.gz vim-polyglot-4f0bde6d67160df91875be29abae7f87587771a2.zip |
Add flatbuffers support, closes #368
Diffstat (limited to 'syntax')
-rw-r--r-- | syntax/fbs.vim | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/syntax/fbs.vim b/syntax/fbs.vim new file mode 100644 index 00000000..90ee9409 --- /dev/null +++ b/syntax/fbs.vim @@ -0,0 +1,56 @@ +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" |