forked from aniani/vim
		
	
		
			
	
	
		
			111 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
		
		
			
		
	
	
			111 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
|   | " 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 |