Pular para o conteúdo
Aback Tools Logo

Melhores extensões de formatação de Lua para VS Code

Comparativo das melhores extensões de formatação de Lua para VS Code: Lua Language Server, StyLua e LuaFormatter - configuração, formatação ao salvar e alternativa no navegador.

DH
Tips & Best Practices11 min de leitura2,600 palavras

O código Lua sem formatação acumula-se rápido - indentação inconsistente, espaçamento desigual à volta dos operadores e blocos que diferem entre membros da equipa. A extensão certa do VS Code corrige tudo isso automaticamente. Este guia cobre as melhores extensões de formatação de Lua para VS Code em 2026, como configurar cada uma, como ativar a formatação ao salvar e o que usar quando não pode instalar extensões de todo.

3+Formadores de Lua principaisPara VS Code em 2026
1M+Instalações do Lua LSExtensão de Lua mais usada
< 5sTempo de configuraçãoDe zero à formatação ao salvar

Por que a formatação importa para Lua

Lua não tem um padrão de estilo imposto. O parser da linguagem aceita qualquer indentação válida, qualquer espaçamento de operadores e qualquer disposição de blocos - o que significa que cada programador recorre aos seus próprios hábitos. Num projeto a solo, tudo bem. Numa base de código partilhada, um mod de jogo ou um repositório de scripts de equipa, a formatação inconsistente cria ruído em cada diff, atrasa a revisão de código e torna a depuração mais difícil do que precisa ser.

O custo de um estilo Lua inconsistente

Quando duas pessoas escrevem Lua de forma diferente - uma usa indentação de quatro espaços, outra usa tabs; uma espaça os operadores, a outra não - cada commit contém mudanças de formatação misturadas com mudanças de lógica. Os revisores gastam tempo a ler diffs de estilo em vez de diffs de lógica. Os conflitos de fusão disparam. Um formatador resolve isto normalizando cada ficheiro para o mesmo estilo ao salvar, tornando os diffs limpos e revistáveis.

  • Indentação consistente - blocos `do`/`end`, `if`/`end`, `function`/`end` indentam sempre da mesma forma
  • Espaçamento uniforme - espaços à volta de `=`, `+`, `-`, `..` e outros operadores aplicam-se de forma consistente
  • Disciplina de linhas em branco - linhas em branco extra entre funções e dentro de ciclos são normalizadas automaticamente
  • Tratamento legível de strings - concatenações longas e strings multilinha são dispostas de forma previsível
  • Imposição em toda a equipa - um `.luarc.json` ou `stylua.toml` partilhado no controlo de versões garante que todos usam as mesmas regras

Note

Formatação é distinta de linting. Um formatador muda apenas espaços em branco e disposição - nunca altera a lógica. Um linter como o [Validador de sintaxe de Lua](/tools/data/validators/lua-syntax-validator) deteta erros semânticos, variáveis não definidas e problemas de lógica. Precisa de ambos.

Melhores extensões de formatação de Lua para VS Code

O Marketplace do VS Code tem várias extensões de Lua, mas apenas um punhado está ativamente mantido e oferece formatação fiável. Aqui estão as três que vale a pena conhecer em 2026, por ordem de recomendação.

1. Lua Language Server (sumneko.lua) - recomendada

O Lua Language Server, publicado como `sumneko.lua` no Marketplace do VS Code, é a ferramenta de desenvolvimento de Lua mais completa disponível para VS Code. Instala uma implementação completa do Language Server Protocol (LSP) que fornece diagnósticos, inferência de tipos, ir para definição, documentação ao passar o rato, pesquisa de referências em todo o workspace e um formatador integrado - tudo numa única extensão.

  • Editor: sumneko (Tang Liu)
  • ID no Marketplace: `sumneko.lua`
  • Instalações ativas: 1M+ (em 2026)
  • Versões de Lua suportadas: 5.1, 5.2, 5.3, 5.4, LuaJIT
  • Formatador: Integrado, configurado via `.luarc.json`
  • Formatação ao salvar: Suportada nativamente
  • Ideal para: A maioria dos fluxos de trabalho de Lua - scripting de jogos, ferramentas autónomas, sistemas embebidos

Tip

O Lua Language Server é também a base recomendada para desenvolvimento Roblox quando combinado com o pacote de definições de tipos `roblox-lua-lsp`, que adiciona serviços do Roblox, instâncias e globais específicos de Luau ao verificador de tipos.

2. StyLua (jq-steuersoftware.stylua) - alternativa opinativa

