blob: 0d2d2f259ec4c6d86764fd04b61be4c740109c3e [file] [log] [blame]
Bram Moolenaar3132cdd2020-11-05 20:41:49 +01001" Protocol Buffers - Google's data interchange format
Bram Moolenaarec7944a2013-06-12 21:29:15 +02002" Copyright 2008 Google Inc. All rights reserved.
Bram Moolenaar3132cdd2020-11-05 20:41:49 +01003" https://developers.google.com/protocol-buffers/
Bram Moolenaarec7944a2013-06-12 21:29:15 +02004"
Bram Moolenaar3132cdd2020-11-05 20:41:49 +01005" Redistribution and use in source and binary forms, with or without
6" modification, are permitted provided that the following conditions are
7" met:
Bram Moolenaarec7944a2013-06-12 21:29:15 +02008"
Bram Moolenaar3132cdd2020-11-05 20:41:49 +01009" * Redistributions of source code must retain the above copyright
10" notice, this list of conditions and the following disclaimer.
11" * Redistributions in binary form must reproduce the above
12" copyright notice, this list of conditions and the following disclaimer
13" in the documentation and/or other materials provided with the
14" distribution.
15" * Neither the name of Google Inc. nor the names of its
16" contributors may be used to endorse or promote products derived from
17" this software without specific prior written permission.
Bram Moolenaarec7944a2013-06-12 21:29:15 +020018"
Bram Moolenaar3132cdd2020-11-05 20:41:49 +010019" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20" "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22" A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23" OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25" LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29" OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
31" This is the Vim syntax file for Google Protocol Buffers as found at
32" https://github.com/protocolbuffers/protobuf
33" Last update: 2020 Oct 29
Bram Moolenaarec7944a2013-06-12 21:29:15 +020034
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020035" quit when a syntax file was already loaded
36if exists("b:current_syntax")
Bram Moolenaarec7944a2013-06-12 21:29:15 +020037 finish
38endif
39
40syn case match
41
42syn keyword protoTodo contained TODO FIXME XXX
43syn cluster protoCommentGrp contains=protoTodo
44
45syn keyword protoSyntax syntax import option
Bram Moolenaar3132cdd2020-11-05 20:41:49 +010046syn keyword protoStructure package message group oneof
Bram Moolenaarec7944a2013-06-12 21:29:15 +020047syn keyword protoRepeat optional required repeated
48syn keyword protoDefault default
Bram Moolenaar3132cdd2020-11-05 20:41:49 +010049syn keyword protoExtend extend extensions to max reserved
Bram Moolenaarec7944a2013-06-12 21:29:15 +020050syn keyword protoRPC service rpc returns
51
52syn keyword protoType int32 int64 uint32 uint64 sint32 sint64
53syn keyword protoType fixed32 fixed64 sfixed32 sfixed64
54syn keyword protoType float double bool string bytes
55syn keyword protoTypedef enum
56syn keyword protoBool true false
57
58syn match protoInt /-\?\<\d\+\>/
59syn match protoInt /\<0[xX]\x+\>/
60syn match protoFloat /\<-\?\d*\(\.\d*\)\?/
Bram Moolenaar3132cdd2020-11-05 20:41:49 +010061syn region protoComment start="\/\*" end="\*\/" contains=@pbCommentGrp,@Spell
62syn region protoComment start="//" skip="\\$" end="$" keepend contains=@pbCommentGrp,@Spell
63syn region protoString start=/"/ skip=/\\./ end=/"/ contains=@Spell
64syn region protoString start=/'/ skip=/\\./ end=/'/ contains=@Spell
Bram Moolenaarec7944a2013-06-12 21:29:15 +020065
66hi def link protoTodo Todo
67
68hi def link protoSyntax Include
69hi def link protoStructure Structure
70hi def link protoRepeat Repeat
71hi def link protoDefault Keyword
72hi def link protoExtend Keyword
73hi def link protoRPC Keyword
74hi def link protoType Type
75hi def link protoTypedef Typedef
76hi def link protoBool Boolean
77
78hi def link protoInt Number
79hi def link protoFloat Float
80hi def link protoComment Comment
81hi def link protoString String
82
83let b:current_syntax = "proto"