1" Vim syntax file 2" Language: Haskell Cabal Build file 3" Maintainer: Vincent Berthoux <[email protected]> 4" File Types: .cabal 5" v1.3: Updated to the last version of cabal 6" Added more highlighting for cabal function, true/false 7" and version number. Also added missing comment highlighting. 8" Cabal known compiler are highlighted too. 9" 10" V1.2: Added cpp-options which was missing. Feature implemented 11" by GHC, found with a GHC warning, but undocumented. 12" Whatever... 13" 14" v1.1: Fixed operator problems and added ftdetect file 15" (thanks to Sebastian Schwarz) 16" 17" v1.0: Cabal syntax in vimball format 18" (thanks to Magnus Therning) 19 20" For version 5.x: Clear all syntax items 21" For version 6.x: Quit when a syntax file was already loaded 22if version < 600 23 syntax clear 24elseif exists("b:current_syntax") 25 finish 26endif 27 28syn keyword cabalCategory Library library Executable executable Flag flag 29syn keyword cabalCategory source-repository Source-Repository 30 31syn keyword cabalConditional if else 32syn match cabalOperator "&&\|||\|!\|==\|>=\|<=" 33syn keyword cabalFunction os arche impl flag 34syn match cabalComment /--.*$/ 35syn match cabalVersion "\d\+\(.\(\d\)\+\)\+" 36 37syn match cabalTruth "\ctrue" 38syn match cabalTruth "\cfalse" 39 40syn match cabalCompiler "\cghc" 41syn match cabalCompiler "\cnhc" 42syn match cabalCompiler "\cyhc" 43syn match cabalCompiler "\chugs" 44syn match cabalCompiler "\chbc" 45syn match cabalCompiler "\chelium" 46syn match cabalCompiler "\cjhc" 47syn match cabalCompiler "\clhc" 48 49 50syn match cabalStatement "\cauthor" 51syn match cabalStatement "\cbranch" 52syn match cabalStatement "\cbug-reports" 53syn match cabalStatement "\cbuild-depends" 54syn match cabalStatement "\cbuild-tools" 55syn match cabalStatement "\cbuild-type" 56syn match cabalStatement "\cbuildable" 57syn match cabalStatement "\cc-sources" 58syn match cabalStatement "\ccabal-version" 59syn match cabalStatement "\ccategory" 60syn match cabalStatement "\ccc-options" 61syn match cabalStatement "\ccopyright" 62syn match cabalStatement "\ccpp-options" 63syn match cabalStatement "\cdata-dir" 64syn match cabalStatement "\cdata-files" 65syn match cabalStatement "\cdefault" 66syn match cabalStatement "\cdescription" 67syn match cabalStatement "\cexecutable" 68syn match cabalStatement "\cexposed-modules" 69syn match cabalStatement "\cexposed" 70syn match cabalStatement "\cextensions" 71syn match cabalStatement "\cextra-lib-dirs" 72syn match cabalStatement "\cextra-libraries" 73syn match cabalStatement "\cextra-source-files" 74syn match cabalStatement "\cextra-tmp-files" 75syn match cabalStatement "\cfor example" 76syn match cabalStatement "\cframeworks" 77syn match cabalStatement "\cghc-options" 78syn match cabalStatement "\cghc-prof-options" 79syn match cabalStatement "\cghc-shared-options" 80syn match cabalStatement "\chomepage" 81syn match cabalStatement "\chs-source-dirs" 82syn match cabalStatement "\chugs-options" 83syn match cabalStatement "\cinclude-dirs" 84syn match cabalStatement "\cincludes" 85syn match cabalStatement "\cinstall-includes" 86syn match cabalStatement "\cld-options" 87syn match cabalStatement "\clicense-file" 88syn match cabalStatement "\clicense" 89syn match cabalStatement "\clocation" 90syn match cabalStatement "\cmain-is" 91syn match cabalStatement "\cmaintainer" 92syn match cabalStatement "\cmodule" 93syn match cabalStatement "\cname" 94syn match cabalStatement "\cnhc98-options" 95syn match cabalStatement "\cother-modules" 96syn match cabalStatement "\cpackage-url" 97syn match cabalStatement "\cpkgconfig-depends" 98syn match cabalStatement "\cstability" 99syn match cabalStatement "\csubdir" 100syn match cabalStatement "\csynopsis" 101syn match cabalStatement "\ctag" 102syn match cabalStatement "\ctested-with" 103syn match cabalStatement "\ctype" 104syn match cabalStatement "\cversion" 105 106" Define the default highlighting. 107" For version 5.7 and earlier: only when not done already 108" For version 5.8 and later: only when an item doesn't have highlighting yet 109if version >= 508 || !exists("did_cabal_syn_inits") 110 if version < 508 111 let did_cabal_syn_inits = 1 112 command -nargs=+ HiLink hi link <args> 113 else 114 command -nargs=+ HiLink hi def link <args> 115 endif 116 117 HiLink cabalVersion Number 118 HiLink cabalTruth Boolean 119 HiLink cabalComment Comment 120 HiLink cabalStatement Statement 121 HiLink cabalCategory Type 122 HiLink cabalFunction Function 123 HiLink cabalConditional Conditional 124 HiLink cabalOperator Operator 125 HiLink cabalCompiler Constant 126 delcommand HiLink 127endif 128 129let b:current_syntax = "cabal" 130 131" vim: ts=8 132