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