diff options
Diffstat (limited to 'misc/syntax/cabal.syntax')
-rw-r--r-- | misc/syntax/cabal.syntax | 275 |
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 |