thrift.vim (2837B)
1 " Vim syntax file 2 " Language: Thrift 3 " Maintainer: Martin Smith <martin@facebook.com> 4 " Last Change: $Date: $ 5 " Copy to ~/.vim/ 6 " Add to ~/.vimrc 7 " au BufRead,BufNewFile *.thrift set filetype=thrift 8 " au! Syntax thrift source ~/.vim/thrift.vim 9 " 10 " $Id: $ 11 " 12 " Licensed to the Apache Software Foundation (ASF) under one 13 " or more contributor license agreements. See the NOTICE file 14 " distributed with this work for additional information 15 " regarding copyright ownership. The ASF licenses this file 16 " to you under the Apache License, Version 2.0 (the 17 " "License"); you may not use this file except in compliance 18 " with the License. You may obtain a copy of the License at 19 " 20 " http://www.apache.org/licenses/LICENSE-2.0 21 " 22 " Unless required by applicable law or agreed to in writing, 23 " software distributed under the License is distributed on an 24 " "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 25 " KIND, either express or implied. See the License for the 26 " specific language governing permissions and limitations 27 " under the License. 28 " 29 30 if version < 600 31 syntax clear 32 elseif exists("b:current_syntax") 33 finish 34 endif 35 36 " Todo 37 syn keyword thriftTodo TODO todo FIXME fixme XXX xxx contained 38 39 " Comments 40 syn match thriftComment "#.*" contains=thriftTodo 41 syn region thriftComment start="/\*" end="\*/" contains=thriftTodo 42 syn match thriftComment "//.\{-}\(?>\|$\)\@=" 43 44 " String 45 syn region thriftStringDouble matchgroup=None start=+"+ end=+"+ 46 47 " Number 48 syn match thriftNumber "-\=\<\d\+\>" contained 49 50 " Keywords 51 syn keyword thriftKeyword namespace 52 syn keyword thriftKeyword xsd_all xsd_optional xsd_nillable xsd_attrs 53 syn keyword thriftKeyword include cpp_include cpp_type const optional required 54 syn keyword thriftBasicTypes void bool byte i16 i32 i64 double string binary 55 syn keyword thriftStructure map list set struct typedef exception enum throws 56 57 " Special 58 syn match thriftSpecial "\d\+:" 59 60 " Structure 61 syn keyword thriftStructure service oneway extends 62 "async" { return tok_async; } 63 "exception" { return tok_xception; } 64 "extends" { return tok_extends; } 65 "throws" { return tok_throws; } 66 "service" { return tok_service; } 67 "enum" { return tok_enum; } 68 "const" { return tok_const; } 69 70 if version >= 508 || !exists("did_thrift_syn_inits") 71 if version < 508 72 let did_thrift_syn_inits = 1 73 command! -nargs=+ HiLink hi link <args> 74 else 75 command! -nargs=+ HiLink hi def link <args> 76 endif 77 78 HiLink thriftComment Comment 79 HiLink thriftKeyword Special 80 HiLink thriftBasicTypes Type 81 HiLink thriftStructure StorageClass 82 HiLink thriftTodo Todo 83 HiLink thriftString String 84 HiLink thriftNumber Number 85 HiLink thriftSpecial Special 86 HiLink thriftStructure Structure 87 88 delcommand HiLink 89 endif 90 91 let b:current_syntax = "thrift"