Don't autoclose brackets when is false

This commit is contained in:
Nathan Sobo 2022-10-10 15:15:43 -06:00
parent 576581c20d
commit 3ae96f2c6e
2 changed files with 6 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));