xref: /vim-8.2.3635/runtime/syntax/cabal.vim (revision bb76f24a)
1" Vim syntax file
2" Language:	Haskell Cabal Build file
3" Maintainer:	Vincent Berthoux <[email protected]>
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" quit when a syntax file was already loaded
22if exists("b:current_syntax")
23  finish
24endif
25
26syn keyword	cabalCategory	Library library Executable executable Flag flag
27syn keyword	cabalCategory	source-repository Source-Repository
28
29syn keyword     cabalConditional    if else
30syn match       cabalOperator       "&&\|||\|!\|==\|>=\|<="
31syn keyword     cabalFunction       os arche impl flag
32syn match       cabalComment    /--.*$/
33syn match       cabalVersion    "\d\+\(.\(\d\)\+\)\+"
34
35syn match       cabalTruth      "\ctrue"
36syn match       cabalTruth      "\cfalse"
37
38syn match       cabalCompiler   "\cghc"
39syn match       cabalCompiler   "\cnhc"
40syn match       cabalCompiler   "\cyhc"
41syn match       cabalCompiler   "\chugs"
42syn match       cabalCompiler   "\chbc"
43syn match       cabalCompiler   "\chelium"
44syn match       cabalCompiler   "\cjhc"
45syn match       cabalCompiler   "\clhc"
46
47
48syn match	cabalStatement	"\cauthor"
49syn match	cabalStatement	"\cbranch"
50syn match	cabalStatement	"\cbug-reports"
51syn match	cabalStatement	"\cbuild-depends"
52syn match	cabalStatement	"\cbuild-tools"
53syn match	cabalStatement	"\cbuild-type"
54syn match	cabalStatement	"\cbuildable"
55syn match	cabalStatement	"\cc-sources"
56syn match	cabalStatement	"\ccabal-version"
57syn match	cabalStatement	"\ccategory"
58syn match	cabalStatement	"\ccc-options"
59syn match	cabalStatement	"\ccopyright"
60syn match       cabalStatement  "\ccpp-options"
61syn match	cabalStatement	"\cdata-dir"
62syn match	cabalStatement	"\cdata-files"
63syn match	cabalStatement	"\cdefault"
64syn match	cabalStatement	"\cdescription"
65syn match	cabalStatement	"\cexecutable"
66syn match	cabalStatement	"\cexposed-modules"
67syn match	cabalStatement	"\cexposed"
68syn match	cabalStatement	"\cextensions"
69syn match	cabalStatement	"\cextra-lib-dirs"
70syn match	cabalStatement	"\cextra-libraries"
71syn match	cabalStatement	"\cextra-source-files"
72syn match	cabalStatement	"\cextra-tmp-files"
73syn match	cabalStatement	"\cfor example"
74syn match	cabalStatement	"\cframeworks"
75syn match	cabalStatement	"\cghc-options"
76syn match	cabalStatement	"\cghc-prof-options"
77syn match	cabalStatement	"\cghc-shared-options"
78syn match	cabalStatement	"\chomepage"
79syn match	cabalStatement	"\chs-source-dirs"
80syn match	cabalStatement	"\chugs-options"
81syn match	cabalStatement	"\cinclude-dirs"
82syn match	cabalStatement	"\cincludes"
83syn match	cabalStatement	"\cinstall-includes"
84syn match	cabalStatement	"\cld-options"
85syn match	cabalStatement	"\clicense-file"
86syn match	cabalStatement	"\clicense"
87syn match	cabalStatement	"\clocation"
88syn match	cabalStatement	"\cmain-is"
89syn match	cabalStatement	"\cmaintainer"
90syn match	cabalStatement	"\cmodule"
91syn match	cabalStatement	"\cname"
92syn match	cabalStatement	"\cnhc98-options"
93syn match	cabalStatement	"\cother-modules"
94syn match	cabalStatement	"\cpackage-url"
95syn match	cabalStatement	"\cpkgconfig-depends"
96syn match	cabalStatement	"\cstability"
97syn match	cabalStatement	"\csubdir"
98syn match	cabalStatement	"\csynopsis"
99syn match	cabalStatement	"\ctag"
100syn match	cabalStatement	"\ctested-with"
101syn match	cabalStatement	"\ctype"
102syn match	cabalStatement	"\cversion"
103
104" Define the default highlighting.
105" Only when an item doesn't have highlighting yet
106
107hi def link cabalVersion       Number
108hi def link cabalTruth         Boolean
109hi def link cabalComment       Comment
110hi def link cabalStatement     Statement
111hi def link cabalCategory      Type
112hi def link cabalFunction      Function
113hi def link cabalConditional   Conditional
114hi def link cabalOperator      Operator
115hi def link cabalCompiler      Constant
116
117let b:current_syntax = "cabal"
118
119" vim: ts=8
120