在rust rust book中,关于改进迭代器的部分演示了如何将迭代器适配器放在单独的行中,如下所示:
pub fn search<'a>(query: &str, contents: &'a str) -> Vec<&'a str> {
contents
.lines()
.filter(|line| line.contains(query))
.collect()
}
默认情况下,rustfmt将这些合并到一行中,我在documentation中找不到地方来防止这种情况,如何才能做到呢?
截图:
1条答案
按热度按时间ccgok5k51#
方法链的格式是在一行还是多行上,主要由
chain_width
属性控制:适合一条线的链的最大宽度。
默认情况下,此选项设置为
use_small_heuristics
提供的max_width
的百分比,但直接为chain_width
设置的值将优先。rustfmt不知道类型,所以它对所有的方法调用都一视同仁,你可以在
rustfmt.toml
中手动减少chain_width
,以鼓励它更频繁地使用新行。也就是说,默认的宽度是60,这里显示的完整表达式至少是62,所以我不知道为什么它会在一行中格式化,当我使用rustfmt和默认的config时,它会保留所显示的格式;在新的线路上。