1662db673SBram Moolenaar" Vim syntax file 2662db673SBram Moolenaar" Language: Treetop 3*214641f7SBram Moolenaar" Previous Maintainer: Nikolai Weibull <[email protected]> 4662db673SBram Moolenaar" Latest Revision: 2011-03-14 5662db673SBram Moolenaar 6662db673SBram Moolenaarif exists("b:current_syntax") 7662db673SBram Moolenaar finish 8662db673SBram Moolenaarendif 9662db673SBram Moolenaar 10662db673SBram Moolenaarlet s:cpo_save = &cpo 11662db673SBram Moolenaarset cpo&vim 12662db673SBram Moolenaar 13662db673SBram Moolenaarsyn keyword treetopTodo 14662db673SBram Moolenaar \ contained 15662db673SBram Moolenaar \ TODO 16662db673SBram Moolenaar \ FIXME 17662db673SBram Moolenaar \ XXX 18662db673SBram Moolenaar \ NOTE 19662db673SBram Moolenaar 20662db673SBram Moolenaarsyn match treetopComment 21662db673SBram Moolenaar \ '#.*' 22662db673SBram Moolenaar \ display 23662db673SBram Moolenaar \ contains=treetopTodo 24662db673SBram Moolenaar 25662db673SBram Moolenaarsyn include @treetopRuby syntax/ruby.vim 26662db673SBram Moolenaarunlet b:current_syntax 27662db673SBram Moolenaar 28662db673SBram Moolenaarsyn keyword treetopKeyword 29662db673SBram Moolenaar \ require 30662db673SBram Moolenaar \ end 31662db673SBram Moolenaarsyn region treetopKeyword 32662db673SBram Moolenaar \ matchgroup=treetopKeyword 33662db673SBram Moolenaar \ start='\<\%(grammar\|include\|module\)\>\ze\s' 34662db673SBram Moolenaar \ end='$' 35662db673SBram Moolenaar \ transparent 36662db673SBram Moolenaar \ oneline 37662db673SBram Moolenaar \ keepend 38662db673SBram Moolenaar \ contains=@treetopRuby 39662db673SBram Moolenaarsyn keyword treetopKeyword 40662db673SBram Moolenaar \ rule 41662db673SBram Moolenaar \ nextgroup=treetopRuleName 42662db673SBram Moolenaar \ skipwhite skipnl 43662db673SBram Moolenaar 44662db673SBram Moolenaarsyn match treetopGrammarName 45662db673SBram Moolenaar \ '\u\w*' 46662db673SBram Moolenaar \ contained 47662db673SBram Moolenaar 48662db673SBram Moolenaarsyn match treetopRubyModuleName 49662db673SBram Moolenaar \ '\u\w*' 50662db673SBram Moolenaar \ contained 51662db673SBram Moolenaar 52662db673SBram Moolenaarsyn match treetopRuleName 53662db673SBram Moolenaar \ '\h\w*' 54662db673SBram Moolenaar \ contained 55662db673SBram Moolenaar 56662db673SBram Moolenaarsyn region treetopString 57662db673SBram Moolenaar \ matchgroup=treetopStringDelimiter 58662db673SBram Moolenaar \ start=+"+ 59662db673SBram Moolenaar \ end=+"+ 60662db673SBram Moolenaarsyn region treetopString 61662db673SBram Moolenaar \ matchgroup=treetopStringDelimiter 62662db673SBram Moolenaar \ start=+'+ 63662db673SBram Moolenaar \ end=+'+ 64662db673SBram Moolenaar 65662db673SBram Moolenaarsyn region treetopCharacterClass 66662db673SBram Moolenaar \ matchgroup=treetopCharacterClassDelimiter 67662db673SBram Moolenaar \ start=+\[+ 68662db673SBram Moolenaar \ skip=+\\\]+ 69662db673SBram Moolenaar \ end=+\]+ 70662db673SBram Moolenaar 71662db673SBram Moolenaarsyn region treetopRubyBlock 72662db673SBram Moolenaar \ matchgroup=treetopRubyBlockDelimiter 73662db673SBram Moolenaar \ start=+{+ 74662db673SBram Moolenaar \ end=+}+ 75662db673SBram Moolenaar \ contains=@treetopRuby 76662db673SBram Moolenaar 77662db673SBram Moolenaarsyn region treetopSemanticPredicate 78662db673SBram Moolenaar \ matchgroup=treetopSemanticPredicateDelimiter 79662db673SBram Moolenaar \ start=+[!&]{+ 80662db673SBram Moolenaar \ end=+}+ 81662db673SBram Moolenaar \ contains=@treetopRuby 82662db673SBram Moolenaar 83662db673SBram Moolenaarsyn region treetopSubclassDeclaration 84662db673SBram Moolenaar \ matchgroup=treetopSubclassDeclarationDelimiter 85662db673SBram Moolenaar \ start=+<+ 86662db673SBram Moolenaar \ end=+>+ 87662db673SBram Moolenaar \ contains=@treetopRuby 88662db673SBram Moolenaar 89662db673SBram Moolenaarsyn match treetopEllipsis 90662db673SBram Moolenaar \ +''+ 91662db673SBram Moolenaar 92662db673SBram Moolenaarhi def link treetopTodo Todo 93662db673SBram Moolenaarhi def link treetopComment Comment 94662db673SBram Moolenaarhi def link treetopKeyword Keyword 95662db673SBram Moolenaarhi def link treetopGrammarName Constant 96662db673SBram Moolenaarhi def link treetopRubyModuleName Constant 97662db673SBram Moolenaarhi def link treetopRuleName Identifier 98662db673SBram Moolenaarhi def link treetopString String 99662db673SBram Moolenaarhi def link treetopStringDelimiter treetopString 100662db673SBram Moolenaarhi def link treetopCharacterClass treetopString 101662db673SBram Moolenaarhi def link treetopCharacterClassDelimiter treetopCharacterClass 102662db673SBram Moolenaarhi def link treetopRubyBlockDelimiter PreProc 103662db673SBram Moolenaarhi def link treetopSemanticPredicateDelimiter PreProc 104662db673SBram Moolenaarhi def link treetopSubclassDeclarationDelimiter PreProc 105662db673SBram Moolenaarhi def link treetopEllipsis Special 106662db673SBram Moolenaar 107662db673SBram Moolenaarlet b:current_syntax = 'treetop' 108662db673SBram Moolenaar 109662db673SBram Moolenaarlet &cpo = s:cpo_save 110662db673SBram Moolenaarunlet s:cpo_save 111