我刚刚找到了How do I see the expanded macro code that's causing my compile error?。是否可以扩展单个宏而不是整个文件?
cargo-expand
命令实际上只是围绕cargo rustc -- -Zunstable-options --pretty=expanded
的薄包装,它本身就是一种钝器。您无法定位特定的宏。
但是,从version 0.4开始,您可以通过指定额外的路径参数来扩展该模块使用的宏来减少一些噪音:
$ cargo expand path::to::module
“显示扩展的宏”和“显示递归扩展的宏”命令是recently added到IntelliJ Rust。
来自CLion blog post的gif演示: