LuaLS / LuaLS/lua-language-server

View definition of overloaded value via __index of metatable doesn't seem right

Đang mở
#2,380 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

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

image
View definition of a.k:
image

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

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. 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

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.