blob: 0165725c06ae6cf18f1c23e3a0658638ba194880 [file] [log] [blame]
Bram Moolenaar23515b42020-11-29 14:36:24 +01001" Vim syntax file
2" Language: Cabal Config
3" Maintainer: profunctor@pm.me
4" Last Change: Marcin Szamotulski
5" Original Author: Marcin Szamotulski
6
7if exists("b:current_syntax")
8 finish
9endif
10
11syn match CabalConfigSection /^\S[[:alpha:]]\+\%(-[[:alpha:]]\+\)*[^:]*$/
12syn region CabalConfigRegion matchgroup=CabalConfigKey start=/^\s*[[:alpha:]]\+\%(-[[:alpha:]]\+\)*:/ matchgroup=NONE end=/$/ contains=CabalConfigSeparator,CabalConfigKeyword,CabalConfigPath keepend
13syn match CabalConfigComment /^\s*--.*$/
14syn match CabalConfigValue /.*$/ contained
15syn match CabalConfigKey /[[:alpha:]]\+\%(-[[:alpha:]]\+\)*\ze:/
16syn keyword CabalConfigSeparator : contained
17syn match CabalConfigVariable /\$[[:alpha:]]\+/
18syn keyword CabalConfigKeyword True False ghc
19syn match CabalConfigPath /\%([[:alpha:]]\+:\)\?\%(\/[[:print:]]\+\)\+/
20
21hi def link CabalConfigComment Comment
22hi def link CabalConfigSection Title
23hi def link CabalConfigKey Statement
24hi def link CabalConfigSeparator NonText
25hi def link CabalConfigValue Normal
26hi def link CabalConfigVariable Identifier
27hi def link CabalConfigKeyword Keyword
28hi def link CabalConfigPath Directory
29
30let b:current_syntax = "cabal.config"