From: Martin Kraemer Date: Tue, 15 May 2007 23:24:30 +0000 (+0000) Subject: Thrift Syntax for Vim X-Git-Tag: 0.2.0~1362 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=8ca2d0910927a781b6181e7177a404e37c09d82d;p=common%2Fthrift.git Thrift Syntax for Vim Summary: See header of file for installation instructions. I'm not a vim master so this may not be completely kosher, feel free to improve as necessary. Reviewed By: Slee Test Plan: Revert Plan: Notes: EImportant: git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665110 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/thrift.vim b/thrift.vim new file mode 100644 index 00000000..11da4242 --- /dev/null +++ b/thrift.vim @@ -0,0 +1,71 @@ +" Vim syntax file +" Language: Thrift +" Maintainer: Martin Smith +" Last Change: $Date: $ +" Copy to ~/.vim/ +" Add to ~/.vimrc +" au BufRead,BufNewFile *.thrift set filetype=thrift +" au! Syntax thrift source ~/.vim/thrift.vim +" +" $Id: $ + +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 +syn region thriftComment start="/\*" end="\*/" contains=thriftTodo +syn match thriftComment "//.\{-}\(?>\|$\)\@=" + +" String +syn region thriftStringDouble matchgroup=None start=+"+ end=+"+ + +" Number +syn match thriftNumber "-\=\<\d\+\>" contained + +" Keywords +syn keyword thriftKeyword namespace cpp_namespace cpp_include +syn keyword thriftKeyword cpp_type java_package include const +syn keyword thriftBasicTypes void bool byte i16 i32 i64 double string + +syn keyword thriftStructure map list set struct typedef exception enum throws + +" Special +syn match thriftSpecial "\d\+:" + +" Structure +syn keyword thriftStructure service async 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 + else + command! -nargs=+ HiLink hi def link + endif + + HiLink thriftComment Comment + HiLink thriftKeyword Special + HiLink thriftBasicTypes Type + HiLink thriftStructure StorageClass + HiLink thriftTodo Todo + HiLink thriftString String + HiLink thriftNumber Number + HiLink thriftSpecial Special + HiLink thriftStructure Structure +endif + +let b:currenct_syntax = "thrift"