このプロジェクトについて

GDScript Formatterは、Godot 4用のGDScriptファイルをフォーマットおよびリントするコマンドラインツールです。Tree-sitter GDScriptパーサー上に構築されており、公式のGDScriptスタイルガイドに従うことを目的としています。このプロジェクトは、Zed、Helix、Neovim、EmacsなどのエディタでのGDScriptサポートを支えるパーサーをテストおよび改善するために使用されると述べています。 フォーマット機能には、単一ファイル、フォルダ、または複数のパスに対する実行、その場でのフォーマットまたは標準出力への出力、設定可能な最大行長による自動行折り返し、およびスタイルガイドに合わせたコードの並べ替え(変数を先に、次に関数など)が含まれます。チェックモードでは、変更が必要な場合に終了コード1を返し、ビルドシステムでの使用に適しています。セーフモードと--verify-structureフラグは、フォーマット済み出力を再解析し、入力と構造が異なる場合は拒否します。READMEには、これは不完全なチェックであり、意味的等価性の保証ではないと記載されています。 設定では、スペースとタブ、インデントサイズ、定義周辺の空行、引用符スタイルの正規化などをサポートしています。設定は、標準キーに加えてgdscript_formatter_プレフィックス付きキーを使用して.editorconfigファイルで共有できます。コマンドラインのフラグはEditorConfigの値を上書きします。ファイルやディレクトリは、--excludeまたはgdscript_formatter_excludeで除外できます。コードのセクションは、# fmt: offおよび# fmt: onコメントで保持できます。 バンドルされたリンターは、スタイルと慣習の問題をチェックし、filepath:line:rule:severity: descriptionの形式で出力します。ルールは、命名規則(関数、クラス、シグナル、変数、引数、ループ変数、列挙型、定数)、重複したload呼び出し、単独式、不要なpass、未使用の引数、自己比較、プライベートアクセス、最大行長、return後の不要なelseをカバーしています。ルールは無効にでき、特定の行はgdlint-ignoreコメントで無視できます。--prettyフラグは、より読みやすい出力を提供します。 インストールは、リリースページからWindows、macOS、Linux用のプリビルドバイナリを介して行われ、Arch Linux(AUR)、Windows(Scoop、WinGet)用のコミュニティパッケージと、GitHub Actionsセットアップアクションがあります。エディタで直接使用するためのGodot 4アドオンが利用可能で、EditorConfigを介して制御される保存時フォーマットも含まれます。エディタ統合は、VSCode、Zed、Helix、JetBrains Rider、Sublime Text用に文書化されています。コミット前にフォーマッタとリンターを実行するためのpre-commitフック設定が提供されています。 このプロジェクトはRustで書かれており、cargoで構築されています。その構造は、フォーマットルール、レンダリングと行折り返し、コードの並べ替え、セーフモード、EditorConfigサポート、リンタールールを分離しています。テストは入力/期待値のファイルペアを使用し、ベンチマークとプロファイリングスクリプトが含まれています。READMEは、Tree-sitterでの解析、中間表現の構築、最終出力のレンダリングという3ステップのパイプラインを文書化しています。このプロジェクトはMITライセンスです。