这个项目能做什么

GDScript Formatter 是一款用于格式化与 lint Godot 4 GDScript 文件的命令行工具。它基于 Tree-sitter GDScript 解析器构建,目标是遵循官方 GDScript 风格指南。项目表示,它被用于测试和改进为 Zed、Helix、Neovim 和 Emacs 等编辑器提供 GDScript 支持的解析器。 格式化能力包括:可对单个文件、文件夹或多个路径运行;可原地格式化或打印到 stdout;支持自动换行,并可配置最大行长度;可按风格指南重排代码(变量在前,函数在后等)。检查模式在需要更改时返回退出码 1,便于用于构建系统。安全模式和 --verify-structure 标志会重新解析格式化后的输出,如果结构与输入不同则拒绝;README 指出这是一种不完美的检查,并不保证语义等价。 配置支持空格与制表符、缩进大小、定义周围的空行、引号风格规范化等。设置可通过 .editorconfig 文件共享,使用标准键以及带 gdscript_formatter_ 前缀的键;命令行标志会覆盖 EditorConfig 值。可使用 --exclude 或通过 gdscript_formatter_exclude 排除文件或目录。代码段可通过 # fmt: off 和 # fmt: on 注释保留。 内置 linter 会检查风格和约定问题,并输出 filepath:line:rule:severity: description。规则涵盖命名约定(函数、类、信号、变量、参数、循环变量、枚举、常量)、重复的 load 调用、独立表达式、不必要的 pass、未使用参数、自比较、私有访问、最大行长度,以及 return 之后不必要的 else。规则可以禁用,特定行可通过 gdlint-ignore 注释忽略。--pretty 标志可提供更易读的输出。 安装方式包括从 releases 页面获取适用于 Windows、macOS 和 Linux 的预构建二进制文件,以及面向 Arch Linux(AUR)、Windows(Scoop、WinGet)的社区包和 GitHub Actions 设置 action。还提供 Godot 4 插件,可直接在编辑器中使用,包括通过 EditorConfig 控制的保存时格式化。文档中记录了面向 VSCode、Zed、Helix、JetBrains Rider 和 Sublime Text 的编辑器集成。提供了 pre-commit 钩子配置,用于在提交前运行格式化和 linter。 该项目使用 Rust 编写,并通过 cargo 构建。其结构将格式化规则、渲染与换行、代码重排、安全模式、EditorConfig 支持和 linter 规则分离。测试使用输入/预期文件对,并包含基准测试和性能分析脚本。README 记录了使用 Tree-sitter 解析、构建中间表示以及渲染最终输出的三步流水线。该项目采用 MIT 许可证。