blob: 4130bac89440731a5d88dde55342b7b3b4a2674e [file] [log] [blame]
Bram Moolenaar00a927d2010-05-14 23:24:24 +02001" Vim syntax file
2" Language: Haskell Cabal Build file
3" Maintainer: Vincent Berthoux <twinside@gmail.com>
4" File Types: .cabal
Bram Moolenaardb7c6862010-05-21 16:33:48 +02005" Last Change: 2010 May 18
Bram Moolenaar00a927d2010-05-14 23:24:24 +02006" 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