Saltar al contenido
Aback Tools Logo

Mejores extensiones de formateo de Lua para VS Code

Comparación de las mejores extensiones de formateo de Lua para VS Code: Lua Language Server, StyLua y LuaFormatter - configuración, formato al guardar y alternativa en el navegador.

DH
Tips & Best Practices11 min de lectura2,600 palabras

El código Lua sin formatear se acumula rápido - indentación inconsistente, espaciado desigual alrededor de los operadores y bloques que difieren entre miembros del equipo. La extensión de VS Code adecuada corrige todo eso automáticamente. Esta guía cubre las mejores extensiones de formateo de Lua para VS Code en 2026, cómo configurar cada una, cómo activar el formato al guardar y qué usar cuando no puedes instalar extensiones en absoluto.

3+Formateadores de Lua principalesPara VS Code en 2026
1M+Instalaciones de Lua LSLa extensión de Lua más usada
< 5sTiempo de configuraciónDe cero a formato al guardar

Por qué importa el formateo en Lua

Lua no tiene un estándar de estilo impuesto. El parser del lenguaje acepta cualquier indentación válida, cualquier espaciado de operadores y cualquier disposición de bloques - lo que significa que cada desarrollador recurre a sus propios hábitos. En un proyecto en solitario está bien. En una base de código compartida, un mod de juego o un repositorio de scripts de equipo, el formato inconsistente genera ruido en cada diff, ralentiza la revisión de código y hace la depuración más difícil de lo necesario.

El coste de un estilo de Lua inconsistente

Cuando dos personas escriben Lua de forma distinta - una usa indentación de cuatro espacios, otra tabulaciones; una espacia alrededor de los operadores, la otra no - cada commit contiene cambios de formato mezclados con cambios de lógica. Los revisores dedican tiempo a leer diffs de estilo en lugar de diffs de lógica. Los conflictos de fusión se disparan. Un formateador lo resuelve normalizando cada archivo al mismo estilo al guardar, haciendo los diffs limpios y revisables.

  • Indentación consistente - los bloques `do`/`end`, `if`/`end`, `function`/`end` se indentan siempre de la misma manera
  • Espaciado uniforme - los espacios alrededor de `=`, `+`, `-`, `..` y otros operadores se aplican de forma consistente
  • Disciplina de líneas en blanco - las líneas en blanco extra entre funciones y dentro de los bucles se normalizan automáticamente
  • Manejo legible de cadenas - las concatenaciones largas y las cadenas multilínea se disponen de forma predecible
  • Aplicación a nivel de equipo - un `.luarc.json` o `stylua.toml` compartido en el control de versiones garantiza que todos usen las mismas reglas

Note

El formateo es distinto del linting. Un formateador solo cambia el espaciado y la disposición - nunca altera la lógica. Un linter como el [Validador de sintaxis de Lua](/tools/data/validators/lua-syntax-validator) detecta errores semánticos, variables no definidas y problemas de lógica. Necesitas ambos.

Las mejores extensiones de formateo de Lua para VS Code

El Marketplace de VS Code tiene varias extensiones de Lua, pero solo unas pocas se mantienen activamente y ofrecen un formateo fiable. Estas son las tres que vale la pena conocer en 2026, por orden de recomendación.

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

El Lua Language Server, publicado como `sumneko.lua` en el Marketplace de VS Code, es la herramienta de desarrollo de Lua más completa disponible para VS Code. Instala una implementación completa del Protocolo de Servidor de Lenguaje (LSP) que ofrece diagnósticos, inferencia de tipos, ir a definición, documentación al pasar el ratón, búsqueda de referencias en todo el workspace y un formateador integrado - todo en una sola extensión.

  • Editor: sumneko (Tang Liu)
  • ID del Marketplace: `sumneko.lua`
  • Instalaciones activas: 1M+ (a fecha de 2026)
  • Versiones de Lua soportadas: 5.1, 5.2, 5.3, 5.4, LuaJIT
  • Formateador: Integrado, configurado vía `.luarc.json`
  • Formato al guardar: Soportado de forma nativa
  • Ideal para: La mayoría de flujos de trabajo de Lua - scripting de juegos, herramientas independientes, sistemas embebidos

Tip

El Lua Language Server es también la base recomendada para desarrollo en Roblox cuando se combina con el paquete de definiciones de tipos `roblox-lua-lsp`, que añade servicios de Roblox, instancias y globales específicos de Luau al comprobador de tipos.

2. StyLua (jq-steuersoftware.stylua) - alternativa con estilo propio

