From 7efec130dcd46e44383e2d4bef60a7d82161bfa8 Mon Sep 17 00:00:00 2001 From: worldmaker Date: Mon, 25 Jul 2022 05:06:59 +0800 Subject: [PATCH] Fix weird behavior of JumpToMatchingBrace in some ill cases (#1966) It should not return false immediately when no matching brace is found. This makes the jump fails in certain case: `[ )I]` =/=> `[I )]`. When there is no brace near the cursor, the last statement is also executed. This may cause problems when chaining commands. --- internal/action/actions.go | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/internal/action/actions.go b/internal/action/actions.go index 9c76d601..7900a917 100644 --- a/internal/action/actions.go +++ b/internal/action/actions.go @@ -9,6 +9,7 @@ import ( "strings" "time" + shellquote "github.com/kballard/go-shellquote" "github.com/zyedidia/micro/v2/internal/buffer" "github.com/zyedidia/micro/v2/internal/clipboard" @@ -1267,15 +1268,12 @@ func (h *BufPane) JumpToMatchingBrace() bool { } else { h.Cursor.GotoLoc(matchingBrace.Move(1, h.Buf)) } - break - } else { - return false + h.Relocate() + return true } } } - - h.Relocate() - return true + return false } // SelectAll selects the entire buffer