Bram Moolenaar | 23515b4 | 2020-11-29 14:36:24 +0100 | [diff] [blame] | 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" |