# Author : Mikhail S. Pobolovets
# Language : cabal
#
# haskell.syntax is taken as base
#
caseinsensitive
context default
# cabal keywords
# reserved keywords:
#comments
keyword -- color30
# unused symbols
keyword whole _\[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz\] color91
# known fields
keyword whole \[\s\]author color26
keyword whole \[\s\]bug-reports color26
keyword whole \[\s\]buildable color26
keyword whole \[\s\]build-depends color26
keyword whole \[\s\]build-tools color26
keyword whole \[\s\]build-type color26
keyword whole \[\s\]cabal-version color26
keyword whole \[\s\]category color26
keyword whole \[\s\]cc-options color26
keyword whole \[\s\]copyright color26
keyword whole \[\s\]cpp-options color26
keyword whole \[\s\]c-sources color26
keyword whole \[\s\]data-dir color26
keyword whole \[\s\]data-files color26
keyword whole \[\s\]default-language color26
keyword whole \[\s\]default color26
keyword whole \[\s\]description color26
keyword whole \[\s\]exposed-modules color26
keyword whole \[\s\]exposed color26
keyword whole \[\s\]extensions color26
keyword whole \[\s\]extra-lib-dirs color26
keyword whole \[\s\]extra-libraries color26
keyword whole \[\s\]extra-source-files color26
keyword whole \[\s\]extra-tmp-files color26
keyword whole \[\s\]frameworks color26
keyword whole \[\s\]ghc-options color26
keyword whole \[\s\]ghc-prof-options color26
keyword whole \[\s\]ghc-shared-options color26
keyword whole \[\s\]homepage color26
keyword whole \[\s\]hs-source-dirs color26
keyword whole \[\s\]hugs-options color26
keyword whole \[\s\]include-dirs color26
keyword whole \[\s\]includes color26
keyword whole \[\s\]install-includes color26
keyword whole \[\s\]jhc-options color26
keyword whole \[\s\]ld-options color26
keyword whole \[\s\]license-file color26
keyword whole \[\s\]license color26
keyword whole \[\s\]location color26
keyword whole \[\s\]main-is color26
keyword whole \[\s\]maintainer color26
keyword whole \[\s\]name color26
keyword whole \[\s\]nhc98-options color26
keyword whole \[\s\]other-extensions color26
keyword whole \[\s\]other-modules color26
keyword whole \[\s\]package-url color26
keyword whole \[\s\]pkgconfig-depends color26
keyword whole \[\s\]source-repository color26
keyword whole \[\s\]stability color26
keyword whole \[\s\]synopsis color26
keyword whole \[\s\]tag color26
keyword whole \[\s\]tested-with color26
keyword whole \[\s\]type color26
keyword whole \[\s\]version color26
# extended fields
keyword whole x\-\[\-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz\] color26
# version wildcard
keyword whole -any color160
# commandline keys
keyword whole -\[\-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz_0123456789\] color196
# known extensions
keyword whole Arrows color90
keyword whole BangPatterns color90
keyword whole ConstrainedClassMethods color90
keyword whole DeriveDataTypeable color90
keyword whole DisambiguateRecordFields color90
keyword whole EmptyDataDecls color90
keyword whole CPP color90
keyword whole ExistentialQuantification color90
keyword whole ExtendedDefaultRules color90
keyword whole ExtensibleRecords color90
keyword whole FlexibleContexts color90
keyword whole FlexibleInstances color90
keyword whole ForeignFunctionInterface color90
keyword whole FunctionalDependencies color90
keyword whole GADTs color90
keyword whole GeneralizedNewtypeDeriving color90
keyword whole Generics color90
keyword whole HereDocuments color90
keyword whole ImplicitParams color90
keyword whole ImpredicativeTypes color90
keyword whole IncoherentInstances color90
keyword whole KindSignatures color90
keyword whole LiberalTypeSynonyms color90
keyword whole MagicHash color90
keyword whole MultiParamTypeClasses color90
keyword whole NamedFieldPuns color90
keyword whole NewQualifiedOperators color90
keyword whole NoImplicitPrelude color90
keyword whole NoMonomorphismRestriction color90
keyword whole NoMonoPatBinds color90
keyword whole OverlappingInstances color90
keyword whole OverloadedStrings color90
keyword whole PackageImports color90
keyword whole ParallelListComp color90
keyword whole PatternGuards color90
keyword whole PatternSignatures color90
keyword whole PolymorphicComponents color90
keyword whole PostfixOperators color90
keyword whole QuasiQuotes color90
keyword whole Rank2Types color90
keyword whole RankNTypes color90
keyword whole RecordPuns color90
keyword whole RecordWildCards color90
keyword whole RecursiveDo color90
keyword whole RelaxedPolyRec color90
keyword whole RestrictedTypeSynonyms color90
keyword whole ScopedTypeVariables color90
keyword whole StandaloneDeriving color90
keyword whole TemplateHaskell color90
keyword whole TransformListComp color90
keyword whole TypeFamilies color90
keyword whole TypeOperators color90
keyword whole TypeSynonymInstances color90
keyword whole UnboxedTuples color90
keyword whole UndecidableInstances color90
keyword whole UnicodeSyntax color90
keyword whole UnliftedFFITypes color90
keyword whole ViewPatterns color90
# links
keyword http://+ color240
keyword ftp://+ color240
keyword git://+ color240
keyword cvs://+ color240
keyword svn://+ color240
keyword darcs://+ color240
# special text inside of <>, i.e. emails
keyword \<+\> color160
# build types with '\s & \n' hack to remove too stupid highlighting
keyword whole Configure\s color243
keyword whole Configure\n color243
keyword whole Custom\s color243
keyword whole Custom\n color243
keyword whole Make\s color243
keyword whole Make\n color243
keyword whole Simple\n color243
keyword whole Simple\s color243
# licenses
keyword whole AllRightsReserved color243
keyword whole OtherLicense color243
keyword whole PublicDomain color243
keyword whole LGPL color243
keyword whole GPL color243
keyword whole LGPL2 color243
keyword whole GPL2 color243
keyword whole LGPL3 color243
keyword whole GPL3 color243
keyword whole BSD color243
keyword whole BSD3 color243
keyword whole BSD4 color243
keyword whole MIT color243
# compilers
keyword whole GHC color243
keyword whole NHC color243
keyword whole JHC color243
keyword whole HBC color243
keyword whole Helium color243
keyword whole Hugs color243
# special keywords
keyword whole True color243
keyword whole False color243
keyword whole if color243
keyword whole else color243
keyword whole os color243
keyword whole impl color243
keyword whole arch color243
keyword whole linestart \[\s\]executable color19
keyword whole linestart \[\s\]library color19
keyword whole linestart \[\s\]test-suite color19
keyword whole flag color19
keyword whole repo color19
# unboxed (started from upcase)
# keyword whole \{ABCDEFGHIJKLMNOPQRSTUVWXYZ\}\[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz\]# color243
# types/modules
# keyword whole \{ABCDEFGHIJKLMNOPQRSTUVWXYZ\}\[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz\] color243
#digits
keyword whole 0\{xX\}\{0123456789abcdefABCDEF\}\[0123456789abcdefABCDEF\] color88
keyword whole \{0123456789\}\[0123456789\] color88
keyword whole \[0123456789\]\.\{0123456789\}\[0123456789\] color88
keyword whole \{0123456789\}\[0123456789\]\.\[0123456789\] color88
keyword whole \{0123456789\}\[0123456789\]\{eE\}\{0123456789\}\[0123456789\] color88
keyword whole \{0123456789\}\[0123456789\]\{eE\}\{\-\+\}\{0123456789\}\[0123456789\] color88
keyword whole \{0123456789\}\[0123456789\]\.\{0123456789\}\[0123456789\]\{eE\}\{0123456789\}\[0123456789\] color88
keyword whole \{0123456789\}\[0123456789\]\.\{0123456789\}\[0123456789\]\{eE\}\{\-\+\}\{0123456789\}\[0123456789\] color88
# some punctuation characters
keyword whole $ color19
keyword whole ! color243
keyword whole && color243
keyword whole \* color19
keyword whole \+ color19
keyword whole / color19
keyword whole ^ color243
keyword whole || color243
keyword whole | color243
keyword ~ color243
keyword , color17
keyword - color19
keyword : color17
keyword ; color19
keyword = color19
keyword < color19
keyword > color19
keyword { color243
keyword } color243
keyword [ color17
keyword ] color17
keyword ( color17
keyword ) color17
# comments
context exclusive {- -} color30
spellcheck
context exclusive // \n color30
spellcheck
context exclusive \-\- \n color30
spellcheck
context " " color28
spellcheck
keyword \\" color88
keyword %% color88
keyword %\[#0\s-\+,\]\[0123456789\*\]\[.\]\[0123456789\*\]\[L\]\{eEfgGoxX\} color88
keyword %\[0\s-\+,\]\[0123456789\*\]\[.\]\[0123456789\*\]\[hl\]\{diuxX\} color88
keyword %\[hl\]n color88
keyword %\[-\]\[0123456789\*\]\[.\]\[0123456789\*\]s color88
keyword %[*] color88
keyword %c color88
keyword %p color88
keyword \\\{0123\}\{01234567\}\{01234567\} color88
keyword \\\\ color88
keyword \\' color88
keyword \\\{abtnvfr\} color88
# infix binop
context exclusive ` ` color243