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