3 个版本
0.1.2 | 2024年7月30日 |
---|---|
0.1.1 | 2024年7月23日 |
0.1.0 | 2024年7月23日 |
在 命令行工具 中排名第 187
每月下载 407 次
18KB
421 行
cargo-align
一个简单的代码文本对齐工具。
安装
cargo安装 cargo-align
使用方法
在您想要对齐的包中运行 cargo align
,所有工作区根目录下的文件都将被对齐。
可以通过将特定文件或文件夹作为第一个参数传递来对其进行对齐,例如 cargo align -- path/to/file/or/folder
在文件中写入字符串 align_by stop
将跳过该文件中的其余部分。
写入字符串 align_by ""
将对以下行的内容进行对齐,直到第一个与引号内容不匹配的行。
可以通过写入 align_by sort ""
在对齐后对匹配的对齐行进行排序。
对齐标记由空格分隔,align_by "= ;"
将首先按 =
对齐,然后按 ;
从左到右对齐。
对齐标记仅使用一次。这意味着 align_by "="
只会在每行中找到的第一个 =
上对齐,并忽略后续的。
可以使用转义字符 \
对双引号进行对齐。例如 align_by "\""
局限性、原因和当前状态
这个工具主要是为我的项目开发的。它目前只具备足够的功能来支持我的使用案例。如果您希望看到它支持您的案例,欢迎提出问题/拉取请求。
目前为简化实现,硬编码使用cargo metadata
的工作空间路径。
我选择了align_by sort ""
语法,因为除了注释和字符串之外,它不是有效的Rust和TOML语法,因此与现有代码发生冲突的可能性极低。由于没有对对齐语句是否位于Rust/TOML注释内进行特殊检查,所以它可以在任何编程语言上正常工作。
这个功能灵感来源于VSCode插件align-by-regex
,尽管目前为了简化实现已经去掉了正则表达式部分。
由于实现非常基础,我不得不添加align_by stop
,否则几乎不可能编写关于测试。
示例
未对齐
align_by "= ;"
let a = 111;
let bbb = 2;
对齐
align_by "= ;"
let a = 111;
let bbb = 2;
更多示例可以在测试中找到。
不使用cargo install
请确保已安装Rust。
git clone https://github.com/MeGaGiGaGon/cargo-align.git
cdcargo-align
cargobuild --release
在您想要对齐的crate中运行path_you_cloned_to/target/release/cargo-align.exe
,或者传递特定的文件或文件夹path_you_cloned_to/target/release/cargo-align.exe target/path
。
许可协议
本项目可依据以下任一许可协议进行使用:
- Apache License, Version 2.0, (LICENSE-APACHE 或 https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT 或 https://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确声明,否则根据Apache-2.0许可协议定义,您有意提交的任何贡献,都将按照上述方式双许可,不附加任何额外条款或条件。
依赖关系
~135KB