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