Mercurial > vim
view runtime/syntax/cabalconfig.vim @ 32960:d5c05e15cf81 v9.0.1780
patch 9.0.1780: Vim9 type not defined during object creation
Commit: https://github.com/vim/vim/commit/618e47d1cd93954bad26d47e5353b4f1432daa5e
Author: Yegappan Lakshmanan <yegappan@yahoo.com>
Date: Tue Aug 22 21:29:28 2023 +0200
patch 9.0.1780: Vim9 type not defined during object creation
Problem: Vim9 type not defined during object creation
Solution: Define type during object creation and not during class
definition, parse mulit-line member initializers, fix lock
initialization
If type is not specified for a member, set it during object creation
instead of during class definition. Add a runtime type check for the
object member initialization expression
Also, while at it, when copying an object or class, make sure the lock
is correctly initialized.
And finally, parse multi-line member initializers correctly.
closes: #11957
closes: #12868
closes: #12869
closes: #12881
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Co-authored-by: LemonBoy <thatlemon@gmail.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 22 Aug 2023 21:45:02 +0200 |
parents | 29c5f168c6fd |
children |
line wrap: on
line source
" Vim syntax file " Language: Cabal Config " Maintainer: profunctor@pm.me " Last Change: Marcin Szamotulski " Original Author: Marcin Szamotulski if exists("b:current_syntax") finish endif syn match CabalConfigSection /^\S[[:alpha:]]\+\%(-[[:alpha:]]\+\)*[^:]*$/ syn region CabalConfigRegion matchgroup=CabalConfigKey start=/^\s*[[:alpha:]]\+\%(-[[:alpha:]]\+\)*:/ matchgroup=NONE end=/$/ contains=CabalConfigSeparator,CabalConfigKeyword,CabalConfigPath keepend syn match CabalConfigComment /^\s*--.*$/ syn match CabalConfigValue /.*$/ contained syn match CabalConfigKey /[[:alpha:]]\+\%(-[[:alpha:]]\+\)*\ze:/ syn keyword CabalConfigSeparator : contained syn match CabalConfigVariable /\$[[:alpha:]]\+/ syn keyword CabalConfigKeyword True False ghc syn match CabalConfigPath /\%([[:alpha:]]\+:\)\?\%(\/[[:print:]]\+\)\+/ hi def link CabalConfigComment Comment hi def link CabalConfigSection Title hi def link CabalConfigKey Statement hi def link CabalConfigSeparator NonText hi def link CabalConfigValue Normal hi def link CabalConfigVariable Identifier hi def link CabalConfigKeyword Keyword hi def link CabalConfigPath Directory let b:current_syntax = "cabal.config"