]> gitweb.factorcode.org Git - factor.git/blob - misc/factor.vim.fgen
6c14bffcfba4d4ffad1785c7a33745be42aec761
[factor.git] / misc / factor.vim.fgen
1 <%
2 USING: accessors io kernel multiline prettyprint sequences sorting vocabs ;
3 IN: factor.vim.fgen
4
5 : print-keywords ( vocab -- )
6     vocab-words [ name>> ] sort-with [
7         "syn keyword factorKeyword " write
8         [ bl ] [ pprint ] interleave nl
9     ] when* ;
10
11 %>
12 " Vim syntax file
13 " Language: Factor
14 " Maintainer: Alex Chapman <chapman.alex@gmail.com>
15 " Last Change: 2020 May 29
16 " To run: USING: html.templates html.templates.fhtml ; "resource:misc/factor.vim.fgen" <fhtml> call-template
17
18 " For version 5.x: Clear all syntax items
19 " For version 6.x: Quit when a syntax file was already loaded
20 if version < 600
21     syntax clear
22 elseif exists("b:current_syntax")
23     finish
24 endif
25
26 " Factor is case sensitive.
27 syn case match
28
29 " Make all of these characters part of a word (useful for skipping over words with w, e, and b)
30 if version >= 600
31     setlocal iskeyword=!,@,33-35,%,$,38-64,A-Z,91-96,a-z,123-126,128-255
32 else
33     set iskeyword=!,@,33-35,%,$,38-64,A-Z,91-96,a-z,123-126,128-255
34 endif
35
36 syn cluster factorCluster contains=factorComment,factorFrySpecifier,factorKeyword,factorRepeat,factorConditional,factorBoolean,factorBreakpoint,factorDeclaration,factorCallQuotation,factorExecute,factorCallNextMethod,factorString,factorTriString,factorSbuf,@factorNumber,@factorNumErr,factorDelimiter,factorChar,factorBackslash,factorMBackslash,factorLiteral,factorLiteralBlock,@factorWordOps,factorAlien,factorSlot,factorTuple,factorError,factorStruct
37
38 syn match factorTodo /\(TODO\|FIXME\|XXX\):\=/ contained
39 syn match factorComment /\<#\?!\>.*/ contains=factorTodo,@Spell
40 syn match factorShebang /\%\^#!.*/ display
41 syn match factorShebangErr /\%\^#!\S\+/
42
43 syn cluster factorDefnContents contains=@factorCluster,factorStackEffect,factorLiteralStackEffect,factorArray0,factorQuotation0
44 syn cluster factorGenericContents contains=factorComment,factorStackEffect
45
46 syn region factorDefn matchgroup=factorDefnDelims start=/\<\(SYNTAX\|\(MACRO\|MEMO\|TYPED\)\?:\?\):\s\+\S\+\>/ end=/\<;\>/ contains=@factorDefnContents
47 syn region factorMethod matchgroup=factorMethodDelims start=/\<M::\?\s\+\S\+\s\+\S\+\>/ end=/\<;\>/ contains=@factorDefnContents
48 syn region factorGeneric matchgroup=factorGenericDelims start=/\<\(GENERIC\|MATH\|PRIMITIVE\):\s\+\S\+\>/ end=/$/ contains=@factorGenericContents
49 syn region factorGenericN matchgroup=factorGenericNDelims start=/\<GENERIC#:\s\+\S\+\s\+\d\+\>/ end=/$/ contains=@factorGenericContents
50
51 syn region factorPrivateDefn matchgroup=factorPrivateDefnDelims start=/\<\(SYNTAX\|\(MACRO\|MEMO\|TYPED\)\?:\?\):\s\+\S\+\>/ end=/\<;\>/ contains=@factorDefnContents contained
52 syn region factorPrivateMethod matchgroup=factorPrivateMethodDelims start=/\<M::\?\s\+\S\+\s\+\S\+\>/ end=/\<;\>/ contains=@factorDefnContents contained
53 syn region factorPGeneric matchgroup=factorPGenericDelims start=/\<\(GENERIC\|MATH\|PRIMITIVE\):\s\+\S\+\>/ end=/$/ contains=@factorGenericContents contained
54 syn region factorPGenericN matchgroup=factorPGenericNDelims start=/\<GENERIC#:\s\+\S\+\s\+\d\+\>/ end=/$/ contains=@factorGenericContents contained
55
56 syn region None matchgroup=factorPrivate start=/\<<PRIVATE\>/ end=/\<PRIVATE>\>/ contains=@factorDefnContents,factorPrivateDefn,factorPrivateMethod,factorPGeneric,factorPGenericN
57
58
59 syn keyword factorBoolean f t
60 syn keyword factorBreakpoint B
61 syn keyword factorFrySpecifier @ _ contained
62 syn keyword factorDeclaration delimiter deprecated final flushable foldable inline recursive
63 syn match factorCallQuotation /\<call(\s\+\(\S*\s\+\)*--\(\s\+\S*\)*\s\+)\>/ contained contains=factorStackEffect
64 syn match factorExecute /\<execute(\s\+\(\S*\s\+\)*--\(\s\+\S*\)*\s\+)\>/ contained contains=factorStackEffect
65 syn keyword factorCallNextMethod call-next-method
66
67 <%
68
69 ! uncomment this if you want all words from all vocabularies highlighted. Note
70 ! that this changes factor.vim from around 8k to around 100k (and is a bit
71 ! broken)
72
73 ! vocabs [ print-keywords ] each
74
75     {
76         "kernel" "assocs" "combinators" "math" "sequences"
77         "namespaces" "arrays" "io" "strings" "vectors"
78         "continuations"
79     } [ print-keywords ] each
80 %>
81
82 syn cluster factorReal          contains=factorInt,factorFloat,factorPosRatio,factorNegRatio,factorBinary,factorHex,factorOctal
83 syn cluster factorNumber        contains=@factorReal,factorComplex
84 syn cluster factorNumErr        contains=factorBinErr,factorHexErr,factorOctErr
85 syn match   factorInt           /\<[+-]\=[0-9]\([0-9,]*[0-9]\)\?\([eE]\([+-]\)\?[0-9]\+\)\?\>/
86 syn match   factorFloat         /\<[+-]\=\([0-9,]*[0-9]\)\?\(\.\(\([0-9,]*[0-9]\+\)\?\([eE]\([+-]\)\?[0-9]\+\)\?\)\?\)\?\>/
87 syn match   factorPosRatio      /\<+\=[0-9]\([0-9,]*[0-9]\)\?\(+[0-9]\([0-9,]*[0-9]\+\)\?\)\?\/-\=[0-9]\([0-9,]*[0-9]\+\)\?\.\?\>/
88 syn match   factorNegRatio      /\<\-[0-9]\([0-9,]*[0-9]\)\?\(\-[0-9]\([0-9,]*[0-9]\+\)\?\)\?\/-\=[0-9]\([0-9,]*[0-9]\+\)\?\.\?\>/
89 syn region  factorComplex       start=/\<C{\>/ end=/\<}\>/ contains=@factorReal
90 syn match   factorBinErr        /\<[+-]\=0b[01,]*[^01 ]\S*\>/
91 syn match   factorBinary        /\<[+-]\=0b[01,]\+\>/
92 syn match   factorHexErr        /\<[+-]\=0x\(,\S*\|\S*,\|[-0-9a-fA-Fp,]*[^-0-9a-fA-Fp, ]\S*\)\>/
93 syn match   factorHex           /\<[+-]\=0x[0-9a-fA-F]\([0-9a-fA-F,]*[0-9a-fA-F]\)\?\(\.[0-9a-fA-F]\([0-9a-fA-F,]*[0-9a-fA-F]\)\?\)\?\(p-\=[0-9]\([0-9,]*[0-9]\)\?\)\?\>/
94 syn match   factorOctErr        /\<[+-]\=0o\(,\S*\|\S*,\|[0-7,]*[^0-7, ]\S*\)\>/
95 syn match   factorOctal         /\<[+-]\=0o[0-7,]\+\>/
96 syn match   factorNan           /\<NAN:\s\+[0-9a-fA-F]\([0-9a-fA-F,]*[0-9a-fA-F]\)\?\>/ contains=factorComment
97
98 syn match   factorIn            /\<IN:\s\+\S\+\>/    contains=factorComment
99 syn match   factorUse           /\<USE:\s\+\S\+\>/   contains=factorComment
100 syn match   factorUnuse         /\<UNUSE:\s\+\S\+\>/ contains=factorComment
101
102 syn match   factorChar          /\<CHAR:\s\+\S\+\>/
103
104 syn match   factorBackslash     /\<\\\>\s\+\S\+\>/            contains=factorComment
105 syn match   factorMBackslash    /\<M\\\>\s\+\S\+\s\+\S\+\>/   contains=factorComment
106 syn match   factorLiteral       /\<\$\>\s\+\S\+\>/            contains=factorComment
107 syn region  factorLiteralBlock  start=/\<\$\[\>/ end=/\<\]\>/ contains=factorComment
108
109 syn region  factorUsing         start=/\<USING:\>/       end=/;/                   contains=factorComment
110 syn match   factorQualified     /\<QUALIFIED:\s\+\S\+\>/                           contains=factorComment
111 syn match   factorQualifiedWith /\<QUALIFIED-WITH:\s\+\S\+\s\+\S\+\>/              contains=factorComment
112 syn region  factorExclude       start=/\<EXCLUDE:\>/     end=/;/                   contains=factorComment
113 syn region  factorFrom          start=/\<FROM:\>/        end=/;/                   contains=factorComment
114 syn match   factorRename        /\<RENAME:\s\+\S\+\s\+\S\+\s=>\s\+\S\+\>/          contains=factorComment
115 syn region  factorSingletons    start=/\<SINGLETONS:\>/  end=/;/                   contains=factorComment
116 syn match   factorSymbol        /\<SYMBOL:\s\+\S\+\>/                              contains=factorComment
117 syn region  factorSymbols       start=/\<SYMBOLS:\>/     end=/;/                   contains=factorComment
118 syn region  factorConstructor2  start=/\<CONSTRUCTOR:\?/ end=/;/                   contains=factorComment
119 syn region  factorIntersection  start=/\<INTERSECTION:\>/ end=/\<;\>/              contains=factorComment
120 syn region  factorTuple         start=/\<\(TUPLE\|BUILTIN\):\>/ end=/\<;\>/        contains=factorComment
121 syn region  factorError         start=/\<ERROR:\>/ end=/\<;\>/                     contains=factorComment
122 syn region  factorUnion         start=/\<UNION:\>/ end=/\<;\>/                     contains=factorComment
123 syn region  factorStruct        start=/\<\(UNION-STRUCT:\|STRUCT:\)\>/ end=/\<;\>/ contains=factorComment
124
125 syn match   factorConstant      /\<CONSTANT:\s\+\S\+\>/         contains=factorComment
126 syn match   factorAlias         /\<ALIAS:\s\+\S\+\s\+\S\+\>/    contains=factorComment
127 syn match   factorSingleton     /\<SINGLETON:\s\+\S\+\>/        contains=factorComment
128 syn match   factorPostpone      /\<POSTPONE:\s\+\S\+\>/         contains=factorComment
129 syn match   factorDefer         /\<DEFER:\s\+\S\+\>/            contains=factorComment
130 syn match   factorForget        /\<FORGET:\s\+\S\+\>/           contains=factorComment
131 syn match   factorMixin         /\<MIXIN:\s\+\S\+\>/            contains=factorComment
132 syn match   factorInstance      /\<INSTANCE:\s\+\S\+\s\+\S\+\>/ contains=factorComment
133 syn match   factorHook          /\<HOOK:\s\+\S\+\s\+\S\+\>/     contains=factorComment nextgroup=factorStackEffect skipwhite skipempty
134 syn match   factorMain          /\<MAIN:\s\+\S\+\>/             contains=factorComment
135 syn match   factorConstructor   /\<C:\s\+\S\+\s\+\S\+\>/        contains=factorComment
136 syn match   factorAlien         /\<ALIEN:\s\+[0-9a-fA-F]\([0-9a-fA-F,]*[0-9a-fA-F]\)\?\>/ contains=factorComment
137 syn match   factorSlot          /\<SLOT:\s\+\S\+\>/             contains=factorComment
138
139 syn cluster factorWordOps       contains=factorConstant,factorAlias,factorSingleton,factorSingletons,factorSymbol,factorSymbols,factorPostpone,factorDefer,factorForget,factorMixin,factorInstance,factorHook,factorMain,factorConstructor
140
141 "TODO:
142 "misc:
143 " HELP:
144 " ARTICLE:
145 "literals:
146 " PRIMITIVE:
147
148 "C interface:
149 " C-ENUM:
150 " FUNCTION:
151 " TYPEDEF:
152 " LIBRARY:
153 "#\ "
154
155 syn match factorEscape /\\\([\\astnrbvf0e\"]\|u\x\{6}\|u{\S\+}\|x\x\{2}\)/ contained display
156 syn region factorString start=/\<"/ skip=/\\"/ end=/"/ contains=factorEscape
157 syn region factorTriString start=/\<"""/ skip=/\\"/ end=/"""/ contains=factorEscape
158 syn region factorSbuf start=/\<[-a-zA-Z0-9]\+"\>/ skip=/\\"/ end=/"/
159
160 syn region factorMultiString matchgroup=factorMultiStringDelims start=/\<STRING:\s\+\S\+\>/ end=/^;$/ contains=factorMultiStringContents
161 syn match factorMultiStringContents /.*/ contained
162
163 "syn match factorStackEffectErr /\<)\>/
164 "syn region factorStackEffectErr start=/\<(\>/ end=/\<)\>/
165 "syn region factorStackEffect start=/\<(\>/ end=/\<)\>/ contained
166 syn match factorStackEffect /(\s\+\(\S*\s\+\)*--\(\s\+\S*\)*\s\+)\>/ contained contains=factorComment,factorStackDelims,factorStackItems,factorStackVariables,factorCallExecuteDelim
167 syn match factorLiteralStackEffect /((\s\+\(\S*\s\+\)*--\(\s\+\S*\)*\s\+))\>/ contained contains=factorComment,factorStackDelims,factorStackItems,factorStackVariables,factorCallExecuteDelim
168 syn match factorStackVariables contained "\<\.\.\S\+\>"
169 syn match factorStackItems contained "\<\(\.\.\)\@!\S\+\>"
170 syn keyword factorStackDelims contained ( ) (( )) --
171 syn match factorCallExecuteDelim contained /(\s/
172
173 "adapted from lisp.vim
174 if exists("g:factor_norainbow")
175     syn region factorQuotation matchgroup=factorDelimiter start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/ matchgroup=factorDelimiter end=/\<\]\>/ contains=ALL
176 else
177     syn region factorQuotation0           matchgroup=hlLevel0 start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/  end=/\<\]\>/ contains=@factorCluster,factorQuotation1,factorArray1
178     syn region factorQuotation1 contained matchgroup=hlLevel1 start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/  end=/\<\]\>/ contains=@factorCluster,factorQuotation2,factorArray2
179     syn region factorQuotation2 contained matchgroup=hlLevel2 start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/  end=/\<\]\>/ contains=@factorCluster,factorQuotation3,factorArray3
180     syn region factorQuotation3 contained matchgroup=hlLevel3 start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/  end=/\<\]\>/ contains=@factorCluster,factorQuotation4,factorArray4
181     syn region factorQuotation4 contained matchgroup=hlLevel4 start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/  end=/\<\]\>/ contains=@factorCluster,factorQuotation5,factorArray5
182     syn region factorQuotation5 contained matchgroup=hlLevel5 start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/  end=/\<\]\>/ contains=@factorCluster,factorQuotation6,factorArray6
183     syn region factorQuotation6 contained matchgroup=hlLevel6 start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/  end=/\<\]\>/ contains=@factorCluster,factorQuotation7,factorArray7
184     syn region factorQuotation7 contained matchgroup=hlLevel7 start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/  end=/\<\]\>/ contains=@factorCluster,factorQuotation8,factorArray8
185     syn region factorQuotation8 contained matchgroup=hlLevel8 start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/  end=/\<\]\>/ contains=@factorCluster,factorQuotation9,factorArray9
186     syn region factorQuotation9 contained matchgroup=hlLevel9 start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/  end=/\<\]\>/ contains=@factorCluster,factorQuotation0,factorArray0
187 endif
188
189 if exists("g:factor_norainbow")
190     syn region factorArray    matchgroup=factorDelimiter start=/\<\(\$\|[-a-zA-Z0-9]\+\)\?{\>/  matchgroup=factorDelimiter end=/\<}\>/ contains=ALL
191 else
192     syn region factorArray0           matchgroup=hlLevel0 start=/\<\(\$\|[-a-zA-Z0-9]\+\)\?{\>/ end=/\<}\>/ contains=@factorCluster,factorArray1,factorQuotation1
193     syn region factorArray1 contained matchgroup=hlLevel1 start=/\<\(\$\|[-a-zA-Z0-9]\+\)\?{\>/ end=/\<}\>/ contains=@factorCluster,factorArray2,factorQuotation2
194     syn region factorArray2 contained matchgroup=hlLevel2 start=/\<\(\$\|[-a-zA-Z0-9]\+\)\?{\>/ end=/\<}\>/ contains=@factorCluster,factorArray3,factorQuotation3
195     syn region factorArray3 contained matchgroup=hlLevel3 start=/\<\(\$\|[-a-zA-Z0-9]\+\)\?{\>/ end=/\<}\>/ contains=@factorCluster,factorArray4,factorQuotation4
196     syn region factorArray4 contained matchgroup=hlLevel4 start=/\<\(\$\|[-a-zA-Z0-9]\+\)\?{\>/ end=/\<}\>/ contains=@factorCluster,factorArray5,factorQuotation5
197     syn region factorArray5 contained matchgroup=hlLevel5 start=/\<\(\$\|[-a-zA-Z0-9]\+\)\?{\>/ end=/\<}\>/ contains=@factorCluster,factorArray6,factorQuotation6
198     syn region factorArray6 contained matchgroup=hlLevel6 start=/\<\(\$\|[-a-zA-Z0-9]\+\)\?{\>/ end=/\<}\>/ contains=@factorCluster,factorArray7,factorQuotation7
199     syn region factorArray7 contained matchgroup=hlLevel7 start=/\<\(\$\|[-a-zA-Z0-9]\+\)\?{\>/ end=/\<}\>/ contains=@factorCluster,factorArray8,factorQuotation8
200     syn region factorArray8 contained matchgroup=hlLevel8 start=/\<\(\$\|[-a-zA-Z0-9]\+\)\?{\>/ end=/\<}\>/ contains=@factorCluster,factorArray9,factorQuotation9
201     syn region factorArray9 contained matchgroup=hlLevel9 start=/\<\(\$\|[-a-zA-Z0-9]\+\)\?{\>/ end=/\<}\>/ contains=@factorCluster,factorArray0,factorQuotation0
202 endif
203
204 syn match factorBracketErr /\<\]\>/
205 syn match factorBracketErr /\<}\>/
206
207 syn sync lines=100
208
209 if version >= 508 || !exists("did_factor_syn_inits")
210     if version <= 508
211         let did_factor_syn_inits = 1
212         command -nargs=+ HiLink hi link <args>
213     else
214         command -nargs=+ HiLink hi def link <args>
215     endif
216
217     HiLink factorComment                Comment
218     HiLink factorShebang                PreProc
219     HiLink factorShebangErr             Error
220     HiLink factorStackEffect            Typedef
221     HiLink factorStackDelims            Delimiter
222     HiLink factorCallExecuteDelim       Delimiter
223     HiLink factorStackVariables         Special
224     HiLink factorStackItems             Identifier
225     HiLink factorLiteralStackEffect     Typedef
226     HiLink factorTodo                   Todo
227     HiLink factorInclude                Include
228     HiLink factorRepeat                 Repeat
229     HiLink factorConditional            Conditional
230     HiLink factorKeyword                Keyword
231     HiLink factorCallQuotation          Keyword
232     HiLink factorExecute                Keyword
233     HiLink factorCallNextMethod         Keyword
234     HiLink factorOperator               Operator
235     HiLink factorFrySpecifier           Operator
236     HiLink factorBoolean                Boolean
237     HiLink factorBreakpoint             Debug
238     HiLink factorDefnDelims             Typedef
239     HiLink factorMethodDelims           Typedef
240     HiLink factorGenericDelims          Typedef
241     HiLink factorGenericNDelims         Typedef
242     HiLink factorConstructor            Typedef
243     HiLink factorConstructor2           Typedef
244     HiLink factorPrivate                Special
245     HiLink factorPrivateDefnDelims      Special
246     HiLink factorPrivateMethodDelims    Special
247     HiLink factorPGenericDelims         Special
248     HiLink factorPGenericNDelims        Special
249     HiLink factorEscape                 SpecialChar
250     HiLink factorString                 String
251     HiLink factorTriString              String
252     HiLink factorSbuf                   String
253     HiLink factorMultiStringContents    String
254     HiLink factorMultiStringDelims      Typedef
255     HiLink factorBracketErr             Error
256     HiLink factorComplex                Number
257     HiLink factorPosRatio               Number
258     HiLink factorNegRatio               Number
259     HiLink factorBinary                 Number
260     HiLink factorBinErr                 Error
261     HiLink factorHex                    Number
262     HiLink factorHexErr                 Error
263     HiLink factorNan                    Number
264     HiLink factorOctal                  Number
265     HiLink factorOctErr                 Error
266     HiLink factorFloat                  Float
267     HiLink factorInt                    Number
268     HiLink factorUsing                  Include
269     HiLink factorQualified              Include
270     HiLink factorQualifiedWith          Include
271     HiLink factorExclude                Include
272     HiLink factorFrom                   Include
273     HiLink factorRename                 Include
274     HiLink factorUse                    Include
275     HiLink factorUnuse                  Include
276     HiLink factorIn                     Define
277     HiLink factorChar                   Character
278     HiLink factorDelimiter              Delimiter
279     HiLink factorBackslash              Special
280     HiLink factorMBackslash             Special
281     HiLink factorLiteral                Special
282     HiLink factorLiteralBlock           Special
283     HiLink factorDeclaration            Typedef
284     HiLink factorSymbol                 Define
285     HiLink factorSymbols                Define
286     HiLink factorConstant               Define
287     HiLink factorAlias                  Define
288     HiLink factorSingleton              Define
289     HiLink factorSingletons             Define
290     HiLink factorMixin                  Typedef
291     HiLink factorInstance               Typedef
292     HiLink factorHook                   Typedef
293     HiLink factorMain                   Define
294     HiLink factorPostpone               Define
295     HiLink factorDefer                  Define
296     HiLink factorForget                 Define
297     HiLink factorAlien                  Define
298     HiLink factorSlot                   Define
299     HiLink factorIntersection           Typedef
300     HiLink factorTuple                  Typedef
301     HiLink factorError                  Typedef
302     HiLink factorUnion                  Typedef
303     HiLink factorStruct                 Typedef
304
305     if &bg == "dark"
306         hi   hlLevel0 ctermfg=red         guifg=red1
307         hi   hlLevel1 ctermfg=yellow      guifg=orange1
308         hi   hlLevel2 ctermfg=green       guifg=yellow1
309         hi   hlLevel3 ctermfg=cyan        guifg=greenyellow
310         hi   hlLevel4 ctermfg=magenta     guifg=green1
311         hi   hlLevel5 ctermfg=red         guifg=springgreen1
312         hi   hlLevel6 ctermfg=yellow      guifg=cyan1
313         hi   hlLevel7 ctermfg=green       guifg=slateblue1
314         hi   hlLevel8 ctermfg=cyan        guifg=magenta1
315         hi   hlLevel9 ctermfg=magenta     guifg=purple1
316     else
317         hi   hlLevel0 ctermfg=red         guifg=red3
318         hi   hlLevel1 ctermfg=darkyellow  guifg=orangered3
319         hi   hlLevel2 ctermfg=darkgreen   guifg=orange2
320         hi   hlLevel3 ctermfg=blue        guifg=yellow3
321         hi   hlLevel4 ctermfg=darkmagenta guifg=olivedrab4
322         hi   hlLevel5 ctermfg=red         guifg=green4
323         hi   hlLevel6 ctermfg=darkyellow  guifg=paleturquoise3
324         hi   hlLevel7 ctermfg=darkgreen   guifg=deepskyblue4
325         hi   hlLevel8 ctermfg=blue        guifg=darkslateblue
326         hi   hlLevel9 ctermfg=darkmagenta guifg=darkviolet
327     endif
328
329     delcommand HiLink
330 endif
331
332 let b:current_syntax = "factor"
333
334 " vim:set ft=vim sw=4: