blob: 92a75560ef355e23cbded2d04ef0d7a077b98391 [file] [log] [blame]
Bram Moolenaar4466ad62020-11-21 13:16:30 +01001" Vim syntax file
2" Language: Protobuf Text Format
3" Maintainer: Lakshay Garg <lakshayg@outlook.in>
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