mirror of
https://github.com/zed-industries/zed.git
synced 2024-11-08 07:35:01 +03:00
Merge pull request #1756 from zed-industries/autoclose-wrong-closing-bracket
Avoid skipping over a different closing bracket in autoclose
This commit is contained in:
commit
330968434f
@ -1938,9 +1938,10 @@ impl Editor {
|
||||
}
|
||||
} else if let Some(region) = autoclose_region {
|
||||
// If the selection is followed by an auto-inserted closing bracket,
|
||||
// then don't insert anything else; just move the selection past the
|
||||
// closing bracket.
|
||||
let should_skip = selection.end == region.range.end.to_point(&snapshot);
|
||||
// then don't insert that closing bracket again; just move the selection
|
||||
// past the closing bracket.
|
||||
let should_skip = selection.end == region.range.end.to_point(&snapshot)
|
||||
&& text.as_ref() == region.pair.end.as_str();
|
||||
if should_skip {
|
||||
let anchor = snapshot.anchor_after(selection.end);
|
||||
new_selections.push((
|
||||
|
@ -2907,6 +2907,12 @@ async fn test_autoclose_pairs(cx: &mut gpui::TestAppContext) {
|
||||
close: true,
|
||||
newline: true,
|
||||
},
|
||||
BracketPair {
|
||||
start: "(".to_string(),
|
||||
end: ")".to_string(),
|
||||
close: true,
|
||||
newline: true,
|
||||
},
|
||||
BracketPair {
|
||||
start: "/*".to_string(),
|
||||
end: " */".to_string(),
|
||||
@ -2957,6 +2963,19 @@ async fn test_autoclose_pairs(cx: &mut gpui::TestAppContext) {
|
||||
.unindent(),
|
||||
);
|
||||
|
||||
// insert a different closing bracket
|
||||
cx.update_editor(|view, cx| {
|
||||
view.handle_input(")", cx);
|
||||
});
|
||||
cx.assert_editor_state(
|
||||
&"
|
||||
🏀{{{)ˇ}}}
|
||||
ε{{{)ˇ}}}
|
||||
❤️{{{)ˇ}}}
|
||||
"
|
||||
.unindent(),
|
||||
);
|
||||
|
||||
// skip over the auto-closed brackets when typing a closing bracket
|
||||
cx.update_editor(|view, cx| {
|
||||
view.move_right(&MoveRight, cx);
|
||||
@ -2966,9 +2985,9 @@ async fn test_autoclose_pairs(cx: &mut gpui::TestAppContext) {
|
||||
});
|
||||
cx.assert_editor_state(
|
||||
&"
|
||||
🏀{{{}}}}ˇ
|
||||
ε{{{}}}}ˇ
|
||||
❤️{{{}}}}ˇ
|
||||
🏀{{{)}}}}ˇ
|
||||
ε{{{)}}}}ˇ
|
||||
❤️{{{)}}}}ˇ
|
||||
"
|
||||
.unindent(),
|
||||
);
|
||||
|
Loading…
Reference in New Issue
Block a user