diff options
| author | Adam Stankiewicz <sheerun@sher.pl> | 2013-09-14 11:36:13 +0200 | 
|---|---|---|
| committer | Adam Stankiewicz <sheerun@sher.pl> | 2013-09-14 11:38:00 +0200 | 
| commit | 96e9c416ae940753b57891b9852cfd834f9bd191 (patch) | |
| tree | 5f07b45c607241fcece61d6702b5406c87321be3 /syntax | |
| parent | d888bc4422a787549ffb6f0eee2104a905479c43 (diff) | |
| download | vim-polyglot-96e9c416ae940753b57891b9852cfd834f9bd191.tar.gz vim-polyglot-96e9c416ae940753b57891b9852cfd834f9bd191.zip | |
Add protobuf format support, closes #2
Diffstat (limited to 'syntax')
| -rw-r--r-- | syntax/proto.vim | 106 | 
1 files changed, 106 insertions, 0 deletions
| diff --git a/syntax/proto.vim b/syntax/proto.vim new file mode 100644 index 00000000..42f33075 --- /dev/null +++ b/syntax/proto.vim @@ -0,0 +1,106 @@ +" Protocol Buffers - Google's data interchange format +" Copyright 2008 Google Inc.  All rights reserved. +" http://code.google.com/p/protobuf/ +" +" Redistribution and use in source and binary forms, with or without +" modification, are permitted provided that the following conditions are +" met: +" +"     * Redistributions of source code must retain the above copyright +" notice, this list of conditions and the following disclaimer. +"     * Redistributions in binary form must reproduce the above +" copyright notice, this list of conditions and the following disclaimer +" in the documentation and/or other materials provided with the +" distribution. +"     * Neither the name of Google Inc. nor the names of its +" contributors may be used to endorse or promote products derived from +" this software without specific prior written permission. +" +" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +" "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +" A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +" OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +" LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +" OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +" 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" | 
