Sobre o projeto
GDScript Formatter é uma ferramenta de linha de comando que formata e faz lint de arquivos GDScript para Godot 4. É construída sobre o parser Tree-sitter GDScript e visa seguir o guia de estilo oficial do GDScript. O projeto afirma que é usado para testar e melhorar o parser que alimenta o suporte a GDScript em editores como Zed, Helix, Neovim e Emacs.
As capacidades de formatação incluem executar sobre arquivos únicos, pastas ou múltiplos caminhos, formatar in-place ou imprimir para stdout, quebra automática de linhas com comprimento máximo configurável, e reordenar código para corresponder ao guia de estilo (variáveis primeiro, depois funções, etc.). Um modo de verificação retorna código de saída 1 quando mudanças são necessárias, para uso em sistemas de build. Um modo seguro e uma flag --verify-structure reanalisam a saída formatada e a rejeitam se a estrutura diferir da entrada; o README observa que esta é uma verificação imperfeita, não uma garantia de equivalência semântica.
A configuração suporta espaços vs tabs, tamanho de indentação, linhas em branco ao redor de definições, normalização de aspas, e mais. As configurações podem ser compartilhadas através de um arquivo .editorconfig usando chaves padrão mais chaves prefixadas com gdscript_formatter_; flags de linha de comando sobrescrevem valores do EditorConfig. Arquivos ou diretórios podem ser excluídos com --exclude ou via gdscript_formatter_exclude. Seções de código podem ser preservadas com comentários # fmt: off e # fmt: on.
O linter incluído verifica problemas de estilo e convenção e gera saída no formato filepath:line:rule:severity: description. As regras cobrem convenções de nomenclatura (funções, classes, sinais, variáveis, argumentos, variáveis de loop, enums, constantes), chamadas de load duplicadas, expressões isoladas, pass desnecessário, argumentos não utilizados, auto-comparação, acesso privado, comprimento máximo de linha, e else desnecessário após return. Regras podem ser desabilitadas, e linhas específicas podem ser ignoradas com comentários gdlint-ignore. Uma flag --pretty fornece saída mais legível.
A instalação é feita via binários pré-compilados para Windows, macOS e Linux na página de releases, com pacotes da comunidade para Arch Linux (AUR), Windows (Scoop, WinGet) e uma action de setup para GitHub Actions. Um add-on para Godot 4 está disponível para uso direto no editor, incluindo formatar-ao-salvar controlado via EditorConfig. Integrações com editores são documentadas para VSCode, Zed, Helix, JetBrains Rider e Sublime Text. Uma configuração de hook de pre-commit é fornecida para executar o formatador e o linter antes de commits.
O projeto é escrito em Rust e construído com cargo. Sua estrutura separa regras de formatação, renderização e quebra de linha, reordenação de código, modo seguro, suporte a EditorConfig e regras de lint. Testes usam pares de arquivos entrada/esperado, e scripts de benchmark e profiling estão incluídos. O README documenta o pipeline de três etapas de análise com Tree-sitter, construção de uma representação intermediária, e renderização da saída final. O projeto é licenciado sob MIT.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.