summaryrefslogtreecommitdiffstats
path: root/syntax/proto.vim
diff options
context:
space:
mode:
authorAdam Stankiewicz <sheerun@sher.pl>2017-09-27 20:43:42 +0200
committerAdam Stankiewicz <sheerun@sher.pl>2017-09-27 20:43:42 +0200
commit5b77877888162f4e415fe9a7b8c5e9fb5dfb6ee1 (patch)
tree965ae5128797f3d42d78d02692e62d24a4596e19 /syntax/proto.vim
parent8148255ef1c416f414c3a78405eff08fe149d16e (diff)
downloadvim-polyglot-5b77877888162f4e415fe9a7b8c5e9fb5dfb6ee1.tar.gz
vim-polyglot-5b77877888162f4e415fe9a7b8c5e9fb5dfb6ee1.zip
Add syntax files from upstream vim repository
Diffstat (limited to 'syntax/proto.vim')
-rw-r--r--syntax/proto.vim77
1 files changed, 77 insertions, 0 deletions
diff --git a/syntax/proto.vim b/syntax/proto.vim
index 1f7c3c12..fffd4e8c 100644
--- a/syntax/proto.vim
+++ b/syntax/proto.vim
@@ -1,3 +1,80 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1
+
+" syntax file for Protocol Buffers - Google's data interchange format
+"
+" Copyright 2008 Google Inc. All rights reserved.
+"
+" Permission is hereby granted, free of charge, to any person obtaining a copy
+" of this software and associated documentation files (the "Software"), to deal
+" in the Software without restriction, including without limitation the rights
+" to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+" copies of the Software, and to permit persons to whom the Software is
+" furnished to do so, subject to the following conditions:
+"
+" The above copyright notice and this permission notice shall be included in
+" all copies or substantial portions of the Software.
+"
+" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+" OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+" THE SOFTWARE.
+"
+" http://code.google.com/p/protobuf/
+
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
+ finish
+endif
+
+syn case match
+
+syn keyword protoTodo contained TODO FIXME XXX
+syn cluster protoCommentGrp contains=protoTodo
+
+syn keyword protoSyntax syntax import option
+syn keyword protoStructure package message group
+syn keyword protoRepeat optional required repeated
+syn keyword protoDefault default
+syn keyword protoExtend extend extensions to max
+syn keyword protoRPC service rpc returns
+
+syn keyword protoType int32 int64 uint32 uint64 sint32 sint64
+syn keyword protoType fixed32 fixed64 sfixed32 sfixed64
+syn keyword protoType float double bool string bytes
+syn keyword protoTypedef enum
+syn keyword protoBool true false
+
+syn match protoInt /-\?\<\d\+\>/
+syn match protoInt /\<0[xX]\x+\>/
+syn match protoFloat /\<-\?\d*\(\.\d*\)\?/
+syn region protoComment start="\/\*" end="\*\/" contains=@protoCommentGrp
+syn region protoComment start="//" skip="\\$" end="$" keepend contains=@protoCommentGrp
+syn region protoString start=/"/ skip=/\\./ end=/"/
+syn region protoString start=/'/ skip=/\\./ end=/'/
+
+hi def link protoTodo Todo
+
+hi def link protoSyntax Include
+hi def link protoStructure Structure
+hi def link protoRepeat Repeat
+hi def link protoDefault Keyword
+hi def link protoExtend Keyword
+hi def link protoRPC Keyword
+hi def link protoType Type
+hi def link protoTypedef Typedef
+hi def link protoBool Boolean
+
+hi def link protoInt Number
+hi def link protoFloat Float
+hi def link protoComment Comment
+hi def link protoString String
+
+let b:current_syntax = "proto"
+
+endif
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'protobuf') == -1
" Protocol Buffers - Google's data interchange format