Sobre el proyecto

GDScript Formatter es una herramienta de línea de comandos que formatea y analiza archivos GDScript para Godot 4. Está construida sobre el parser Tree-sitter GDScript y pretende seguir la guía de estilo oficial de GDScript. El proyecto afirma que se utiliza para probar y mejorar el parser que impulsa la compatibilidad con GDScript en editores como Zed, Helix, Neovim y Emacs. Las capacidades de formateo incluyen ejecutarse sobre archivos individuales, carpetas o múltiples rutas, formatear en el lugar o imprimir a stdout, ajuste automático de líneas con una longitud máxima de línea configurable y reordenación del código para que coincida con la guía de estilo (primero variables, luego funciones, etc.). Un modo de comprobación devuelve el código de salida 1 cuando se necesitan cambios, para su uso en sistemas de compilación. Un modo seguro y una bandera --verify-structure vuelven a analizar la salida formateada y la rechazan si la estructura difiere de la entrada; el README señala que esta es una comprobación imperfecta, no una garantía de equivalencia semántica. La configuración admite espacios frente a tabulaciones, tamaño de indentación, líneas en blanco alrededor de definiciones, normalización del estilo de comillas y más. Los ajustes se pueden compartir mediante un archivo .editorconfig usando claves estándar más claves con el prefijo gdscript_formatter_; las banderas de línea de comandos anulan los valores de EditorConfig. Los archivos o directorios se pueden excluir con --exclude o mediante gdscript_formatter_exclude. Secciones de código se pueden preservar con los comentarios # fmt: off y # fmt: on. El linter incluido comprueba problemas de estilo y convenciones y genera filepath:line:rule:severity: description. Las reglas cubren convenciones de nombres (funciones, clases, señales, variables, argumentos, variables de bucle, enumeraciones, constantes), llamadas load duplicadas, expresiones independientes, pass innecesario, argumentos no usados, autocomparación, acceso privado, longitud máxima de línea y else innecesario después de return. Las reglas se pueden desactivar, y líneas específicas se pueden ignorar con comentarios gdlint-ignore. Una bandera --pretty proporciona una salida más legible. La instalación se realiza mediante binarios precompilados para Windows, macOS y Linux desde la página de releases, con paquetes de la comunidad para Arch Linux (AUR), Windows (Scoop, WinGet) y una acción de configuración de GitHub Actions. Hay disponible un complemento de Godot 4 para usar directamente en el editor, incluido el formateo al guardar controlado mediante EditorConfig. Las integraciones de editores están documentadas para VSCode, Zed, Helix, JetBrains Rider y Sublime Text. Se proporciona una configuración de hook de pre-commit para ejecutar el formateador y el linter antes de los commits. El proyecto está escrito en Rust y se compila con cargo. Su estructura separa las reglas de formateo, el renderizado y el ajuste de líneas, la reordenación de código, el modo seguro, la compatibilidad con EditorConfig y las reglas del linter. Las pruebas usan pares de archivos de entrada/esperado, y se incluyen benchmarks y scripts de perfilado. El README documenta el pipeline de tres pasos: análisis con Tree-sitter, construcción de una representación intermedia y renderizado de la salida final. El proyecto tiene licencia MIT.