diff options
author | Adam Stankiewicz <sheerun@sher.pl> | 2014-12-11 23:02:50 +0100 |
---|---|---|
committer | Adam Stankiewicz <sheerun@sher.pl> | 2014-12-11 23:02:50 +0100 |
commit | bbc6be1099dee66a69dd4d44e029c4c2dc37aee0 (patch) | |
tree | b2ddaa79c35155bcaf5ab276b4644401c532706a /syntax | |
parent | 7f2e3663341d725b073857fcd3b2f5868ce85248 (diff) | |
download | vim-polyglot-bbc6be1099dee66a69dd4d44e029c4c2dc37aee0.tar.gz vim-polyglot-bbc6be1099dee66a69dd4d44e029c4c2dc37aee0.zip |
Add thrift language support, closes #49
Diffstat (limited to 'syntax')
-rw-r--r-- | syntax/thrift.vim | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/syntax/thrift.vim b/syntax/thrift.vim new file mode 100644 index 00000000..da8ebe2e --- /dev/null +++ b/syntax/thrift.vim @@ -0,0 +1,98 @@ +" Vim syntax file +" Language: Thrift +" Maintainer: Martin Smith <martin@facebook.com> +" Last Change: $Date: $ +" +" $Id: $ +" +" Licensed to the Apache Software Foundation (ASF) under one +" or more contributor license agreements. See the NOTICE file +" distributed with this work for additional information +" regarding copyright ownership. The ASF licenses this file +" to you 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. +" + +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +" Todo +syn keyword thriftTodo TODO todo FIXME fixme XXX xxx contained + +" Comments +syn match thriftComment "#.*" contains=thriftTodo,@Spell +syn region thriftComment start="/\*" end="\*/" contains=thriftTodo,@Spell +syn match thriftComment "//.\{-}\(?>\|$\)\@=" + +" String +syn region thriftStringDouble matchgroup=None start=+"+ end=+"+ + +" Number +syn match thriftNumber "-\=\<\d\+\>" contained + +" Keywords +syn keyword thriftStatement namespace +syn keyword thriftInclude include +syn keyword thriftKeyword xsd_all xsd_optional xsd_nillable xsd_attrs +syn keyword thriftKeyword cpp_include cpp_type const optional required +syn keyword thriftStatement throws typedef +syn keyword thriftBasicTypes void bool byte string binary +syn keyword thriftBasicTypes i16 i32 i64 double +syn keyword thriftType map list set +syn keyword thriftClass struct exception enum +syn region thriftString start=+"+ end=+"+ + +" Special +syn match thriftNumber "\d\+:" + +" Structure +syn keyword thriftStructure service oneway extends +"async" { return tok_async; } +"exception" { return tok_xception; } +"extends" { return tok_extends; } +"throws" { return tok_throws; } +"service" { return tok_service; } +"enum" { return tok_enum; } +"const" { return tok_const; } + +if version >= 508 || !exists("did_thrift_syn_inits") + if version < 508 + let did_thrift_syn_inits = 1 + command! -nargs=+ HiLink hi link <args> + else + command! -nargs=+ HiLink hi def link <args> + endif + + HiLink thriftComment Comment + HiLink thriftKeyword Special + HiLink thriftBasicTypes Type + HiLink thriftType Type + HiLink thriftStructure StorageClass + HiLink thriftTodo Todo + HiLink thriftString String + HiLink thriftNumber Number + HiLink thriftSpecial Special + HiLink thriftStructure Structure + HiLink thriftStatement Statement + HiLink thriftInclude Include + HiLink thriftClass Type + HiLink thriftString String + + delcommand HiLink +endif + +let b:current_syntax = "thrift" + |