summaryrefslogtreecommitdiffstats
path: root/syntax/cabal.vim
diff options
context:
space:
mode:
Diffstat (limited to 'syntax/cabal.vim')
-rw-r--r--syntax/cabal.vim123
1 files changed, 123 insertions, 0 deletions
diff --git a/syntax/cabal.vim b/syntax/cabal.vim
index 7a48a638..9668f73f 100644
--- a/syntax/cabal.vim
+++ b/syntax/cabal.vim
@@ -1,3 +1,126 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1
+
+" Vim syntax file
+" Language: Haskell Cabal Build file
+" Maintainer: Vincent Berthoux <twinside@gmail.com>
+" File Types: .cabal
+" Last Change: 2010 May 18
+" v1.3: Updated to the last version of cabal
+" Added more highlighting for cabal function, true/false
+" and version number. Also added missing comment highlighting.
+" Cabal known compiler are highlighted too.
+"
+" V1.2: Added cpp-options which was missing. Feature implemented
+" by GHC, found with a GHC warning, but undocumented.
+" Whatever...
+"
+" v1.1: Fixed operator problems and added ftdetect file
+" (thanks to Sebastian Schwarz)
+"
+" v1.0: Cabal syntax in vimball format
+" (thanks to Magnus Therning)
+
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
+ finish
+endif
+
+syn keyword cabalCategory Library library Executable executable Flag flag
+syn keyword cabalCategory source-repository Source-Repository
+
+syn keyword cabalConditional if else
+syn match cabalOperator "&&\|||\|!\|==\|>=\|<="
+syn keyword cabalFunction os arche impl flag
+syn match cabalComment /--.*$/
+syn match cabalVersion "\d\+\(.\(\d\)\+\)\+"
+
+syn match cabalTruth "\ctrue"
+syn match cabalTruth "\cfalse"
+
+syn match cabalCompiler "\cghc"
+syn match cabalCompiler "\cnhc"
+syn match cabalCompiler "\cyhc"
+syn match cabalCompiler "\chugs"
+syn match cabalCompiler "\chbc"
+syn match cabalCompiler "\chelium"
+syn match cabalCompiler "\cjhc"
+syn match cabalCompiler "\clhc"
+
+
+syn match cabalStatement "\cauthor"
+syn match cabalStatement "\cbranch"
+syn match cabalStatement "\cbug-reports"
+syn match cabalStatement "\cbuild-depends"
+syn match cabalStatement "\cbuild-tools"
+syn match cabalStatement "\cbuild-type"
+syn match cabalStatement "\cbuildable"
+syn match cabalStatement "\cc-sources"
+syn match cabalStatement "\ccabal-version"
+syn match cabalStatement "\ccategory"
+syn match cabalStatement "\ccc-options"
+syn match cabalStatement "\ccopyright"
+syn match cabalStatement "\ccpp-options"
+syn match cabalStatement "\cdata-dir"
+syn match cabalStatement "\cdata-files"
+syn match cabalStatement "\cdefault"
+syn match cabalStatement "\cdescription"
+syn match cabalStatement "\cexecutable"
+syn match cabalStatement "\cexposed-modules"
+syn match cabalStatement "\cexposed"
+syn match cabalStatement "\cextensions"
+syn match cabalStatement "\cextra-lib-dirs"
+syn match cabalStatement "\cextra-libraries"
+syn match cabalStatement "\cextra-source-files"
+syn match cabalStatement "\cextra-tmp-files"
+syn match cabalStatement "\cfor example"
+syn match cabalStatement "\cframeworks"
+syn match cabalStatement "\cghc-options"
+syn match cabalStatement "\cghc-prof-options"
+syn match cabalStatement "\cghc-shared-options"
+syn match cabalStatement "\chomepage"
+syn match cabalStatement "\chs-source-dirs"
+syn match cabalStatement "\chugs-options"
+syn match cabalStatement "\cinclude-dirs"
+syn match cabalStatement "\cincludes"
+syn match cabalStatement "\cinstall-includes"
+syn match cabalStatement "\cld-options"
+syn match cabalStatement "\clicense-file"
+syn match cabalStatement "\clicense"
+syn match cabalStatement "\clocation"
+syn match cabalStatement "\cmain-is"
+syn match cabalStatement "\cmaintainer"
+syn match cabalStatement "\cmodule"
+syn match cabalStatement "\cname"
+syn match cabalStatement "\cnhc98-options"
+syn match cabalStatement "\cother-modules"
+syn match cabalStatement "\cpackage-url"
+syn match cabalStatement "\cpkgconfig-depends"
+syn match cabalStatement "\cstability"
+syn match cabalStatement "\csubdir"
+syn match cabalStatement "\csynopsis"
+syn match cabalStatement "\ctag"
+syn match cabalStatement "\ctested-with"
+syn match cabalStatement "\ctype"
+syn match cabalStatement "\cversion"
+
+" Define the default highlighting.
+" Only when an item doesn't have highlighting yet
+
+hi def link cabalVersion Number
+hi def link cabalTruth Boolean
+hi def link cabalComment Comment
+hi def link cabalStatement Statement
+hi def link cabalCategory Type
+hi def link cabalFunction Function
+hi def link cabalConditional Conditional
+hi def link cabalOperator Operator
+hi def link cabalCompiler Constant
+
+let b:current_syntax = "cabal"
+
+" vim: ts=8
+
+endif
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'haskell') == -1
" syntax highlighting for cabal