IntelliJ-EmmyLua
IntelliJ-EmmyLua copied to clipboard
提案:支持将某张表的字段添加到全局变量中;全局变量区分环境
当前设计见:https://github.com/sumneko/lua-language-server/issues/283 该设计还需要进一步讨论
需求为:
一些项目的全局环境受限,比如通过 module 与 _ENV 将部分脚本的环境隔离开
一些项目会同时运行多个Lua虚拟机,他们的状态应该互相独立
有过类似的需求 ,不过我的设想是支持partial class,你的例子可以写成
---@partial class _G
local t = {
X = 1,
Y = 2,
Z = 3,
}
print(X) -- `X` is `t.X`
这样的话,第2个需求就是指定某个class为当前的全局环境嘛?这样相比我之前的方案可以减少一个概念,感觉不错
我重新编辑了设计,有空请查看一下
环境是干嘛的?
例如通过沙盒加载的代码,或者使用了 module 的代码块,他们在访问全局变量时,可以从一个指定的表(class?)中访问,而不是从 _G 中访问。
我目前的想法是,可以通过注解修改从注解开始,到当前代码块结束(或者遇到另一个此类注解)中代码的全局环境。
相关需求可以参考:https://github.com/sumneko/lua-language-server/milestone/1