blob: 4130bac89440731a5d88dde55342b7b3b4a2674e [file] [log] [blame]
" 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)
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if version < 600
syntax clear
elseif 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.
" For version 5.7 and earlier: only when not done already
" For version 5.8 and later: only when an item doesn't have highlighting yet
if version >= 508 || !exists("did_cabal_syn_inits")
if version < 508
let did_cabal_syn_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
HiLink cabalVersion Number
HiLink cabalTruth Boolean
HiLink cabalComment Comment
HiLink cabalStatement Statement
HiLink cabalCategory Type
HiLink cabalFunction Function
HiLink cabalConditional Conditional
HiLink cabalOperator Operator
HiLink cabalCompiler Constant
delcommand HiLink
endif
let b:current_syntax = "cabal"
" vim: ts=8