Merge pull request #1714 from zed-industries/fix-autoclose

Don't autoclose brackets when `close` is false
This commit is contained in:
Kay Simmons 2022-10-10 15:35:47 -07:00 committed by GitHub
commit 7528bf8f32
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 1 deletions

View file

@ -1874,7 +1874,7 @@ impl Editor {
let mut bracket_pair = None;
let mut is_bracket_pair_start = false;
for pair in language.brackets() {
if pair.start.ends_with(text.as_ref()) {
if pair.close && pair.start.ends_with(text.as_ref()) {
bracket_pair = Some(pair.clone());
is_bracket_pair_start = true;
break;

View file

@ -3016,6 +3016,11 @@ async fn test_autoclose_pairs(cx: &mut gpui::TestAppContext) {
cx.update_editor(|view, cx| view.handle_input("{", cx));
cx.assert_editor_state("{ˇa b");
// Don't autoclose if `close` is false for the bracket pair
cx.set_state("ˇ");
cx.update_editor(|view, cx| view.handle_input("[", cx));
cx.assert_editor_state("");
// Surround with brackets if text is selected
cx.set_state("«aˇ» b");
cx.update_editor(|view, cx| view.handle_input("{", cx));
@ -3034,16 +3039,19 @@ async fn test_autoclose_with_embedded_language(cx: &mut gpui::TestAppContext) {
BracketPair {
start: "<".into(),
end: ">".into(),
close: true,
..Default::default()
},
BracketPair {
start: "{".into(),
end: "}".into(),
close: true,
..Default::default()
},
BracketPair {
start: "(".into(),
end: ")".into(),
close: true,
..Default::default()
},
],
@ -3069,16 +3077,19 @@ async fn test_autoclose_with_embedded_language(cx: &mut gpui::TestAppContext) {
BracketPair {
start: "/*".into(),
end: " */".into(),
close: true,
..Default::default()
},
BracketPair {
start: "{".into(),
end: "}".into(),
close: true,
..Default::default()
},
BracketPair {
start: "(".into(),
end: ")".into(),
close: true,
..Default::default()
},
],