3 " Maintainer: Martin Smith <martin@facebook.com>
4 " Last Change: $Date: $
7 " au BufRead,BufNewFile *.thrift set filetype=thrift
8 " au! Syntax thrift source ~/.vim/thrift.vim
14 elseif exists("b:current_syntax")
19 syn keyword thriftTodo TODO todo FIXME fixme XXX xxx contained
22 syn match thriftComment "#.*" contains=thriftTodo
23 syn region thriftComment start="/\*" end="\*/" contains=thriftTodo
24 syn match thriftComment "//.\{-}\(?>\|$\)\@="
27 syn region thriftStringDouble matchgroup=None start=+"+ end=+"+
30 syn match thriftNumber "-\=\<\d\+\>" contained
33 syn keyword thriftKeyword namespace cpp_namespace java_package cocoa_prefix
34 syn keyword php_namespace ruby_namespace py_module perl_package
35 syn keyword thriftKeyword xsd_all xsd_optional xsd_nillable xsd_namespace xsd_attrs
36 syn keyword thriftKeyword include cpp_include cpp_type const optional required
37 syn keyword thriftBasicTypes void bool byte i16 i32 i64 double string binary
38 syn keyword thriftStructure map list set struct typedef exception enum throws
41 syn match thriftSpecial "\d\+:"
44 syn keyword thriftStructure service async extends
45 "async" { return tok_async; }
46 "exception" { return tok_xception; }
47 "extends" { return tok_extends; }
48 "throws" { return tok_throws; }
49 "service" { return tok_service; }
50 "enum" { return tok_enum; }
51 "const" { return tok_const; }
53 if version >= 508 || !exists("did_thrift_syn_inits")
55 let did_thrift_syn_inits = 1
56 command! -nargs=+ HiLink hi link <args>
58 command! -nargs=+ HiLink hi def link <args>
61 HiLink thriftComment Comment
62 HiLink thriftKeyword Special
63 HiLink thriftBasicTypes Type
64 HiLink thriftStructure StorageClass
65 HiLink thriftTodo Todo
66 HiLink thriftString String
67 HiLink thriftNumber Number
68 HiLink thriftSpecial Special
69 HiLink thriftStructure Structure
74 let b:currenct_syntax = "thrift"