summaryrefslogtreecommitdiffstats
path: root/misc/syntax/cabal.syntax
diff options
context:
space:
mode:
Diffstat (limited to 'misc/syntax/cabal.syntax')
-rw-r--r--misc/syntax/cabal.syntax275
1 files changed, 275 insertions, 0 deletions
diff --git a/misc/syntax/cabal.syntax b/misc/syntax/cabal.syntax
new file mode 100644
index 0000000..a622401
--- /dev/null
+++ b/misc/syntax/cabal.syntax
@@ -0,0 +1,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