如何仅禁用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
相关产品推荐
相关产品推荐

