OLD | NEW |
| (Empty) |
1 " Protocol Buffers - Google's data interchange format | |
2 " Copyright 2008 Google Inc. All rights reserved. | |
3 " https://developers.google.com/protocol-buffers/ | |
4 " | |
5 " Redistribution and use in source and binary forms, with or without | |
6 " modification, are permitted provided that the following conditions are | |
7 " met: | |
8 " | |
9 " * 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. | |
18 " | |
19 " 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. | |
32 " | |
33 " Usage: | |
34 " | |
35 " 1. cp proto.vim ~/.vim/syntax/ | |
36 " 2. Add the following to ~/.vimrc: | |
37 " | |
38 " augroup filetype | |
39 " au! BufRead,BufNewFile *.proto setfiletype proto | |
40 " augroup end | |
41 " | |
42 " Or just create a new file called ~/.vim/ftdetect/proto.vim with the | |
43 " previous lines on it. | |
44 | |
45 if version < 600 | |
46 syntax clear | |
47 elseif exists("b:current_syntax") | |
48 finish | |
49 endif | |
50 | |
51 syn case match | |
52 | |
53 syn keyword pbTodo contained TODO FIXME XXX | |
54 syn cluster pbCommentGrp contains=pbTodo | |
55 | |
56 syn keyword pbSyntax syntax import option | |
57 syn keyword pbStructure package message group oneof | |
58 syn keyword pbRepeat optional required repeated | |
59 syn keyword pbDefault default | |
60 syn keyword pbExtend extend extensions to max reserved | |
61 syn keyword pbRPC service rpc returns | |
62 | |
63 syn keyword pbType int32 int64 uint32 uint64 sint32 sint64 | |
64 syn keyword pbType fixed32 fixed64 sfixed32 sfixed64 | |
65 syn keyword pbType float double bool string bytes | |
66 syn keyword pbTypedef enum | |
67 syn keyword pbBool true false | |
68 | |
69 syn match pbInt /-\?\<\d\+\>/ | |
70 syn match pbInt /\<0[xX]\x+\>/ | |
71 syn match pbFloat /\<-\?\d*\(\.\d*\)\?/ | |
72 syn region pbComment start="\/\*" end="\*\/" contains=@pbCommentGrp | |
73 syn region pbComment start="//" skip="\\$" end="$" keepend contains=@pbCommentG
rp | |
74 syn region pbString start=/"/ skip=/\\./ end=/"/ | |
75 syn region pbString start=/'/ skip=/\\./ end=/'/ | |
76 | |
77 if version >= 508 || !exists("did_proto_syn_inits") | |
78 if version < 508 | |
79 let did_proto_syn_inits = 1 | |
80 command -nargs=+ HiLink hi link <args> | |
81 else | |
82 command -nargs=+ HiLink hi def link <args> | |
83 endif | |
84 | |
85 HiLink pbTodo Todo | |
86 | |
87 HiLink pbSyntax Include | |
88 HiLink pbStructure Structure | |
89 HiLink pbRepeat Repeat | |
90 HiLink pbDefault Keyword | |
91 HiLink pbExtend Keyword | |
92 HiLink pbRPC Keyword | |
93 HiLink pbType Type | |
94 HiLink pbTypedef Typedef | |
95 HiLink pbBool Boolean | |
96 | |
97 HiLink pbInt Number | |
98 HiLink pbFloat Float | |
99 HiLink pbComment Comment | |
100 HiLink pbString String | |
101 | |
102 delcommand HiLink | |
103 endif | |
104 | |
105 let b:current_syntax = "proto" | |
OLD | NEW |