2725
|
1 " Vim syntax file
|
|
2 " Language: Treetop
|
|
3 " Maintainer: Nikolai Weibull <now@bitwi.se>
|
|
4 " Latest Revision: 2011-03-14
|
|
5
|
|
6 if exists("b:current_syntax")
|
|
7 finish
|
|
8 endif
|
|
9
|
|
10 let s:cpo_save = &cpo
|
|
11 set cpo&vim
|
|
12
|
|
13 syn keyword treetopTodo
|
|
14 \ contained
|
|
15 \ TODO
|
|
16 \ FIXME
|
|
17 \ XXX
|
|
18 \ NOTE
|
|
19
|
|
20 syn match treetopComment
|
|
21 \ '#.*'
|
|
22 \ display
|
|
23 \ contains=treetopTodo
|
|
24
|
|
25 syn include @treetopRuby syntax/ruby.vim
|
|
26 unlet b:current_syntax
|
|
27
|
|
28 syn keyword treetopKeyword
|
|
29 \ require
|
|
30 \ end
|
|
31 syn region treetopKeyword
|
|
32 \ matchgroup=treetopKeyword
|
|
33 \ start='\<\%(grammar\|include\|module\)\>\ze\s'
|
|
34 \ end='$'
|
|
35 \ transparent
|
|
36 \ oneline
|
|
37 \ keepend
|
|
38 \ contains=@treetopRuby
|
|
39 syn keyword treetopKeyword
|
|
40 \ rule
|
|
41 \ nextgroup=treetopRuleName
|
|
42 \ skipwhite skipnl
|
|
43
|
|
44 syn match treetopGrammarName
|
|
45 \ '\u\w*'
|
|
46 \ contained
|
|
47
|
|
48 syn match treetopRubyModuleName
|
|
49 \ '\u\w*'
|
|
50 \ contained
|
|
51
|
|
52 syn match treetopRuleName
|
|
53 \ '\h\w*'
|
|
54 \ contained
|
|
55
|
|
56 syn region treetopString
|
|
57 \ matchgroup=treetopStringDelimiter
|
|
58 \ start=+"+
|
|
59 \ end=+"+
|
|
60 syn region treetopString
|
|
61 \ matchgroup=treetopStringDelimiter
|
|
62 \ start=+'+
|
|
63 \ end=+'+
|
|
64
|
|
65 syn region treetopCharacterClass
|
|
66 \ matchgroup=treetopCharacterClassDelimiter
|
|
67 \ start=+\[+
|
|
68 \ skip=+\\\]+
|
|
69 \ end=+\]+
|
|
70
|
|
71 syn region treetopRubyBlock
|
|
72 \ matchgroup=treetopRubyBlockDelimiter
|
|
73 \ start=+{+
|
|
74 \ end=+}+
|
|
75 \ contains=@treetopRuby
|
|
76
|
|
77 syn region treetopSemanticPredicate
|
|
78 \ matchgroup=treetopSemanticPredicateDelimiter
|
|
79 \ start=+[!&]{+
|
|
80 \ end=+}+
|
|
81 \ contains=@treetopRuby
|
|
82
|
|
83 syn region treetopSubclassDeclaration
|
|
84 \ matchgroup=treetopSubclassDeclarationDelimiter
|
|
85 \ start=+<+
|
|
86 \ end=+>+
|
|
87 \ contains=@treetopRuby
|
|
88
|
|
89 syn match treetopEllipsis
|
|
90 \ +''+
|
|
91
|
|
92 hi def link treetopTodo Todo
|
|
93 hi def link treetopComment Comment
|
|
94 hi def link treetopKeyword Keyword
|
|
95 hi def link treetopGrammarName Constant
|
|
96 hi def link treetopRubyModuleName Constant
|
|
97 hi def link treetopRuleName Identifier
|
|
98 hi def link treetopString String
|
|
99 hi def link treetopStringDelimiter treetopString
|
|
100 hi def link treetopCharacterClass treetopString
|
|
101 hi def link treetopCharacterClassDelimiter treetopCharacterClass
|
|
102 hi def link treetopRubyBlockDelimiter PreProc
|
|
103 hi def link treetopSemanticPredicateDelimiter PreProc
|
|
104 hi def link treetopSubclassDeclarationDelimiter PreProc
|
|
105 hi def link treetopEllipsis Special
|
|
106
|
|
107 let b:current_syntax = 'treetop'
|
|
108
|
|
109 let &cpo = s:cpo_save
|
|
110 unlet s:cpo_save
|