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