StyLua es un formateador de código Lua con estilo propio, escrito en Rust e inspirado en Prettier. La extensión de VS Code envuelve el binario de StyLua y lo integra como formateador de documentos. A diferencia del Lua Language Server, StyLua es solo un formateador - no ofrece diagnósticos, documentación al pasar el ratón ni autocompletado. Lo que aporta es un estilo determinista y sin debates: aceptas el estilo y te comprometes con él, igual que funciona Prettier para JavaScript.

  • Editor: jq-steuersoftware
  • ID del Marketplace: `jq-steuersoftware.stylua`
  • Versiones de Lua soportadas: 5.1, 5.2, 5.3, 5.4, LuaJIT, Luau (Roblox)
  • Archivo de configuración: `stylua.toml` (opcional - funciona bien con los valores por defecto)
  • Formato al guardar: Soportado de forma nativa
  • Ideal para: Proyectos nuevos, equipos que quieren formateo tipo Prettier sin configuración, desarrollo de Luau en Roblox

3. LuaFormatter (Koihik.vscode-lua-format) - opción heredada configurable

LuaFormatter es una extensión más antigua que envuelve la herramienta de línea de comandos `lua-format`. Ofrece una configuración amplia - puedes ajustar individualmente el ancho de indentación, la longitud máxima de línea, el espaciado de operadores, la indentación de continuación y muchas otras reglas. Ese nivel de control lo hace útil al migrar una base de código existente que ya tiene una convención de estilo establecida que el formateador debe respetar. Sin embargo, su desarrollo se ha ralentizado desde que surgió StyLua, y el binario `lua-format` requiere un paso de instalación aparte en algunas plataformas.

  • Editor: Koihik
  • ID del Marketplace: `Koihik.vscode-lua-format`
  • Archivo de configuración: `.lua-format` (formato YAML)
  • Ideal para: Bases de código existentes con requisitos de estilo complejos, control granular por regla
  • Aviso: Requiere el binario `lua-format` instalado aparte en Linux/Mac

Warning

LuaFormatter (Koihik.vscode-lua-format) ha visto un mantenimiento en declive desde 2023. Para proyectos nuevos, empieza con Lua Language Server o StyLua. Recurre a LuaFormatter solo si tu equipo necesita específicamente sus opciones de configuración granular.

Cómo configurar Lua LS en VS Code

Instalar el Lua Language Server lleva menos de dos minutos. Esta es la ruta completa de configuración desde una instalación fresca de VS Code hasta el formato al guardar funcionando.

1

Instalar Lua Language Server desde el Marketplace

Abre VS Code y pulsa Ctrl+P (Cmd+P en Mac) para abrir la barra de Quick Open. Escribe `ext install sumneko.lua` y pulsa Enter. VS Code descarga e instala la extensión automáticamente. No se requieren binarios adicionales - el binario del language server viene incluido con la extensión.

2

Abrir un archivo .lua y ejecutar el formateo

Abre cualquier archivo `.lua` de tu proyecto. Pulsa Shift+Alt+F (Shift+Opción+F en Mac) para ejecutar Formatear documento. En el primer uso, VS Code muestra un aviso pidiéndote seleccionar un formateador por defecto para archivos Lua - elige Lua Language Server. El archivo se formatea al instante y la selección se guarda en tu configuración de usuario.

3

Crear un .luarc.json para la configuración a nivel de proyecto

Crea un archivo `.luarc.json` en la raíz de tu proyecto para controlar las reglas de formateo y el comportamiento del language server de forma consistente en todo el equipo. Haz commit de este archivo al control de versiones para que cada colaborador reciba la misma configuración. Una configuración mínima inicial apunta a Lua 5.4 y desactiva el diagnóstico de undefined-global para proyectos con globales 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

Activar el formato al guardar

Abre la configuración de VS Code con Ctrl+, (Cmd+, en Mac), busca `format on save` y activa Editor: Format On Save. A partir de ahora, cada vez que guardes un archivo `.lua`, el formateador se ejecutará automáticamente. Para limitar este ajuste solo a archivos Lua sin activarlo globalmente, añádelo al `.vscode/settings.json` de tu proyecto.

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

Formateador de Lua - En el navegador

Formatea código Lua al instante en tu navegador sin extensiones ni instalaciones - pega tu código y obtén una salida limpia e indentada en segundos.

Open tool

Configurar el formato al guardar

El formato al guardar es el ajuste individual de mayor impacto que puedes activar para el desarrollo de Lua en VS Code. Una vez activo, nunca accionas el formateador manualmente - se ejecuta cada vez que pulsas Ctrl+S. Así se configura correctamente para distintos escenarios de equipo.

Ajustes de usuario frente a ajustes de workspace

VS Code tiene dos niveles de configuración: a nivel de usuario (se aplica a todos los proyectos) y a nivel de workspace (solo al proyecto actual). Para el formateo, el nivel de workspace casi siempre es la elección correcta - garantiza que cada colaborador del proyecto use el mismo formateador, sin importar sus preferencias personales a nivel de usuario. Los ajustes de workspace viven en `.vscode/settings.json` en la raíz del proyecto y deberían subirse al control de versiones.

