Skip to main content

LSP e Autocomplete

Autocomplete e LSP no Editor

Para melhorar a experiência de desenvolvimento dos scripts Lua, você pode configurar o Language Server Protocol (LSP) no seu editor. Isso permite funcionalidades como autocomplete, verificação de tipos e documentação inline.

Pré-requisito: Instalar o Lua Language Server

Instale o Lua Language Server no seu editor:

Como Usar no Seu Script

No início do seu script, adicione:

if false then
require("definitions")
end

Por que if false? Esta condição garante que o código nunca será executado no dispositivo, mas o LSP do seu editor ainda consegue ler e processar as definições de tipo. Dessa forma, você obtém autocomplete sem carregar arquivos desnecessários no dispositivo.

Benefícios

  • Autocomplete inteligente - Sugestões de métodos e propriedades enquanto você digita
  • Verificação de tipos - Alertas sobre uso incorreto de funções
  • Documentação inline - Descrições dos parâmetros ao passar o mouse
  • Detecção de erros - Avisos sobre variáveis não declaradas
  • Navegação - Ir para definição de funções

Exemplo de Uso

-- Ativa o LSP (não é executado no dispositivo)
if false then
require("definitions")
end

-- Agora você tem autocomplete completo!
EventBus.subscribe(EventBus.EventType.DEVICE_STATE_CHANGE, 0, function(event)
local flowSensor = Sensor.get(0)

if flowSensor == nil then
Log.error("Sensor não encontrado")
return
end

-- Autocomplete mostra todos os métodos disponíveis
if event.value == 1 then
flowSensor:resume() -- ✓ Sugestão automática
flowSensor:resetTimer() -- ✓ Verificação de tipo
else
flowSensor:pause()
end
end)
Dica

O arquivo definitions.lua está em spiffs_data/definitions.lua e é automaticamente filtrado durante a execução no dispositivo.