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