LuaLS / LuaLS/lua-language-server
Annotations with mixins?
未关闭
还没有人认领这个 Issue。
enhancement
- 主要语言
- Lua
- 星标
- 4.4k
- 派生
- 442
- PR 合并指标
- 30 天内没有已合并 PR
描述
Hi I'm trying to make annotations that must require the user to have certain fields in a table as a requirement.
For instance, I want a table that needs to have x,y fields, or certain functions.
Here is some pseudo-code that might explain what I mean:
---@class Spinnable
---@field spin fun()
---@class Positionable
---@field x number
---@field y number
---@field setPos fun(x: number, y: number)
---@generic T : Spinnable, Positionable
---@param p1 `T`
---@return T
local function doFunction(p1) return p1 end
local entity = { x = 5 } -- A table that is missing the other fields
local check = doFunction(entity) -- I want a warning here saying it doesn't have, `y`, `setPos()`, or `spin()`
Is this currently possible to require certain fields in a table?
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
首先复现 issue 中带注释的伪代码,并检查 language server 如何处理类注解、泛型和表字段检查。完成标准是:将缺少 y、setPos 或 spin 的表传递给 doFunction 时会产生诊断,而兼容的表会被接受。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- lua
- 领域
- devtools
- Issue 类型
- 功能
- 难度
- 5/5
- 预计耗时
- 一周以上
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 25/100