rust-lang / rust-lang/rust-analyzer
Match fill arms postfix
Open
Nobody has claimed this yet.
A-completion
A-pattern
- Dominant language
- Rust
- Stars
- 16.9k
- Forks
- 2.2k
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 72
Description
If you have
let a = Some(1);
when you type a.match and complete it, you get
match a {
Some(_) => {},
None => {},
}
If you have a custom enum
enum State {
Blocked,
Running,
Stopped,
}
let state = State::Blocked;
typing state.match and completing it gives
match state {
_ => {},
}
It would be nice if it produced:
match state {
State::Blocked => todo!(),
State::Running => todo!(),
State::Stopped => todo!(),
}
As a note, RA has an assist to automatically fill arms:

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.
Research direction
Start by locating rust-analyzer's match postfix completion and comparing it with the existing assist that fills match arms. Verify that completing a custom enum such as State produces one todo!() arm for each variant, while preserving the existing behavior for Option.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- devtools
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100