LuaLS / LuaLS/lua-language-server
[Feature Request] Add Lua config file support
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
There are some Lua files that are used for configuration, such as .busted or *.rockspec files. It would be nice if:
- Any globals defined in them are ignored by default
- Global types and return types can be defined for them in a type definition file
This behavior could all be described by creating a type definition file with a special (config) option next to @meta. The require name is replaced by a Lua pattern that matches the filename or URI. Either that, or it could be specified as a config-specific option using ---@meta (config: PATTERN)
-- library/rockspec.d.lua
---@meta (config) "[%w%.%-%_]+%.rockspec$"
---the rockspec format
---@type string
_G.rockspec_format = nil
---the package name
---@type string
_G.package = nil
---the package version
---@type string
_G.version = nil
---a description of the rock
---@class luarocks.rockspec.description
---@field summary string? -- a short sentence that succinctly describes the rock
---@field description string? -- a paragraph-size description that describes the rock
---@field ...
_G.description = {}
For configurations that require returning a table, you could define a local variable with the right type and return it.
-- library/busted.d.lua
---@meta (config) "%.busted$"
---@class .busted.config
---@field coverage boolean? -- use luacov for coverage
---@field verbose boolean? -- print more things
---@field ...
---a dictionary of Busted configurations. You can specify which one using the
---`--run` option. Uses `default` if no configuration is specified
---@class .busted
---@field default .busted.config?
---@field [string] .busted.config?
local busted_config = {}
return busted_config
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 a sintaxe @meta específica de configuração proposta e as definições de exemplo em library/rockspec.d.lua e library/busted.d.lua. Compare as alternativas para fazer a correspondência de nomes de arquivos de configuração ou URIs. Considera-se concluído quando os arquivos de configuração Lua puderem ignorar globais por padrão e usar definições de tipos e de retorno dos arquivos de definição correspondentes.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- lua
- Domínio
- devtools
- Tipo de issue
- Funcionalidade
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Status de atividade
- Estagnada
- Clareza
- Razoavelmente clara
- Facilidade para iniciantes
- 30/100