LuaLS / LuaLS/lua-language-server
Treat class field as special function (such as `type`)
还没有人认领这个 Issue。
- 主要语言
- Lua
- 星标
- 4.4k
- 派生
- 442
- PR 合并指标
- 30 天内没有已合并 PR
描述
In Factorio, all the API classes have a object_name field (not function!), which identifies their class name, much like type() does for base types. We're currently handling this with a plugin that rewrites this from obj.object_name to look like __object_name(obj) which is then tagged as
"Lua.runtime.special": {
"__object_name": "type"
},
, to get it to work properly in type-tests, but it would be nice to be able to indicate that a class field "acts like type" in this way directly.
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
首先检查现有的 plugin rewrite:将 obj.object_name 重写为 __object_name(obj),以及将 Lua.runtime.special 映射到 type 的过程。跟踪 type-tests 如何使用该映射,然后验证直接声明 class-field 时无需 rewrite 也能保持相同的行为。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- lua
- 领域
- tooling
- Issue 类型
- 功能
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 35/100