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