VFS: renamed USE_VFS to ENABLE_VFS
[free-mc.git] / syntax / cabal.syntax
blob214401e6ad25352438e74c525e7f13556e313ab6
1 # Author   : Mikhail S. Pobolovets
2 # Language : cabal
4 # haskell.syntax is taken as base
7 context default
9 # cabal keywords
11 #   reserved keywords:
13 #comments
14     keyword -- brown
16 #   unused symbols
17     keyword whole _\[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz\] magenta
19 #   known fields
20     keyword whole author cyan
21     keyword whole bug-reports cyan
22     keyword whole buildable cyan
23     keyword whole build-depends cyan
24     keyword whole build-tools cyan
25     keyword whole build-type cyan
26     keyword whole cabal-version cyan
27     keyword whole category cyan
28     keyword whole cc-options cyan
29     keyword whole copyright cyan
30     keyword whole cpp-options cyan
31     keyword whole c-sources cyan
32     keyword whole data-dir cyan
33     keyword whole data-files cyan
34     keyword whole description cyan
35     keyword whole executable cyan
36     keyword whole exposed-modules cyan
37     keyword whole exposed cyan
38     keyword whole extensions cyan
39     keyword whole extra-lib-dirs cyan
40     keyword whole extra-libraries cyan
41     keyword whole extra-source-files cyan
42     keyword whole extra-tmp-files cyan
43     keyword whole frameworks cyan
44     keyword whole ghc-options cyan
45     keyword whole ghc-prof-options cyan
46     keyword whole ghc-shared-options cyan
47     keyword whole homepage cyan
48     keyword whole hs-source-dirs cyan
49     keyword whole hugs-options cyan
50     keyword whole include-dirs cyan
51     keyword whole includes cyan
52     keyword whole install-includes cyan
53     keyword whole jhc-options cyan
54     keyword whole ld-options cyan
55     keyword whole library cyan
56     keyword whole license-file cyan
57     keyword whole license cyan
58     keyword whole main-is cyan
59     keyword whole maintainer cyan
60     keyword whole name cyan
61     keyword whole nhc98-options cyan
62     keyword whole other-modules cyan
63     keyword whole package-url cyan
64     keyword whole pkgconfig-depends cyan
65     keyword whole stability cyan
66     keyword whole synopsis cyan
67     keyword whole tested-with cyan
68     keyword whole version cyan
70 #   extended fields
71     keyword whole x\-\[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz\] cyan
73 #   version wildcard
74     keyword whole -any red
76 #   commandline keys
77     keyword whole -\[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz_0123456789\] brightred
79 #   known extensions
80     keyword whole Arrows                      brightmagenta
81     keyword whole BangPatterns                brightmagenta
82     keyword whole ConstrainedClassMethods     brightmagenta
83     keyword whole DeriveDataTypeable          brightmagenta
84     keyword whole DisambiguateRecordFields    brightmagenta
85     keyword whole EmptyDataDecls              brightmagenta
86     keyword whole CPP                         brightmagenta
87     keyword whole ExistentialQuantification   brightmagenta
88     keyword whole ExtendedDefaultRules        brightmagenta
89     keyword whole ExtensibleRecords           brightmagenta
90     keyword whole FlexibleContexts            brightmagenta
91     keyword whole FlexibleInstances           brightmagenta
92     keyword whole ForeignFunctionInterface    brightmagenta
93     keyword whole FunctionalDependencies      brightmagenta
94     keyword whole GADTs                       brightmagenta
95     keyword whole GeneralizedNewtypeDeriving  brightmagenta
96     keyword whole Generics                    brightmagenta
97     keyword whole HereDocuments               brightmagenta
98     keyword whole ImplicitParams              brightmagenta
99     keyword whole ImpredicativeTypes          brightmagenta
100     keyword whole IncoherentInstances         brightmagenta
101     keyword whole KindSignatures              brightmagenta
102     keyword whole LiberalTypeSynonyms         brightmagenta
103     keyword whole MagicHash                   brightmagenta
104     keyword whole MultiParamTypeClasses       brightmagenta
105     keyword whole NamedFieldPuns              brightmagenta
106     keyword whole NewQualifiedOperators       brightmagenta
107     keyword whole NoImplicitPrelude           brightmagenta
108     keyword whole NoMonomorphismRestriction   brightmagenta
109     keyword whole NoMonoPatBinds              brightmagenta
110     keyword whole OverlappingInstances        brightmagenta
111     keyword whole OverloadedStrings           brightmagenta
112     keyword whole PackageImports              brightmagenta
113     keyword whole ParallelListComp            brightmagenta
114     keyword whole PatternGuards               brightmagenta
115     keyword whole PatternSignatures           brightmagenta
116     keyword whole PolymorphicComponents       brightmagenta
117     keyword whole PostfixOperators            brightmagenta
118     keyword whole QuasiQuotes                 brightmagenta
119     keyword whole Rank2Types                  brightmagenta
120     keyword whole RankNTypes                  brightmagenta
121     keyword whole RecordPuns                  brightmagenta
122     keyword whole RecordWildCards             brightmagenta
123     keyword whole RecursiveDo                 brightmagenta
124     keyword whole RelaxedPolyRec              brightmagenta
125     keyword whole RestrictedTypeSynonyms      brightmagenta
126     keyword whole ScopedTypeVariables         brightmagenta
127     keyword whole StandaloneDeriving          brightmagenta
128     keyword whole TemplateHaskell             brightmagenta
129     keyword whole TransformListComp           brightmagenta
130     keyword whole TypeFamilies                brightmagenta
131     keyword whole TypeOperators               brightmagenta
132     keyword whole TypeSynonymInstances        brightmagenta
133     keyword whole UnboxedTuples               brightmagenta
134     keyword whole UndecidableInstances        brightmagenta
135     keyword whole UnicodeSyntax               brightmagenta
136     keyword whole UnliftedFFITypes            brightmagenta
137     keyword whole ViewPatterns                brightmagenta
139 #   links
140     keyword http://+  blue
141     keyword ftp://+   blue
142     keyword git://+   blue
143     keyword cvs://+   blue
144     keyword svn://+   blue
145     keyword darcs://+ blue
146 #   emails
147     keyword \<+\>     red
149 #   build types
150     keyword whole Configure white
151     keyword whole Custom    white
152     keyword whole Make      white
153 #   with hack
154     keyword whole Simple\n  white
155     keyword whole Simple\s  white
157 #   licenses
158     keyword whole AllRightsReserved white
159     keyword whole OtherLicense      white
160     keyword whole PublicDomain      white
161     keyword whole LGPL              white
162     keyword whole GPL               white
163     keyword whole LGPL2             white
164     keyword whole GPL2              white
165     keyword whole LGPL3             white
166     keyword whole GPL3              white
167     keyword whole BSD               white
168     keyword whole BSD3              white
169     keyword whole BSD4              white
170     keyword whole MIT               white
172 #   compillers
173     keyword whole GHC            white
174     keyword whole NHC            white
175     keyword whole JHC            white
176     keyword whole HBC            white
177     keyword whole Helium         white
178     keyword whole Hugs           white
180 #   types
181     keyword whole True  white
182     keyword whole False white
184 #   unboxed (started from upcase)
185 #    keyword whole \{ABCDEFGHIJKLMNOPQRSTUVWXYZ\}\[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz\]# white
186 #   types/modules
187 #    keyword whole \{ABCDEFGHIJKLMNOPQRSTUVWXYZ\}\[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz\] white
189 #digits
190     keyword whole 0\{xX\}\{0123456789abcdefABCDEF\}\[0123456789abcdefABCDEF\]       brightgreen
191     keyword whole \{0123456789\}\[0123456789\]      brightgreen
192     keyword whole \[0123456789\]\.\{0123456789\}\[0123456789\]      brightgreen
193     keyword whole \{0123456789\}\[0123456789\]\.\[0123456789\]      brightgreen
194     keyword whole \{0123456789\}\[0123456789\]\{eE\}\{0123456789\}\[0123456789\]    brightgreen
195     keyword whole \{0123456789\}\[0123456789\]\{eE\}\{\-\+\}\{0123456789\}\[0123456789\]    brightgreen
196     keyword whole \{0123456789\}\[0123456789\]\.\{0123456789\}\[0123456789\]\{eE\}\{0123456789\}\[0123456789\]      brightgreen
197     keyword whole \{0123456789\}\[0123456789\]\.\{0123456789\}\[0123456789\]\{eE\}\{\-\+\}\{0123456789\}\[0123456789\]      brightgreen
200 # some punctuation characters
201     keyword whole $ yellow
202     keyword whole ! white
203     keyword whole && white
204     keyword whole \* yellow
205     keyword whole \+ yellow
206     keyword whole / yellow
207     keyword whole ^ white
208     keyword whole || white
209     keyword whole | white
211     keyword ~ white
212     keyword , brightcyan
213     keyword - yellow
214     keyword : brightcyan
215     keyword ; yellow
216     keyword = yellow
217     keyword < yellow
218     keyword > yellow
219     keyword { white
220     keyword } white
221     keyword [ brightcyan
222     keyword ] brightcyan
223     keyword ( brightcyan
224     keyword ) brightcyan
226 # comments
227 context exclusive /\* \*/ brown
228     spellcheck
230 context exclusive {- -} brown
231     spellcheck
233 context exclusive // \n brown
234     spellcheck
236 context exclusive \-\- \n brown
237     spellcheck
239 context " " green
240     spellcheck
242     keyword \\" brightgreen
243     keyword %% brightgreen
244     keyword %\[#0\s-\+,\]\[0123456789\*\]\[.\]\[0123456789\*\]\[L\]\{eEfgGoxX\} brightgreen
245     keyword %\[0\s-\+,\]\[0123456789\*\]\[.\]\[0123456789\*\]\[hl\]\{diuxX\} brightgreen
246     keyword %\[hl\]n brightgreen
247     keyword %\[-\]\[0123456789\*\]\[.\]\[0123456789\*\]s brightgreen
248     keyword %[*] brightgreen
249     keyword %c brightgreen
250     keyword %p brightgreen
251     keyword \\\{0123\}\{01234567\}\{01234567\} brightgreen
252     keyword \\\\ brightgreen
253     keyword \\' brightgreen
254     keyword \\\{abtnvfr\} brightgreen
256 # infix binop
257 context exclusive ` ` white