Mercurial > vim
comparison runtime/doc/todo.txt @ 33352:7f95d9a3e317
runtime(todo): Update Vim9 class items (#13148)
Commit: https://github.com/vim/vim/commit/ceffca683ba986065e583d02e7ace964efdb256e
Author: Yegappan Lakshmanan <4298407+yegappan@users.noreply.github.com>
Date: Sun Sep 24 14:36:56 2023 -0700
runtime(todo): Update Vim9 class items (https://github.com/vim/vim/issues/13148)
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 24 Sep 2023 23:45:07 +0200 |
parents | 6028d7f701ce |
children | 5614c43616fe |
comparison
equal
deleted
inserted
replaced
33351:a3bbd065fb87 | 33352:7f95d9a3e317 |
---|---|
118 - sublime grammar? Hugo mentions it's a moving target #9087 | 118 - sublime grammar? Hugo mentions it's a moving target #9087 |
119 - Make clear how it relates to LSP. | 119 - Make clear how it relates to LSP. |
120 - example plugin: https://github.com/uga-rosa/dps-vsctm.vim | 120 - example plugin: https://github.com/uga-rosa/dps-vsctm.vim |
121 | 121 |
122 | 122 |
123 Further Vim9 improvements, possibly after launch: | 123 Further Vim9 improvements: |
124 - Classes and Interfaces. See |vim9-classes| | 124 - Classes and Interfaces. See |vim9-classes| |
125 - Change access: public by default, private by prefixing "_". | |
126 Check for error: can't have same name twice (ignoring "_" prefix). | |
127 - Private methods? | |
128 either: private def Func() | |
129 or: def _Func() | |
130 Perhaps use "private" keyword instead of "_" prefix? | |
131 - "final" object members - can only be set in the constructor. | 125 - "final" object members - can only be set in the constructor. |
132 - Support export/import of classes and interfaces. | |
133 - Cannot use class type of itself in the method (Issue #12369) | 126 - Cannot use class type of itself in the method (Issue #12369) |
134 - Cannot use an object method in a lambda #12417 | 127 - Cannot use an object method in a lambda #12417 |
135 Define all methods before compiling them? | 128 Define all methods before compiling them? |
136 - Cannot call class member of funcref type (Issue #12324) | 129 - Cannot call class member of funcref type (Issue #12324) |
137 Also #12081 first case. | 130 Also #12081 first case. |
138 - Using list of functions does not work #12081 (repro in later message). | 131 - Using list of functions does not work #12081 (repro in later message). |
139 - First argument of call() cannot be "obj.Func". (#11865) | 132 - First argument of call() cannot be "obj.Func". (#11865) |
140 - null_object - constant type 17 not supported (Issue #12043) | |
141 - problem compiling object method call as function call argument (Issue | |
142 #12081) | |
143 - Make ":defcompile ClassName" compile all functions and methods in the | |
144 class. | |
145 - Forward declaration of a class? E.g. for Clone() function. | |
146 email lifepillar 2023 Mar 26 | |
147 - Getting member of variable with "any" type should be handled at runtime. | 133 - Getting member of variable with "any" type should be handled at runtime. |
148 Remove temporary solution from #12096 / patch 9.0.1375. | 134 Remove temporary solution from #12096 / patch 9.0.1375. |
149 - "obj.Method()" does not always work in a compiled function, assumes "obj" | 135 - "obj.Method()" does not always work in a compiled function, assumes "obj" |
150 is a dictionary. #12196 Issue #12024 might be the same problem. | 136 is a dictionary. #12196 Issue #12024 might be the same problem. |
151 Issue #11822: any.Func() can be a dict or an object call, need to handle | 137 Issue #11822: any.Func() can be a dict or an object call, need to handle |
152 this at runtime. Also see #12198 for an example. | 138 this at runtime. Also see #12198 for an example. |
153 Possibly issue #11981 can be fixed at the same time (has two examples). | 139 Possibly issue #11981 can be fixed at the same time (has two examples). |
154 - accept line breaks in member initialization. #11957 | 140 - Support export/import of classes and interfaces. |
141 - Make ":defcompile ClassName" compile all functions and methods in the | |
142 class. | |
143 - Forward declaration of a class? E.g. for Clone() function. | |
144 Email lifepillar 2023 Mar 26 | |
155 - object empty(), len() - can class define a method to be used for them? | 145 - object empty(), len() - can class define a method to be used for them? |
156 - add to help: when using a default new() method then reordering object | 146 - add to help: when using a default new() method then reordering object |
157 members may cause trouble. Can define new() without arguments to avoid. | 147 members may cause trouble. Can define new() without arguments to avoid. |
158 - TODO items: check types for "implements" - members and methods | |
159 - When "Meta" is a class, is "const MetaAlias = Meta" allowed? It should | 148 - When "Meta" is a class, is "const MetaAlias = Meta" allowed? It should |
160 either work or given an error. possibly give an error now and implement it | 149 either work or given an error. Possibly give an error now and implement it |
161 later (using a typedef). #12006 | 150 later (using a typedef). #12006 |
162 - how about lock/unlock? | 151 - how about lock/unlock? |
163 - When checking "implements" also check types of members and function args. | |
164 - For chaining, allow using the class name as type for function return | 152 - For chaining, allow using the class name as type for function return |
165 value. | 153 value. |
154 - Implement "specifies" interface | |
166 - Implement generics | 155 - Implement generics |
167 - Add "assignable" (class or child)? | 156 - Add "assignable" (class or child)? |
168 - More efficient way for interface member index than iterating over list? | 157 - More efficient way for interface member index than iterating over list? |
169 - a variant of type() that returns a different type for each class? | 158 - a variant of type() that returns a different type for each class? |
170 list<number> and list<string> should also differ. | 159 list<number> and list<string> should also differ. |