" 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 else command -nargs=+ HiLink hi def link 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"