LuaLS / LuaLS/lua-language-server
@return支持多种类型
Ninguém assumiu esta issue ainda.
- 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
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- 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