Formato al guardar con StyLua

La extensión de StyLua para VS Code usa el mismo mecanismo de formato al guardar. Fija el formateador por defecto en `jq-steuersoftware.stylua` en los ajustes de tu workspace. StyLua lee un archivo de configuración `stylua.toml` si existe - allí defines column_width, indent_type, indent_width y quote_style. Sin `stylua.toml`, StyLua aplica sus reglas por defecto (indentación de dos espacios, longitud de línea de 120 caracteres, comillas dobles).

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

Tip

Subir tanto el `.vscode/settings.json` como el archivo de configuración de tu formateador (`.luarc.json` o `stylua.toml`) garantiza que cualquier colaborador que abra el proyecto en VS Code obtenga el mismo comportamiento de formateo desde el primer guardado - sin necesitar instrucciones de onboarding.

Excluir archivos del formateo

Algunos archivos Lua no deberían reformatearse - librerías de terceros, código generado o scripts minificados. En StyLua, añade un archivo `.styluaignore` (misma sintaxis que `.gitignore`) para excluir rutas. En el Lua Language Server, puedes acotar el formateador a directorios específicos con el ajuste `Lua.workspace.ignoreDir` en `.luarc.json`.

LuaFormatter frente a StyLua

Los dos formateadores de Lua más discutidos son LuaFormatter y StyLua. Adoptan filosofías de formateo fundamentalmente distintas y la elección correcta depende del contexto de tu proyecto. Aquí tienes una comparación directa.

AspectoLuaFormatter (Koihik)StyLua
FilosofíaMuy configurableCon estilo propio (tipo Prettier)
Archivo de configuración`.lua-format` (YAML)`stylua.toml` (TOML, opcional)
Reglas de configuración30+ opciones individuales~6 opciones básicas
Luau / Roblox✗ No soportado✓ Soporte nativo de Luau
Instalación del binario✗ Paso aparte en algunos SO✓ Incluido en la extensión de VS Code
Uso en CI/CD✓ Vía CLI lua-format✓ Binario independiente
Mantenimiento activo✗ Ralentizado desde 2023✓ Mantenimiento activo
Ideal paraBases de código con estilo ya establecidoProyectos nuevos, Luau de Roblox

Si empiezas un proyecto nuevo, elige StyLua y sube la configuración. Si heredas una base de código con un estilo ya establecido, configura LuaFormatter para respetarlo. Nunca mezcles ambos formateadores en la misma base de código.

- Regla práctica del formateo de Lua

Lua Language Server frente a StyLua: ¿pueden coexistir?

El Lua Language Server y StyLua cumplen propósitos principales distintos - Lua LS es un language server completo para diagnósticos e intellisense, y StyLua es solo un formateador. Pueden coexistir en la misma configuración de VS Code: instala Lua LS para diagnósticos e inteligencia de código, y fija StyLua como formateador por defecto para el formateo de documentos. Esta combinación te da lo mejor de ambos. Configúralo en .vscode/settings.json fijando el defaultFormatter de [lua] a jq-steuersoftware.stylua mientras mantienes Lua LS instalado por sus funciones LSP.


El formateador integrado de Lua LS: cuándo basta

Para la mayoría de los desarrolladores, el formateador integrado del Lua Language Server es suficiente y elimina la necesidad de instalar una segunda extensión. Cubre todas las tareas de formateo estándar y se integra limpiamente con `.luarc.json`. La razón principal para añadir StyLua encima es que tu equipo quiera una aplicación de estilo más fuerte (p. ej. imponer un estilo de comillas o convenciones de paréntesis en llamadas) que el formateador de Lua LS no soporta actualmente.

Formateador de Lua online como alternativa

Las extensiones de VS Code son la solución correcta para el desarrollo diario. Pero hay escenarios en los que necesitas formatear código Lua sin instalar nada en absoluto - y ahí es donde una herramienta basada en navegador cubre el hueco con elegancia.

Cuando no puedes instalar extensiones

  • Equipos compartidos o restringidos - estaciones de trabajo corporativas, ordenadores de laboratorio o entornos de CI donde no puedes instalar extensiones de VS Code
  • Limpieza puntual - un colega te envía un fragmento de Lua para revisar y quieres formatearlo sin cambiar de contexto
  • Revisión de código sin entorno de desarrollo - revisar un pull request en una máquina donde tu configuración completa de Lua no está instalada
  • Comprobaciones de onboarding - verificar que un archivo se ve bien formateado antes de hacer commit sin esperar a que se instale toda la cadena de herramientas
  • Inspección de código minificado - tienes una salida del minificador de Lua y quieres reformatearla para leerla

