home *** CD-ROM | disk | FTP | other *** search
- " Vim syntax file
- " Language: Treetop
- " Maintainer: Nikolai Weibull <now@bitwi.se>
- " Latest Revision: 2011-03-14
-
- if exists("b:current_syntax")
- finish
- endif
-
- let s:cpo_save = &cpo
- set cpo&vim
-
- syn keyword treetopTodo
- \ contained
- \ TODO
- \ FIXME
- \ XXX
- \ NOTE
-
- syn match treetopComment
- \ '#.*'
- \ display
- \ contains=treetopTodo
-
- syn include @treetopRuby syntax/ruby.vim
- unlet b:current_syntax
-
- syn keyword treetopKeyword
- \ require
- \ end
- syn region treetopKeyword
- \ matchgroup=treetopKeyword
- \ start='\<\%(grammar\|include\|module\)\>\ze\s'
- \ end='$'
- \ transparent
- \ oneline
- \ keepend
- \ contains=@treetopRuby
- syn keyword treetopKeyword
- \ rule
- \ nextgroup=treetopRuleName
- \ skipwhite skipnl
-
- syn match treetopGrammarName
- \ '\u\w*'
- \ contained
-
- syn match treetopRubyModuleName
- \ '\u\w*'
- \ contained
-
- syn match treetopRuleName
- \ '\h\w*'
- \ contained
-
- syn region treetopString
- \ matchgroup=treetopStringDelimiter
- \ start=+"+
- \ end=+"+
- syn region treetopString
- \ matchgroup=treetopStringDelimiter
- \ start=+'+
- \ end=+'+
-
- syn region treetopCharacterClass
- \ matchgroup=treetopCharacterClassDelimiter
- \ start=+\[+
- \ skip=+\\\]+
- \ end=+\]+
-
- syn region treetopRubyBlock
- \ matchgroup=treetopRubyBlockDelimiter
- \ start=+{+
- \ end=+}+
- \ contains=@treetopRuby
-
- syn region treetopSemanticPredicate
- \ matchgroup=treetopSemanticPredicateDelimiter
- \ start=+[!&]{+
- \ end=+}+
- \ contains=@treetopRuby
-
- syn region treetopSubclassDeclaration
- \ matchgroup=treetopSubclassDeclarationDelimiter
- \ start=+<+
- \ end=+>+
- \ contains=@treetopRuby
-
- syn match treetopEllipsis
- \ +''+
-
- hi def link treetopTodo Todo
- hi def link treetopComment Comment
- hi def link treetopKeyword Keyword
- hi def link treetopGrammarName Constant
- hi def link treetopRubyModuleName Constant
- hi def link treetopRuleName Identifier
- hi def link treetopString String
- hi def link treetopStringDelimiter treetopString
- hi def link treetopCharacterClass treetopString
- hi def link treetopCharacterClassDelimiter treetopCharacterClass
- hi def link treetopRubyBlockDelimiter PreProc
- hi def link treetopSemanticPredicateDelimiter PreProc
- hi def link treetopSubclassDeclarationDelimiter PreProc
- hi def link treetopEllipsis Special
-
- let b:current_syntax = 'treetop'
-
- let &cpo = s:cpo_save
- unlet s:cpo_save
-