cabalconfig.vim (1179B)
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"