StyLua é um formatador de código Lua opinativo, escrito em Rust e inspirado no Prettier. A extensão do VS Code envolve o binário do StyLua e integra-o como formatador de documentos. Ao contrário do Lua Language Server, o StyLua é apenas um formatador - não fornece diagnósticos, documentação ao passar o rato nem conclusão de código. O que fornece é um estilo determinista e sem debate: concorda com o estilo e compromete-se com ele, da mesma forma que o Prettier funciona para JavaScript.

  • Editor: jq-steuersoftware
  • ID no Marketplace: `jq-steuersoftware.stylua`
  • Versões de Lua suportadas: 5.1, 5.2, 5.3, 5.4, LuaJIT, Luau (Roblox)
  • Ficheiro de config: `stylua.toml` (opcional - funciona bem com os padrões)
  • Formatação ao salvar: Suportada nativamente
  • Ideal para: Projetos novos, equipas que querem formatação sem config à maneira do Prettier, desenvolvimento Luau Roblox

3. LuaFormatter (Koihik.vscode-lua-format) - opção legada configurável

LuaFormatter é uma extensão mais antiga que envolve a ferramenta de linha de comandos `lua-format`. Fornece configuração extensa - pode ajustar individualmente a largura de indentação, comprimento máximo de linha, espaçamento de operadores, indentação de continuação e muitas outras regras. Esse nível de controlo torna-a útil ao migrar uma base de código existente que já tem uma convenção de estilo estabelecida que o formatador deve respeitar. Contudo, o desenvolvimento abrandou desde o surgimento do StyLua, e o binário `lua-format` requer um passo de instalação separado em algumas plataformas.

  • Editor: Koihik
  • ID no Marketplace: `Koihik.vscode-lua-format`
  • Ficheiro de config: `.lua-format` (formato YAML)
  • Ideal para: Bases de código existentes com requisitos de estilo complexos, controlo granular por regra
  • Ressalva: Requer o binário `lua-format` instalado separadamente em Linux/Mac

Warning

LuaFormatter (Koihik.vscode-lua-format) tem tido manutenção em declínio desde 2023. Para projetos novos, comece com Lua Language Server ou StyLua. Recorra ao LuaFormatter apenas se a sua equipa precisar especificamente das suas opções de configuração granular.

Como configurar o Lua LS no VS Code

Instalar o Lua Language Server leva menos de dois minutos. Aqui está o caminho de configuração completo de uma instalação fresca do VS Code até à formatação ao salvar a funcionar.

1

Instalar o Lua Language Server do Marketplace

Abra o VS Code e prima Ctrl+P (Cmd+P no Mac) para abrir a barra Quick Open. Digite `ext install sumneko.lua` e prima Enter. O VS Code descarrega e instala a extensão automaticamente. Não são necessários binários adicionais - o binário do language server vem incluído na extensão.

2

Abrir um ficheiro .lua e acionar a formatação

Abra qualquer ficheiro `.lua` do seu projeto. Prima Shift+Alt+F (Shift+Option+F no Mac) para executar Formatar Documento. No primeiro uso, o VS Code mostra um pedido para selecionar o formatador padrão para ficheiros Lua - escolha Lua Language Server. O ficheiro formata-se imediatamente e a seleção guarda-se nas suas definições de utilizador.

3

Criar um .luarc.json para configuração ao nível do projeto

Crie um ficheiro `.luarc.json` na raiz do seu projeto para controlar as regras de formatação e o comportamento do language server de forma consistente em toda a equipa. Faça commit deste ficheiro ao controlo de versões para que cada colaborador tenha definições idênticas. Uma configuração mínima inicial mira Lua 5.4 e desativa o diagnóstico undefined-global para projetos com globais personalizados.

.luarc.json
json
{
  "Lua.runtime.version": "Lua 5.4",
  "Lua.diagnostics.globals": ["myGlobal", "anotherGlobal"],
  "Lua.format.enable": true,
  "Lua.format.defaultConfig": {
    "indent_style": "space",
    "indent_size": "4",
    "max_line_length": "120",
    "trailing_table_separator": "smart"
  }
}
4

Ativar a formatação ao salvar

Abra as definições do VS Code com Ctrl+, (Cmd+, no Mac), procure `format on save` e ative Editor: Format On Save. A partir de agora, sempre que salvar um ficheiro `.lua`, o formatador corre automaticamente. Para limitar esta definição apenas a ficheiros Lua sem a ativar globalmente, adicione-a ao `.vscode/settings.json` do seu projeto.

.vscode/settings.json
json
{
  "editor.formatOnSave": true,
  "[lua]": {
    "editor.defaultFormatter": "sumneko.lua"
  }
}

Formatador de Lua - No navegador

