LuaLS / LuaLS/lua-language-server

@return支持多种类型

Aberta
#1,583 5 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

enhancement
Linguagem predominante
Lua
Estrelas
4.4k
Forks
442
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

两个方案,大佬参考:
方案一采用语法`@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语法应该留给更重要的多返回类型语法!优雅,简洁!个人愚见,仅供参考

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Direção de pesquisa

Comece revisando o parsing existente de @return e a validação do tipo de retorno do language server; em seguida, compare as duas sintaxes propostas com os exemplos na issue. Considera-se concluído quando uma sintaxe acordada oferece suporte a várias assinaturas de retorno alternativas e rejeita o retorno incompatível mostrado no exemplo, com cobertura do comportamento existente separado por vírgulas.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
lua
Domínio
tooling
Tipo de issue
Funcionalidade
Dificuldade
5/5
Tempo estimado
Mais de uma semana
Status de atividade
Estagnada
Clareza
Razoavelmente clara
Facilidade para iniciantes
35/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.