# editor: Fix splitting brackets inside line comments \(\#59260\) · gitcafe/zed

[View on GitCafe](https://git.cafe/gitcafe/zed/commit/cccc7b2d4408ee75d5c2e9dadad2cc0b7f992dd0)

Repository: [gitcafe/zed](https://git.cafe/gitcafe/zed)

Visibility: public

Requested revision: cccc7b2d4408ee75d5c2e9dadad2cc0b7f992dd0

Requested commit: cccc7b2d4408ee75d5c2e9dadad2cc0b7f992dd0

Commit: cccc7b2d4408ee75d5c2e9dadad2cc0b7f992dd0

Tree: f43f692508f002840e23e800ff2412706180c65b

Author: Xin Zhao

Committer: GitHub

## Message

````
editor: Fix splitting brackets inside line comments (#59260)

# Objective

Closes #59229

When adding a newline, Zed has a bit of intelligence to do more work
than just inserting a `\n`. For comment lines, it simply extends the
comment:
```rust
Before
// This is a comment, ˇThis is another comment


After
// This is a comment, 
// ˇThis is another comment
```
And when the cursor is inside bracket pairs, Zed inserts another newline
to move the closing bracket to a new line:
```rust
Before
fn main() {ˇ}


After
fn main() {
    ˇ
}
```
However, when we have a comment line with the cursor inside a bracket
pair, both mechanisms apply, resulting in an unintended state where the
closing bracket is kicked out of the comment:
```rust
Before
// {ˇ}

After
// {
// ˇ
}
```

We definitely do not need the bracket extension rule when we are adding
a newline inside comments. We want comment lines inside brackets to be
split like this:
```rust
// {
// ˇ}
```

## Solution

- Disable Bracket Extra Newline in Comments: When a line comment
delimiter is detected, we override the default `newline_config` to set
`extra_line_additional_indent` to `None` .
- Avoid Rule Conflicts (Short-circuiting): The three newline
customization helpers (line comment, block comment, and list item) are
mutually exclusive. I refactored their execution from a sequential list
into an `if let Some ... else if let Some` branch. This prevents
subsequent rules from having side effects on `newline_config` when a
match has already occurred.

## Testing

A new test named `test_newline_comments_with_brackets` is introduced in
`crates/editor/src/editor_tests.rs`, All tests in the `editor` crate
were verified using `cargo test -p editor` .

## Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [x] Unsafe blocks (if any) have justifying comments
- [x] The content adheres to Zed's UI standards
([UX/UI](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
and
[icon](https://github.com/zed-industries/zed/blob/main/crates/icons/README.md)
guidelines)
- [x] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

---

Release Notes:

- Fixed an issue where splitting brackets inside line comments inserted
an extra line and broke the comment formatting
````

## Parents

- [759bacff378bc886c1545a0da015d347c25bf15d](https://git.cafe/gitcafe/zed/commit/759bacff378bc886c1545a0da015d347c25bf15d?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zed/tree/cccc7b2d4408ee75d5c2e9dadad2cc0b7f992dd0?format=markdown)