El Formateador de Lua de Aback Tools cubre todos estos casos. Pega tu código Lua en el editor y el formateador aplica indentación consistente, normaliza el espaciado de operadores y limpia las líneas en blanco en tu navegador - sin registro, sin instalación y sin que tus datos salgan de tu dispositivo.

Herramientas de Lua online complementarias

El formateo es un paso de un flujo completo de calidad de código Lua. Varias otras herramientas de navegador cubren tareas vecinas que necesitarás con frecuencia junto al formateo:

Lua Beautifier

Limpia código Lua con indentación, espaciado y saltos de línea adecuados en tu navegador - sin extensiones, sin instalación, sin subidas.

Open tool

Buenas prácticas de formateo de Lua

Un formateador se encarga del espaciado, pero la buena calidad del código Lua va más allá. Estas prácticas trabajan junto a tu formateador para mantener las bases de código Lua consistentes, legibles y mantenibles a cualquier escala.

Sube la configuración de tu formateador al control de versiones

Un `.luarc.json` para Lua LS, `stylua.toml` para StyLua o `.lua-format` para LuaFormatter deben vivir en la raíz del proyecto y subirse a tu repositorio. Esto garantiza que cada colaborador - y cada ejecución de CI - use las mismas reglas de formateo. Sin una configuración subida, cada desarrollador recurre a los ajustes de su propia extensión y la divergencia de formato vuelve a colarse con el tiempo.

Añade una comprobación de formato en CI

El formato al guardar en VS Code solo ayuda a quien usa VS Code con la extensión instalada. Una comprobación de CI detecta lo que se cuela - colaboradores con otros editores, archivos parcheados a las prisas o código Lua generado. La bandera `--check` de StyLua sale con código distinto de cero si algún archivo no está bien formateado, lo que facilita hacer fallar un job de GitHub Actions o GitLab CI por infracciones de estilo.

Separa los commits de formato de los commits de lógica

Si introduces un formateador por primera vez en una base de código existente, ejecuta el formateador sobre todos los archivos en un único commit dedicado sin otros cambios. Etiquétalo con claridad (p. ej. `chore: apply lua formatter to all files`). Así el ruido de formato queda en un commit y todos los commits posteriores contienen solo cambios de lógica - y `git blame` sigue siendo útil en cada línea.

Tip

Valida tu sintaxis de Lua antes y después de ejecutar un formateador nuevo por primera vez. El [Validador de sintaxis de Lua](/tools/data/validators/lua-syntax-validator) mostrará de inmediato cualquier error del parser, así sabrás que la salida del formateador es segura para hacer commit.

Usa una nomenclatura consistente para variables locales

Los formateadores no renombran variables - esa es tu responsabilidad. La comunidad de Lua sigue mayoritariamente `snake_case` para variables y funciones y `PascalCase` para tablas a nivel de módulo y constructos tipo clase. Acorda una convención con tu equipo y documéntala en el `CONTRIBUTING.md` de tu proyecto. Si trabajas con Roblox Luau, la guía de estilo de Roblox especifica `PascalCase` para instancias y servicios y `camelCase` para variables locales - ten presente la distinción antes de aplicar convenciones de la comunidad de Lua a ciegas.

Warning

Ten cuidado al ejecutar formateadores sobre archivos Lua ofuscados. Los scripts ofuscados usan intencionadamente formato y nomenclatura inusuales para resistir el análisis. Reformatearlos puede alterar codificaciones de cadenas o romper bloques de una sola línea comprimidos a propósito. Si necesitas leer Lua ofuscado, usa primero el [Asistente de desofuscación de Lua](/tools/data/obfuscators/lua-deobfuscator-helper) - no un formateador.

Key takeaways

  • El Lua Language Server (sumneko.lua) es la extensión de Lua más completa para VS Code - incluye formateo, diagnósticos, inferencia de tipos e inteligencia de código en una sola instalación.
  • StyLua es la mejor opción de solo formateo para proyectos nuevos y desarrollo de Luau en Roblox, con consistencia tipo Prettier y configuración mínima.
  • LuaFormatter es una opción heredada configurable, adecuada para bases de código existentes que necesitan control granular del estilo, pero se mantiene menos activamente que las alternativas.
  • Sube la configuración de tu formateador (.luarc.json o stylua.toml) al control de versiones para que todos los colaboradores obtengan automáticamente el mismo comportamiento de formateo.
  • Añade una comprobación de formato en CI con StyLua --check para detectar archivos sin formatear antes de que se fusionen, sin importar qué editor usen los colaboradores.
  • El Formateador de Lua de Aback Tools cubre formateos puntuales en una pestaña del navegador - sin extensiones, sin instalaciones, sin subidas al servidor.
  • Nunca ejecutes un formateador estándar sobre Lua ofuscado; usa primero el Lua Deobfuscator Helper para devolver la legibilidad antes de formatear.

Preguntas frecuentes

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