rust-lang / rust-lang/rust-mode

indent of code block in multi-line iterator chain does not match `for`

Open
#126 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

indentation
Dominant language
Emacs Lisp
Stars
1.3k
Forks
198
PR merge metrics
No merged PRs in 30d

Description

This is probably a consequence of the code which tries to line up . in call chains, but the following example indents oddly for me:

fn main() {
    for x in foo.iter()
                .map(|x| x * 2) {
                    let y = 22; // I expect this to be aligned with the `for`!
                }
}

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the indentation from the Rust example in rust-mode, then trace the code that aligns dots in multi-line call chains and handles the surrounding for block. Done means the iterator chain remains aligned while the loop body is indented consistently with the for statement; add or update a regression test if the existing test structure reveals one.

Written by the indexing model from the issue text.

Assessment

Tech stack
emacs-lisp, rust
Domain
tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.