xref: /vim-8.2.3635/runtime/syntax/proto.vim (revision 3132cddd)
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