From 5186c6f3a2f1411785e0b543185a7b6aea95197c Mon Sep 17 00:00:00 2001 From: Thiemo Kreuz Date: Fri, 23 Apr 2021 14:48:23 +0200 Subject: [PATCH] Fix bracket matching getting stuck when leaving the brackets Bug: T278840 Bug: T280978 Change-Id: Ia552fcd829ce38cbb7ac7fd7ebecad971a83e4c3 --- resources/addon/edit/matchbrackets-wmde.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/resources/addon/edit/matchbrackets-wmde.js b/resources/addon/edit/matchbrackets-wmde.js index 7c6f54e3..0407f45b 100644 --- a/resources/addon/edit/matchbrackets-wmde.js +++ b/resources/addon/edit/matchbrackets-wmde.js @@ -159,6 +159,9 @@ } ) && // Must be empty at the end, i.e. all elements must have been found and removed !config.currentMarks.length; + + // Restore config.currentMarks after the loop above destroyed the original. This is done for + // performance reasons to avoid the need for an (expensive) copy. config.currentMarks = marks; return same; } @@ -247,7 +250,10 @@ if (!autoclear && config.currentlyHighlighted) { config.currentlyHighlighted(); config.currentlyHighlighted = null; + // Backup of the new mark positions must be done after the clear above + config.currentMarks = markPositions; } + for (i = 0; i < markPositions.length; i++) { marks.push(cm.markText( markPositions[i].from,