Mercurial > vim
annotate runtime/syntax/cabalproject.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 |
rev | line source |
---|---|
23047 | 1 " Vim syntax file |
2 " Language: Cabal Project | |
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 CabalProjectComment /^\s*--.*/ contains=@Spell | |
12 syn match CabalProjectField /^\w\%(\w\|-\)\+/ contains=@NoSpell | |
13 | |
14 syn keyword CabalProjectBoolean true false True False | |
15 syn keyword CabalProjectCompiler ghc ghcjs jhc lhc uhc haskell-suite | |
16 syn match CabalProjectNat /\<\d\+\>/ | |
17 syn keyword CabalProjectJobs $ncpus | |
18 syn keyword CabalProjectProfilingLevel default none exported-functions toplevel-functions all-functions | |
19 | |
20 hi def link CabalProjectComment Comment | |
21 hi def link CabalProjectField Statement | |
22 hi def link CabalProjectBoolean Boolean | |
23 hi def link CabalProjectCompiler Identifier | |
24 hi def link CabalProjectNat Number | |
25 hi def link CabalProjectJobs Number | |
26 hi def link CabalProjectProfilingLevel Statement | |
27 | |
28 let b:current_syntax = "cabal.project" |