LuaLS / LuaLS/lua-language-server

@return支持多种类型

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

Chưa có ai nhận issue này.

enhancement
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ả

两个方案,大佬参考:
方案一采用语法@return ()|()|()这种

---@return (string,number)|(nil, string)
local function foo()
  do
    return 'foo', 1 --正常
  end
  do
    return nil, 'some error' --正常
  end
  do
    return nil, 1 -- 此处出错
  end
end

方案二,其实我觉得这种更直观,也便于书写

---@return string,number
---@return nil, string
local function foo()
  do
    return 'foo', 1 --正常
  end
  do
    return nil, 'some error' --正常
  end
  do
    return nil, 1 -- 此处出错
  end
end

现在的设定,下面两种定义是等效的

---@return string,number
local function foo() end

---@return string
---@return number
local function foo() end

可见,通过逗号表达式,一条@return语句就可以表达多个值类型,多条连续的@return语法应该留给更重要的多返回类型语法!优雅,简洁!个人愚见,仅供参考

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

Bắt đầu bằng cách xem xét việc phân tích cú pháp @return hiện có và việc xác thực kiểu trả về của language server, sau đó so sánh cả hai cú pháp được đề xuất với các ví dụ trong issue. Được xem là hoàn thành khi một cú pháp được thống nhất hỗ trợ nhiều chữ ký trả về thay thế và từ chối giá trị trả về không khớp được nêu trong ví dụ, với coverage cho hành vi phân tách bằng dấu phẩy hiện có.

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
tooling
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
Khá 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.