1" Vim syntax file 2" Language: Cabal Config 3" Maintainer: [email protected] 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" 31