如何阻止rust-analyzer/rustfmt折叠手动格式化的迭代器链?
在VS Code中手动控制Rust迭代器链的折叠/展开并保留自定义格式
一、手动控制折叠与展开
VS Code自带代码区块折叠展开功能,迭代器链式调用会被自动识别为可折叠单元:
- 折叠:点击代码行号左侧的小箭头(▶),或者使用快捷键
Ctrl + Shift + [(Windows/Linux)/Cmd + Shift + [(Mac) - 展开:点击折叠后的箭头(▼),或者使用快捷键
Ctrl + Shift + ](Windows/Linux)/Cmd + Shift + ](Mac) - 全局批量操作:用
Ctrl + K + 0折叠所有代码块,Ctrl + K + J展开所有代码块
二、保留自定义的展开格式
除了你已知的#[rustfmt::skip],还有两种更灵活的方式避免rustfmt自动压缩格式:
- 局部跳过格式化
给目标表达式单独添加注解,仅跳过该段的格式化:
#[rustfmt::skip] let mut result: Vec<u64> = v1 .iter() .zip(v2 .iter() ) .map( |(a , b)| a + b ) .collect();
- 全局配置链式调用格式
在项目根目录创建rustfmt.toml文件,添加以下配置,让rustfmt默认以 verbose 风格格式化链式调用:
chain_style = "verbose"
配置生效后,所有链式调用都会自动展开为每行一个方法的格式,无需逐个添加注解。
内容的提问来源于stack exchange,提问作者puller
相关产品推荐
相关产品推荐

