neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

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"