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