You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅禁用rustfmt对前置注释的格式化?

解决Rustfmt仅禁用特定注释格式化的问题

目前Rustfmt并没有提供像clang-format那样的// clang-format: off/on行内开关,但可以通过以下几种方式实现仅保留目标注释格式、同时让函数正常格式化的需求:

方法1:将注释包裹在无意义的空常量中

利用#[rustfmt::skip]仅作用于紧随其后语法项的特性,把需要保留格式的注释放在一个不影响逻辑的空常量里,这样rustfmt会跳过这个常量块的格式化,而后续的函数不受影响:

#[rustfmt::skip]
const _: () = {
    /*
    long explanatory comment with some ascii art etc.
    */
};

#[test]
fn foo() {
    // I want this to still be formatted.
}

方法2:使用文档注释的手动拼接形式

如果注释是用于文档说明的,可以将多行注释拆分为多个#[doc]属性,rustfmt不会修改这些字符串的内容:

#[doc = "/*"]
#[doc = "long explanatory comment with some ascii art etc."]
#[doc = "*/"]
#[test]
fn foo() {
    // I want this to still be formatted.
}

需要注意的是,Rustfmt官方目前尚未支持行内的格式化开关功能,相关需求在社区有讨论但还未落地。

内容的提问来源于stack exchange,提问作者ChrisB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 08:55:57