#proc-macro #expand #macro #real-time

app croc-look

一个用于展开宏并实时查看它们的工具

3个版本

0.1.3 2022年8月11日
0.1.2 2022年8月10日
0.1.0 2022年8月10日

#1342 in 过程宏

MITLGPL-3.0-or-later

30KB
634

croc-look

croc-look是一个工具,通过以下两个特性使测试和调试过程宏变得更容易:

  1. 将特定生成的代码打印到控制台
  2. 在Rust代码上提供宏输出的实时视图

croc-look允许您缩小搜索范围,并提供生成的代码的实时视图。

安装

croc-look需要安装夜间工具链 安装,不需要它是默认工具链

rustup install nightly

然后

cargo install croc-look

标志

  1. --trait-impl-t:定义您想要查看展开的特质,这将是要实现 derive 宏的特质,或者可以是你想要查看展开的任何其他特质。例如
#[derive(Clone, Debug, MyTrait)]
struct<T> {
  ...
}

因此,此标志的值可以是 CloneDebug 或你的 MyTrait derive 宏实现的任何其他特质

  1. --impl-for-i:这有助于您缩小对上述标志中提到的特质实现的搜索。如果您有多个派生您的特质的结构体,则可以执行 croc-look --trait-impl Clone -i <your-struct-name> 并获取您想要的结构的实现。

  2. --structure-s:如果您想展开一个 特定的 结构体。当宏正在操作结构体本身时,例如添加字段等,这非常有用。

  3. --path-p:需要安装 cargo expand。使用 cargo expand <path> 内部命令来缩小代码到模块级别。例如 croc-look -p cmd -t Clone -i Context(这将在 cmd 模块中查找 Context 的 Clone 实现)

  4. --function-f:用于展开函数。

  5. --binary-b:用于展开 cargo --bin BINARY,如果未指定,则使用 --lib

  6. --watch-w:这会开始监视你想要监视的目录/文件,同时也会打开一个支持在 proc-macro 项目中实时重载更改的交互式 TUI。

这与 cargo expand 有何不同?

cargo expand 不允许你查看整个 trait 实现,以检查泛型或监视特定的代码块。croc-look 的动机是将你的搜索范围缩小到一个简单的单个主体,并减少混乱。

你可以使用 --path 标志来使用 cargo expand <path> 来缩小到模块级别的搜索。

许可证

MIT 许可证 下授权。

依赖关系

~18–31MB
~374K SLoC