À propos du projet

GDScript Formatter est un outil en ligne de commande qui formate et lint les fichiers GDScript pour Godot 4. Il est basé sur le parseur Tree-sitter GDScript et vise à suivre le guide de style officiel de GDScript. Le projet indique qu'il est utilisé pour tester et améliorer le parseur qui alimente le support GDScript dans des éditeurs tels que Zed, Helix, Neovim et Emacs. Les capacités de formatage incluent l'exécution sur des fichiers uniques, des dossiers ou plusieurs chemins, le formatage en place ou l'impression vers stdout, l'enveloppement automatique des lignes avec une longueur maximale configurable, et la réorganisation du code pour correspondre au guide de style (variables d'abord, puis fonctions, etc.). Un mode de vérification renvoie le code de sortie 1 lorsque des modifications sont nécessaires, pour une utilisation dans les systèmes de build. Un mode sûr et un drapeau --verify-structure réanalysent la sortie formatée et la rejettent si la structure diffère de l'entrée ; le README note que c'est un contrôle imparfait, pas une garantie d'équivalence sémantique. La configuration prend en charge les espaces vs les tabulations, la taille d'indentation, les lignes vides autour des définitions, la normalisation des guillemets, et plus encore. Les paramètres peuvent être partagés via un fichier .editorconfig en utilisant des clés standard plus des clés préfixées par gdscript_formatter_ ; les drapeaux de ligne de commande remplacent les valeurs EditorConfig. Les fichiers ou dossiers peuvent être exclus avec --exclude ou via gdscript_formatter_exclude. Des sections de code peuvent être préservées avec les commentaires # fmt: off et # fmt: on. Le linter intégré vérifie les problèmes de style et de convention et produit une sortie au format filepath:line:rule:severity: description. Les règles couvrent les conventions de nommage (fonctions, classes, signaux, variables, arguments, variables de boucle, enums, constantes), les appels de chargement dupliqués, les expressions autonomes, les pass inutiles, les arguments inutilisés, l'auto-comparaison, l'accès privé, la longueur maximale de ligne, et les else inutiles après return. Les règles peuvent être désactivées, et des lignes spécifiques peuvent être ignorées avec des commentaires gdlint-ignore. Un drapeau --pretty fournit une sortie plus lisible. L'installation se fait via des binaires précompilés pour Windows, macOS et Linux depuis la page des versions, avec des paquets communautaires pour Arch Linux (AUR), Windows (Scoop, WinGet) et une action de configuration GitHub Actions. Un add-on Godot 4 est disponible pour une utilisation directe dans l'éditeur, y compris le formatage à la sauvegarde contrôlé via EditorConfig. Les intégrations d'éditeurs sont documentées pour VSCode, Zed, Helix, JetBrains Rider et Sublime Text. Une configuration de hook pre-commit est fournie pour exécuter le formateur et le linter avant les commits. Le projet est écrit en Rust et construit avec cargo. Sa structure sépare les règles de formatage, le rendu et l'enveloppement de lignes, la réorganisation du code, le mode sûr, le support EditorConfig et les règles du linter. Les tests utilisent des paires de fichiers d'entrée/attendu, et des scripts de benchmarks et de profilage sont inclus. Le README documente le pipeline en trois étapes de l'analyse avec Tree-sitter, la construction d'une représentation intermédiaire, et le rendu de la sortie finale. Le projet est sous licence MIT.