LuaLS / LuaLS/lua-language-server
View definition of overloaded value via __index of metatable doesn't seem right
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- Lua
- Star
- 4.4k
- Fork
- 442
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
How are you using the lua-language-server?
Visual Studio Code Extension (sumneko.lua)
Which OS are you using?
Windows
What is the issue affecting?
Hover
Expected Behaviour
local a = {k = 'v1'}
local b = setmetatable({}, {__index = a})
b.k = 'v2'
View definition of a.k:
local a = {k = 'v1'}
Actual Behaviour
View definition of a.k:
Reproduction steps
Press F12 while selecting the k of the first line of the code below:
local a = {k = 'v1'}
local b = setmetatable({}, {__index = a})
b.k = 'v2'
Additional Notes
Chinese colloquial description:
如上所述,当我试图浏览 a.k 的定义时,同时弹出了 a.k 与 b.k 的定义。这显然是不对的:表 b 元表的__index 为 a,因此 b.k 只是继承了 a.k,其定义与 a.k 的定义并无关联,不应显示到 a.k 上。
当借助__index 实现的继承较多时,定义就失去了它应有的作用,非常凌乱。
我正在为一款游戏的 mod 开发 LLS 的 Addon 与 Plugin,因此我愿意提供我力所能及的帮助。如果已有重复的 issue,恳请谅解!
Log File
file_c%3A_LLS-issue.log
I suppose this may not be helpful. But just upload it.
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Tái hiện hành vi định nghĩa trong VS Code extension bằng đoạn mã Lua ba dòng và so sánh kết quả F12 cho hai tham chiếu k. Truy vết đường dẫn phân giải định nghĩa đối với các trường của bảng và việc xử lý __index; hoàn tất khi việc chọn a.k chỉ hiển thị định nghĩa a.k thay vì cũng hiển thị định nghĩa b.k.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- lua
- Lĩnh vực
- devtools
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức phù hợp với người mới
- 35/100