xref: /vim-8.2.3635/runtime/syntax/pbtxt.vim (revision 4466ad6b)
1" Vim syntax file
2" Language:             Protobuf Text Format
3" Maintainer:           Lakshay Garg <[email protected]>
4" Last Change:          2020 Nov 17
5" Homepage:             https://github.com/lakshayg/vim-pbtxt
6
7if exists("b:current_syntax")
8  finish
9endif
10
11let s:cpo_save = &cpo
12set cpo&vim
13
14syn case ignore
15
16syn keyword pbtxtTodo     TODO FIXME contained
17syn keyword pbtxtBool     true false contained
18
19syn match   pbtxtInt      display   "\<\(0\|[1-9]\d*\)\>"
20syn match   pbtxtHex      display   "\<0[xX]\x\+\>"
21syn match   pbtxtFloat    display   "\(0\|[1-9]\d*\)\=\.\d*"
22syn match   pbtxtMessage  display   "^\s*\w\+\s*{"me=e-1
23syn match   pbtxtField    display   "^\s*\w\+:"me=e-1
24syn match   pbtxtEnum     display   ":\s*\a\w\+"ms=s+1   contains=pbtxtBool
25syn region  pbtxtString   start=+"+ skip=+\\"+ end=+"+   contains=@Spell
26syn region  pbtxtComment  start="#" end="$"      keepend contains=pbtxtTodo,@Spell
27
28hi def link pbtxtTodo     Todo
29hi def link pbtxtBool     Boolean
30hi def link pbtxtInt      Number
31hi def link pbtxtHex      Number
32hi def link pbtxtFloat    Float
33hi def link pbtxtMessage  Structure
34hi def link pbtxtField    Identifier
35hi def link pbtxtEnum     Define
36hi def link pbtxtString   String
37hi def link pbtxtComment  Comment
38
39let b:current_syntax = "pbtxt"
40
41let &cpo = s:cpo_save
42unlet s:cpo_save
43
44" vim: nowrap sw=2 sts=2 ts=8 noet
45