Formate código Lua instantaneamente no seu navegador sem extensões nem instalações - cole o código e obtenha saída limpa e indentada em segundos.

Open tool

Configurando formatação ao salvar

A formatação ao salvar é a definição individual de maior impacto que pode ativar para o desenvolvimento de Lua no VS Code. Uma vez ativa, nunca aciona o formatador manualmente - corre sempre que prime Ctrl+S. Eis como configurá-la corretamente para diferentes cenários de equipa.

Definições de utilizador vs. de espaço de trabalho

O VS Code tem dois níveis de definições: ao nível do utilizador (aplicam-se a todos os projetos) e ao nível do espaço de trabalho (aplicam-se apenas ao projeto atual). Para formatação, o nível do espaço de trabalho é quase sempre a escolha certa - garante que cada colaborador do projeto usa o mesmo formatador, independentemente das preferências pessoais. As definições de espaço de trabalho vivem em `.vscode/settings.json` na raiz do projeto e devem ser commitadas ao controlo de versões.

Formatação ao salvar com StyLua

A extensão do StyLua para VS Code usa o mesmo mecanismo de formatação ao salvar. Defina o formatador padrão como `jq-steuersoftware.stylua` nas definições do espaço de trabalho. O StyLua lê um ficheiro de config `stylua.toml` se existir - é aí que define column_width, indent_type, indent_width e quote_style. Sem `stylua.toml`, o StyLua aplica as suas regras padrão (indentação de dois espaços, linhas de 120 caracteres, aspas duplas).

stylua.toml
toml
column_width = 120
line_endings = "Unix"
indent_type = "Spaces"
indent_width = 4
quote_style = "AutoPreferDouble"
call_parentheses = "Always"

Tip

Fazer commit tanto do `.vscode/settings.json` como do ficheiro de config do formatador (`.luarc.json` ou `stylua.toml`) garante que qualquer colaborador que abra o projeto no VS Code obtenha comportamento de formatação idêntico desde a primeira gravação - sem instruções de integração necessárias.

Excluir ficheiros da formatação

Alguns ficheiros Lua não devem ser reformatados - bibliotecas de terceiros, código gerado ou scripts minificados. No StyLua, adicione um ficheiro `.styluaignore` (mesma sintaxe do `.gitignore`) para excluir caminhos. No Lua Language Server, pode delimitar o formatador a diretórios específicos com a definição `Lua.workspace.ignoreDir` no `.luarc.json`.

LuaFormatter vs StyLua

Os dois formatadores de Lua mais discutidos são o LuaFormatter e o StyLua. Adotam filosofias de formatação fundamentalmente diferentes, e a escolha certa depende do contexto do seu projeto. Aqui está uma comparação direta.

AspectoLuaFormatter (Koihik)StyLua
FilosofiaAltamente configurávelOpinativa (estilo Prettier)
Ficheiro de config`.lua-format` (YAML)`stylua.toml` (TOML, opcional)
Regras de config30+ opções individuais~6 opções principais
Luau / Roblox✗ Não suportado✓ Suporte nativo de Luau
Instalação do binário✗ Passo separado nalguns SO✓ Incluído na extensão do VS Code
Uso em CI/CD✓ Via CLI lua-format✓ Binário autónomo
Manutenção ativa✗ Abrandou desde 2023✓ Ativamente mantido
Ideal paraBases de código com estilo já estabelecidoProjetos novos, Luau Roblox

Se está a começar um projeto novo, escolha o StyLua e faça commit da config. Se herdou uma base de código com estilo existente, configure o LuaFormatter para o respeitar. Nunca misture ambos os formatadores na mesma base de código.

- Regra prática de formatação Lua

Lua Language Server vs. StyLua: podem coexistir?

O Lua Language Server e o StyLua servem propósitos principais diferentes - o Lua LS é um language server completo para diagnósticos e intellisense, o StyLua é apenas um formatador. Podem coexistir na mesma configuração do VS Code: instale o Lua LS para diagnósticos e inteligência de código e defina o StyLua como formatador padrão para formatação de documentos. Esta combinação dá-lhe o melhor das duas ferramentas. Configure-o no .vscode/settings.json definindo o defaultFormatter de [lua] como jq-steuersoftware.stylua mantendo o Lua LS instalado pelas funcionalidades LSP.


Formatador integrado do Lua LS: quando chega

Para a maioria dos programadores, o formatador integrado do Lua Language Server é suficiente e elimina a necessidade de instalar uma segunda extensão. Cobre todas as tarefas de formatação padrão e integra-se limamente com `.luarc.json`. A razão principal para adicionar o StyLua por cima é se a sua equipa quiser uma imposição de estilo mais forte (p. ex. impor estilo de aspas ou convenções de parênteses em chamadas) que o formatador do Lua LS não suporta atualmente.

