xref: /vim-8.2.3635/runtime/syntax/cabal.vim (revision 00a927d6)
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