Misaligned indentation of formatted string literal lines
Open
@topecongiro is already working on this.
Since Jul 12, 2020.
E-help-wanted
I-poor-formatting
only-with-option
- Dominant language
- Rust
- Stars
- 7k
- Forks
- 1.1k
- Avg merge
- 2d 13h
- Merged PRs (30d)
- 24
Description
Only with option format_string true.
re https://github.com/rust-lang/rustfmt/issues/4321#issuecomment-657157584
Input
fn bench_contains_short_long(b: &mut Bencher) {
let haystack = "\
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse quis lorem sit amet dolor \
ultricies condimentum. Praesent iaculis purus elit, ac malesuada quam malesuada in. Duis sed orci \
eros. Suspendisse sit amet magna mollis, mollis nunc luctus, imperdiet mi. Integer fringilla non \
sem ut lacinia. Fusce varius tortor a risus porttitor hendrerit. Morbi mauris dui, ultricies nec \
tempus vel, gravida nec quam.
Nam lectus enim, dapibus non nisi tempor, consectetur convallis massa. Maecenas eleifend dictum \
feugiat. Etiam quis mauris vel risus luctus mattis a a nunc. Nullam orci quam, imperdiet id \
vehicula in, porttitor ut nibh. Duis sagittis adipiscing nisl vitae congue. Donec mollis risus eu \
leo suscipit, varius porttitor nulla porta. Pellentesque ut sem nec nisi euismod vehicula. Nulla \
malesuada sollicitudin quam eu fermentum.";
}
and
fn bench_contains_short_long(b: &mut Bencher) {
let haystack = "\
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse quis lorem sit amet dolor \
ultricies condimentum. Praesent iaculis purus elit, ac malesuada quam malesuada in. Duis sed orci \
eros. Suspendisse sit amet magna mollis, mollis nunc luctus, imperdiet mi. Integer fringilla non \
sem ut lacinia. Fusce varius tortor a risus porttitor hendrerit. Morbi mauris dui, ultricies nec \
tempus vel, gravida nec quam.";
}
Output
fn bench_contains_short_long(b: &mut Bencher) {
let haystack =
"\
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse quis lorem sit amet dolor \
ultricies condimentum. Praesent iaculis purus elit, ac malesuada quam malesuada in. Duis \
sed orci eros. Suspendisse sit amet magna mollis, mollis nunc luctus, imperdiet mi. \
Integer fringilla non sem ut lacinia. Fusce varius tortor a risus porttitor hendrerit. \
Morbi mauris dui, ultricies nec tempus vel, gravida nec quam.
Nam lectus enim, dapibus non nisi tempor, consectetur convallis massa. Maecenas eleifend dictum \
feugiat. Etiam quis mauris vel risus luctus mattis a a nunc. Nullam orci quam, imperdiet \
id vehicula in, porttitor ut nibh. Duis sagittis adipiscing nisl vitae congue. Donec \
mollis risus eu leo suscipit, varius porttitor nulla porta. Pellentesque ut sem nec nisi \
euismod vehicula. Nulla malesuada sollicitudin quam eu fermentum.";
}
and
fn bench_contains_short_long(b: &mut Bencher) {
let haystack = "\
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse quis lorem sit amet dolor \
ultricies condimentum. Praesent iaculis purus elit, ac malesuada quam \
malesuada in. Duis sed orci eros. Suspendisse sit amet magna mollis, mollis \
nunc luctus, imperdiet mi. Integer fringilla non sem ut lacinia. Fusce varius \
tortor a risus porttitor hendrerit. Morbi mauris dui, ultricies nec tempus \
vel, gravida nec quam.";
}
Respectively
Expected output
Better and consistent indentation of lines in the string. In particular, the first example should not change or be
fn bench_contains_short_long(b: &mut Bencher) {
let haystack =
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse quis lorem sit amet dolor \
ultricies condimentum. Praesent iaculis purus elit, ac malesuada quam malesuada in. Duis \
sed orci eros. Suspendisse sit amet magna mollis, mollis nunc luctus, imperdiet mi. \
Integer fringilla non sem ut lacinia. Fusce varius tortor a risus porttitor hendrerit. \
Morbi mauris dui, ultricies nec tempus vel, gravida nec quam.
Nam lectus enim, dapibus non nisi tempor, consectetur convallis massa. Maecenas eleifend dictum \
feugiat. Etiam quis mauris vel risus luctus mattis a a nunc. Nullam orci quam, imperdiet \
id vehicula in, porttitor ut nibh. Duis sagittis adipiscing nisl vitae congue. Donec \
mollis risus eu leo suscipit, varius porttitor nulla porta. Pellentesque ut sem nec nisi \
euismod vehicula. Nulla malesuada sollicitudin quam eu fermentum.";
}
and the second example could be
fn bench_contains_short_long(b: &mut Bencher) {
let haystack = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse quis lorem sit amet dolor \
ultricies condimentum. Praesent iaculis purus elit, ac malesuada quam \
malesuada in. Duis sed orci eros. Suspendisse sit amet magna mollis, mollis \
nunc luctus, imperdiet mi. Integer fringilla non sem ut lacinia. Fusce varius \
tortor a risus porttitor hendrerit. Morbi mauris dui, ultricies nec tempus \
vel, gravida nec quam.";
}
Meta
- rustfmt version: 98efebdd2d753bf5fc1dc7caa4a45ae210282fcb
- From where did you install rustfmt?: from source
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.