Formatador de Lua online como alternativa

As extensões do VS Code são a solução certa para o desenvolvimento do dia a dia. Mas há cenários em que precisa de formatar código Lua sem instalar nada de todo - e é aí que uma ferramenta baseada em navegador preenche a lacuna com limpeza.

Quando não pode instalar extensões

  • Máquinas partilhadas ou bloqueadas - estações corporativas, computadores de laboratório ou ambientes de CI onde não pode instalar extensões do VS Code
  • Limpeza pontual - um colega envia-lhe um excerto de Lua para rever e quer formatá-lo sem mudar de contexto
  • Revisão de código sem ambiente de dev - rever um pull request numa máquina onde a sua configuração completa de Lua não está configurada
  • Verificações de integração - confirmar que um ficheiro parece bem formatado antes do commit sem esperar que toda a toolchain instale
  • Inspeção de código minificado - tem uma saída do minificador de Lua e quer reformatá-la para leitura

O Formatador de Lua da Aback Tools cobre todos estes casos. Cole o seu código Lua no editor e o formatador aplica indentação consistente, normaliza o espaçamento de operadores e limpa linhas em branco no seu navegador - sem registo, sem instalação e sem dados a saírem do seu dispositivo.

Ferramentas Lua online complementares

A formatação é um passo num fluxo completo de qualidade de código Lua. Várias outras ferramentas de navegador cobrem tarefas adjacentes que precisará regularmente junto com a formatação:

Lua Beautifier

Limpe código Lua com indentação, espaçamento e quebras de linha adequados no seu navegador - sem extensões, sem instalação, sem uploads.

Open tool

Boas práticas de formatação de Lua

Um formatador trata dos espaços em branco, mas a boa qualidade de código Lua vai mais longe. Estas práticas trabalham junto com o seu formatador para manter bases de código Lua consistentes, legíveis e sustentáveis a qualquer escala.

Faça commit da config do formatador ao controlo de versões

Um `.luarc.json` para o Lua LS, `stylua.toml` para o StyLua ou `.lua-format` para o LuaFormatter devem viver na raiz do projeto e ser commitados ao seu repositório. Isto garante que cada colaborador - e cada execução de CI - usa regras de formatação idênticas. Sem uma config commitada, cada programador recorre às definições da sua própria extensão e a divergência de formatação volta a insinuar-se ao longo do tempo.

Adicione uma verificação de formatação em CI

A formatação ao salvar no VS Code só ajuda quem usa VS Code com a extensão instalada. Uma verificação em CI deteta o que escapar - colaboradores com outros editores, ficheiros rapidamente corrigidos ou código Lua gerado. A flag `--check` do StyLua sai com código diferente de zero se algum ficheiro não estiver corretamente formatado, tornando fácil falhar um job do GitHub Actions ou GitLab CI por violações de estilo.

Separe commits de formatação de commits de lógica

Se está a introduzir um formatador numa base de código existente pela primeira vez, corra o formatador sobre todos os ficheiros num único commit dedicado sem outras mudanças. Etiquete-o com clareza (p. ex. `chore: apply lua formatter to all files`). Isto mantém o ruído de formatação num commit para que todos os commits seguintes contenham apenas mudanças de lógica - e o `git blame` continua útil em cada linha.

Tip

Valide a sua sintaxe de Lua antes e depois de correr um formatador novo pela primeira vez. O [Validador de sintaxe de Lua](/tools/data/validators/lua-syntax-validator) trará imediatamente à superfície quaisquer erros do parser, para saber que a saída do formatador é segura para commit.

Use nomenclatura consistente para variáveis locais

Os formatadores não renomeiam variáveis - essa é a sua responsabilidade. A comunidade Lua segue amplamente `snake_case` para variáveis e funções e `PascalCase` para tabelas ao nível de módulo e construções de tipo classe. Concorde uma convenção com a sua equipa e documente-a no `CONTRIBUTING.md` do seu projeto. Se trabalha com Roblox Luau, o guia de estilo do Roblox especifica `PascalCase` para instâncias e serviços e `camelCase` para variáveis locais - tenha consciência da distinção antes de aplicar convenções da comunidade Lua às cegas.

Warning

Tenha cuidado ao correr formatadores em ficheiros Lua ofuscados. Scripts ofuscados usam deliberadamente formatação e nomenclatura invulgares para resistir à análise. Reformataá-los pode alterar codificações de strings ou quebrar blocos de linha única comprimidos propositadamente. Se precisar de ler Lua ofuscado, use primeiro o [Ajudante de desofuscação de Lua](/tools/data/obfuscators/lua-deobfuscator-helper) - não um formatador.

