LuaLS / LuaLS/lua-language-server
Feature for Lua 5.4 to warn about unused __close metamethods.
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?
MacOS
What is the issue affecting?
Annotations
Expected Behaviour
I think it would make sense to be able to somehow annotate that a table with a __close metamethod is meant to be used as a local variable with lua 5.4's attribute. This would be useful for raii-like constructs.
Actual Behaviour
No warning.
Reproduction steps
Example:
local function get_resource()
return
setmetatable({}, {
__close = function ()
print('close resource')
end
})
end
local a<close> = get_resource() -- ok
local b = get_resource() -- not okay, should somehow warn
Additional Notes
No response
Log File
No response
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
Bắt đầu với hành vi của trong Lua 5.4 và bản tái hiện get_resource được cung cấp. Xác định cách language server biểu diễn các chú thích và cảnh báo, sau đó định nghĩa một cách để nhận diện các resource có __close được gán mà không có ; hoàn thành khi ví dụ cảnh báo cho b nhưng chấp nhận a.
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
- Tính năng
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Cần làm rõ
- Mức phù hợp với người mới
- 25/100