| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- " Protocol Buffers - Google's data interchange format
- " Copyright 2008 Google Inc.
- "
- " Licensed under the Apache License, Version 2.0 (the "License");
- " you may not use this file except in compliance with the License.
- " You may obtain a copy of the License at
- "
- " http:"www.apache.org/licenses/LICENSE-2.0
- "
- " Unless required by applicable law or agreed to in writing, software
- " distributed under the License is distributed on an "AS IS" BASIS,
- " WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- " See the License for the specific language governing permissions and
- " limitations under the License.
- " This is the Vim syntax file for Google Protocol Buffers.
- "
- " Usage:
- "
- " 1. cp proto.vim ~/.vim/syntax/
- " 2. Add the following to ~/.vimrc:
- "
- " augroup filetype
- " au! BufRead,BufNewFile *.proto setfiletype proto
- " augroup end
- "
- " Or just create a new file called ~/.vim/ftdetect/proto.vim with the
- " previous lines on it.
- if version < 600
- syntax clear
- elseif exists("b:current_syntax")
- finish
- endif
- syn case match
- syn keyword pbTodo contained TODO FIXME XXX
- syn cluster pbCommentGrp contains=pbTodo
- syn keyword pbSyntax syntax import option
- syn keyword pbStructure package message group
- syn keyword pbRepeat optional required repeated
- syn keyword pbDefault default
- syn keyword pbExtend extend extensions to max
- syn keyword pbRPC service rpc returns
- syn keyword pbType int32 int64 uint32 uint64 sint32 sint64
- syn keyword pbType fixed32 fixed64 sfixed32 sfixed64
- syn keyword pbType float double bool string bytes
- syn keyword pbTypedef enum
- syn keyword pbBool true false
- syn match pbInt /-\?\<\d\+\>/
- syn match pbInt /\<0[xX]\x+\>/
- syn match pbFloat /\<-\?\d*\(\.\d*\)\?/
- " TODO: .proto also supports C-style block comments;
- " see /usr/share/vim/vim70/syntax/c.vim for how it's done.
- syn region pbComment start="//" skip="\\$" end="$" keepend contains=@pbCommentGrp
- syn region pbString start=/"/ skip=/\\"/ end=/"/
- syn region pbString start=/'/ skip=/\\'/ end=/'/
- if version >= 508 || !exists("did_proto_syn_inits")
- if version < 508
- let did_proto_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
- HiLink pbTodo Todo
- HiLink pbSyntax Include
- HiLink pbStructure Structure
- HiLink pbRepeat Repeat
- HiLink pbDefault Keyword
- HiLink pbExtend Keyword
- HiLink pbRPC Keyword
- HiLink pbType Type
- HiLink pbTypedef Typedef
- HiLink pbBool Boolean
- HiLink pbInt Number
- HiLink pbFloat Float
- HiLink pbComment Comment
- HiLink pbString String
- delcommand HiLink
- endif
- let b:current_syntax = "proto"
|