Key takeaways

  • O Lua Language Server (sumneko.lua) é a melhor extensão Lua polivalente para VS Code - inclui formatação, diagnósticos, inferência de tipos e inteligência de código numa única instalação.
  • O StyLua é a melhor escolha de formatador puro para projetos novos e desenvolvimento Luau Roblox, oferecendo consistência opinativa estilo Prettier com config mínima.
  • O LuaFormatter é uma opção legada configurável adequada a bases de código existentes que precisam de controlo granular de estilo, mas é menos ativamente mantido que as alternativas.
  • Faça commit da config do seu formatador (.luarc.json ou stylua.toml) ao controlo de versões para que todos os colaboradores obtenham comportamento de formatação idêntico automaticamente.
  • Adicione uma verificação de formatação em CI com StyLua --check para apanhar ficheiros não formatados antes de serem fundidos, independentemente do editor que os colaboradores usem.
  • O Formatador de Lua da Aback Tools trata formatações pontuais num separador do navegador - sem extensões, sem instalações, sem uploads ao servidor.
  • Nunca corra um formatador padrão em Lua ofuscado; use primeiro o Lua Deobfuscator Helper para restaurar a legibilidade antes de formatar.

Perguntas frequentes

The best Lua formatter for VS Code in 2026 is the Lua Language Server (sumneko.lua), published by sumneko. It is the most actively maintained, installs a full LSP with diagnostics, type inference, and formatting built in. It supports .luarc.json for project-level configuration and works out of the box for most Lua workflows including Roblox, LÖVE, and standalone scripting. StyLua (jq-steuersoftware.stylua) is a strong alternative if you want an opinionated, deterministic formatter focused purely on style consistency.

Open VS Code settings with Ctrl+, (Cmd+, on Mac), search for "format on save", and enable Editor: Format On Save. Then confirm that the Lua Language Server (or your preferred Lua formatter extension) is set as the default formatter for .lua files. You can also set this per-workspace in your .vscode/settings.json file by adding: "editor.formatOnSave": true and "[lua]": {"editor.defaultFormatter": "sumneko.lua"}.

Yes. The Lua Language Server (sumneko.lua) includes a built-in formatter that handles indentation, spacing around operators, blank line management, and consistent block structure. It is configured via .luarc.json in your project root. The formatter is not as opinionated as StyLua but gives you much more control over individual rules, which makes it preferred for teams with existing Lua codebases that have established style conventions.

StyLua is an opinionated Lua code formatter inspired by Prettier. It enforces a consistent style with minimal configuration - you don't configure individual rules, you accept the style. This makes it ideal for new projects and teams that want zero formatting debates. LuaFormatter is an older, more configurable tool that lets you fine-tune indent size, max line width, operator spacing, and more. Use StyLua for new greenfield projects; use LuaFormatter when you need granular control over an existing codebase.

Yes. The Aback Tools Lua Formatter runs entirely in your browser with no installation required. Paste your Lua code into the editor and the formatted output is ready instantly - no extension, no terminal command, no VS Code needed. This is especially useful on shared or locked-down machines, in CI workflows where you just need a quick check, or when reviewing someone else's Lua code on a machine where you have not set up your development environment.

The standard Lua Language Server extension (sumneko.lua) supports Lua 5.1-5.4 and LuaJIT. For Roblox Luau specifically, the recommended approach is to install the "Roblox LSP" extension or use Rojo with the roblox-lua-lsp setup, which extends the Lua Language Server with Roblox-specific globals, services, and Luau type syntax. Formatting for Roblox scripts works with StyLua as well, since StyLua supports Luau syntax natively.

A .luarc.json file is the project-level configuration file for the Lua Language Server extension. It sits at the root of your project and tells the language server how to behave: which Lua version to target (5.1, 5.2, 5.3, 5.4, or LuaJIT), which globals exist, what workspace libraries to load, and what formatting rules to apply. Committing .luarc.json to version control ensures every team member gets identical language server and formatter behaviour regardless of their local VS Code settings.

StyLua is the best choice for CI because it is available as a standalone binary with no runtime dependency. Download the StyLua binary for your CI platform, add a step that runs "stylua --check ." to verify formatting, and fail the pipeline on any style violations. LuaFormatter can also be used via the command line with "lua-format --check". For a quick no-install check during code review, the Aback Tools Lua Formatter at abacktools.com/tools/data/formatters/lua-formatter handles the job in a browser tab.

ShareXLinkedIn