diff options
Diffstat (limited to 'runtime/syntax/proto.vim')
-rw-r--r-- | runtime/syntax/proto.vim | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/runtime/syntax/proto.vim b/runtime/syntax/proto.vim new file mode 100644 index 0000000..0d2d2f2 --- /dev/null +++ b/runtime/syntax/proto.vim @@ -0,0 +1,83 @@ +" Protocol Buffers - Google's data interchange format +" Copyright 2008 Google Inc. All rights reserved. +" https://developers.google.com/protocol-buffers/ +" +" Redistribution and use in source and binary forms, with or without +" modification, are permitted provided that the following conditions are +" met: +" +" * Redistributions of source code must retain the above copyright +" notice, this list of conditions and the following disclaimer. +" * Redistributions in binary form must reproduce the above +" copyright notice, this list of conditions and the following disclaimer +" in the documentation and/or other materials provided with the +" distribution. +" * Neither the name of Google Inc. nor the names of its +" contributors may be used to endorse or promote products derived from +" this software without specific prior written permission. +" +" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +" "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +" A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +" OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +" LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +" OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +" This is the Vim syntax file for Google Protocol Buffers as found at +" https://github.com/protocolbuffers/protobuf +" Last update: 2020 Oct 29 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case match + +syn keyword protoTodo contained TODO FIXME XXX +syn cluster protoCommentGrp contains=protoTodo + +syn keyword protoSyntax syntax import option +syn keyword protoStructure package message group oneof +syn keyword protoRepeat optional required repeated +syn keyword protoDefault default +syn keyword protoExtend extend extensions to max reserved +syn keyword protoRPC service rpc returns + +syn keyword protoType int32 int64 uint32 uint64 sint32 sint64 +syn keyword protoType fixed32 fixed64 sfixed32 sfixed64 +syn keyword protoType float double bool string bytes +syn keyword protoTypedef enum +syn keyword protoBool true false + +syn match protoInt /-\?\<\d\+\>/ +syn match protoInt /\<0[xX]\x+\>/ +syn match protoFloat /\<-\?\d*\(\.\d*\)\?/ +syn region protoComment start="\/\*" end="\*\/" contains=@pbCommentGrp,@Spell +syn region protoComment start="//" skip="\\$" end="$" keepend contains=@pbCommentGrp,@Spell +syn region protoString start=/"/ skip=/\\./ end=/"/ contains=@Spell +syn region protoString start=/'/ skip=/\\./ end=/'/ contains=@Spell + +hi def link protoTodo Todo + +hi def link protoSyntax Include +hi def link protoStructure Structure +hi def link protoRepeat Repeat +hi def link protoDefault Keyword +hi def link protoExtend Keyword +hi def link protoRPC Keyword +hi def link protoType Type +hi def link protoTypedef Typedef +hi def link protoBool Boolean + +hi def link protoInt Number +hi def link protoFloat Float +hi def link protoComment Comment +hi def link protoString String + +let b:current_syntax = "proto" |