84 lines
2.5 KiB
VimL
84 lines
2.5 KiB
VimL
" 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
|
|
|
|
if version < 600
|
|
syntax clear
|
|
elseif exists("b:current_syntax")
|
|
finish
|
|
endif
|
|
|
|
syn case match
|
|
|
|
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 match pbComment /\/\/.*$/
|
|
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 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"
|