summaryrefslogtreecommitdiffstats
path: root/runtime/syntax/pbtxt.vim
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/syntax/pbtxt.vim')
-rw-r--r--runtime/syntax/pbtxt.vim44
1 files changed, 44 insertions, 0 deletions
diff --git a/runtime/syntax/pbtxt.vim b/runtime/syntax/pbtxt.vim
new file mode 100644
index 0000000..92a7556
--- /dev/null
+++ b/runtime/syntax/pbtxt.vim
@@ -0,0 +1,44 @@
+" Vim syntax file
+" Language: Protobuf Text Format
+" Maintainer: Lakshay Garg <lakshayg@outlook.in>
+" Last Change: 2020 Nov 17
+" Homepage: https://github.com/lakshayg/vim-pbtxt
+
+if exists("b:current_syntax")
+ finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn case ignore
+
+syn keyword pbtxtTodo TODO FIXME contained
+syn keyword pbtxtBool true false contained
+
+syn match pbtxtInt display "\<\(0\|[1-9]\d*\)\>"
+syn match pbtxtHex display "\<0[xX]\x\+\>"
+syn match pbtxtFloat display "\(0\|[1-9]\d*\)\=\.\d*"
+syn match pbtxtMessage display "^\s*\w\+\s*{"me=e-1
+syn match pbtxtField display "^\s*\w\+:"me=e-1
+syn match pbtxtEnum display ":\s*\a\w\+"ms=s+1 contains=pbtxtBool
+syn region pbtxtString start=+"+ skip=+\\"+ end=+"+ contains=@Spell
+syn region pbtxtComment start="#" end="$" keepend contains=pbtxtTodo,@Spell
+
+hi def link pbtxtTodo Todo
+hi def link pbtxtBool Boolean
+hi def link pbtxtInt Number
+hi def link pbtxtHex Number
+hi def link pbtxtFloat Float
+hi def link pbtxtMessage Structure
+hi def link pbtxtField Identifier
+hi def link pbtxtEnum Define
+hi def link pbtxtString String
+hi def link pbtxtComment Comment
+
+let b:current_syntax = "pbtxt"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
+
+" vim: nowrap sw=2 sts=2 ts=8 noet