1*23515b4eSBram Moolenaar" Vim syntax file
2*23515b4eSBram Moolenaar" Language:		Cabal Config
3*23515b4eSBram Moolenaar" Maintainer:		[email protected]
4*23515b4eSBram Moolenaar" Last Change:		Marcin Szamotulski
5*23515b4eSBram Moolenaar" Original Author:	Marcin Szamotulski
6*23515b4eSBram Moolenaar
7*23515b4eSBram Moolenaarif exists("b:current_syntax")
8*23515b4eSBram Moolenaar  finish
9*23515b4eSBram Moolenaarendif
10*23515b4eSBram Moolenaar
11*23515b4eSBram Moolenaarsyn match CabalConfigSection /^\S[[:alpha:]]\+\%(-[[:alpha:]]\+\)*[^:]*$/
12*23515b4eSBram Moolenaarsyn region CabalConfigRegion matchgroup=CabalConfigKey start=/^\s*[[:alpha:]]\+\%(-[[:alpha:]]\+\)*:/ matchgroup=NONE end=/$/ contains=CabalConfigSeparator,CabalConfigKeyword,CabalConfigPath keepend
13*23515b4eSBram Moolenaarsyn match CabalConfigComment /^\s*--.*$/
14*23515b4eSBram Moolenaarsyn match CabalConfigValue /.*$/ contained
15*23515b4eSBram Moolenaarsyn match CabalConfigKey /[[:alpha:]]\+\%(-[[:alpha:]]\+\)*\ze:/
16*23515b4eSBram Moolenaarsyn keyword CabalConfigSeparator : contained
17*23515b4eSBram Moolenaarsyn match CabalConfigVariable /\$[[:alpha:]]\+/
18*23515b4eSBram Moolenaarsyn keyword CabalConfigKeyword True False ghc
19*23515b4eSBram Moolenaarsyn match CabalConfigPath /\%([[:alpha:]]\+:\)\?\%(\/[[:print:]]\+\)\+/
20*23515b4eSBram Moolenaar
21*23515b4eSBram Moolenaarhi def link CabalConfigComment Comment
22*23515b4eSBram Moolenaarhi def link CabalConfigSection Title
23*23515b4eSBram Moolenaarhi def link CabalConfigKey Statement
24*23515b4eSBram Moolenaarhi def link CabalConfigSeparator NonText
25*23515b4eSBram Moolenaarhi def link CabalConfigValue Normal
26*23515b4eSBram Moolenaarhi def link CabalConfigVariable Identifier
27*23515b4eSBram Moolenaarhi def link CabalConfigKeyword Keyword
28*23515b4eSBram Moolenaarhi def link CabalConfigPath Directory
29*23515b4eSBram Moolenaar
30*23515b4eSBram Moolenaarlet b:current_syntax = "cabal.config"
31