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