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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
23047
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1 " Vim syntax file
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2 " Language: Cabal Project
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
3 " Maintainer: profunctor@pm.me
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
4 " Last Change: Marcin Szamotulski
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
5 " Original Author: Marcin Szamotulski
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
6
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
7 if exists("b:current_syntax")
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
8 finish
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
9 endif
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
10
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
11 syn match CabalProjectComment /^\s*--.*/ contains=@Spell
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
12 syn match CabalProjectField /^\w\%(\w\|-\)\+/ contains=@NoSpell
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
13
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
14 syn keyword CabalProjectBoolean true false True False
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
15 syn keyword CabalProjectCompiler ghc ghcjs jhc lhc uhc haskell-suite
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
16 syn match CabalProjectNat /\<\d\+\>/
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
17 syn keyword CabalProjectJobs $ncpus
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
18 syn keyword CabalProjectProfilingLevel default none exported-functions toplevel-functions all-functions
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
19
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
20 hi def link CabalProjectComment Comment
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
21 hi def link CabalProjectField Statement
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
22 hi def link CabalProjectBoolean Boolean
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
23 hi def link CabalProjectCompiler Identifier
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
24 hi def link CabalProjectNat Number
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
25 hi def link CabalProjectJobs Number
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
26 hi def link CabalProjectProfilingLevel Statement
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
27
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
28 let b:current_syntax = "cabal.project"