首页 > 解决方案 > 在适当的情况下自动转换所有标识符

问题描述

例如,

pub enum Format {
    Undefined,
    R4g4UnormPack8,
    R4g4b4a4UnormPack16,
    B4g4r4a4UnormPack16,
    R5g6b5UnormPack16,
    B5g6r5UnormPack16,

    R5G5B5A1_UNORM_PACK16,
    B5G5R5A1_UNORM_PACK16,
    A1R5G5B5_UNORM_PACK16,
    R8_UNORM,
    //...
    G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
    //...
}

前 6 行由我使用rust-analyzer代码操作手动转换为每一行。

但是你可以猜到这个列表很长,我正在寻找一种方法来完成所有这些工作。就像在构建它时警告我转换它一样。

warning: variant `G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16` should have an upper camel case name
   --> src/core.rs:388:5
    |
388 |     G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `G10x6B10x6R10x6_3plane420Unorm3pack16`

我也想转换它。有没有办法做到这一点?任何帮助表示赞赏。

标签: rustcamelcasingrust-analyzer

解决方案


可以修复它,rustfix但根据github 问题,这个 lint 被过滤掉了,它可以通过设置 env var( ref ) 来包含。

对于 Windows:

set __CARGO_FIX_YOLO="yolo"
cargo fix

基于 Unix:

export __CARGO_FIX_YOLO="yolo"
cargo fix

重要的 :

请注意,这将尝试修复源代码中的所有内容,这可能会带来不必要的副作用,您可能需要检查cargo fix ref或者您可以通过将结构复制到纯新项目然后重新添加到您的修复后的项目。


推荐阅读