aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Document.cxx
diff options
context:
space:
mode:
authorZufu Liu <unknown>2024-11-17 08:32:07 +1100
committerZufu Liu <unknown>2024-11-17 08:32:07 +1100
commit7c053368aac18001e6183c1f2e72273631cb5100 (patch)
tree2ff77937483c438a8e0c6b898afe167d0f2536a5 /src/Document.cxx
parente70b850241c81eae9ab2f7c2aa75b06634c96f1e (diff)
downloadscintilla-mirror-7c053368aac18001e6183c1f2e72273631cb5100.tar.gz
Feature [feature-requests:#1533]. Improve performance of SCI_BRACEMATCH by only
retrieving style for braces. Approximately 25% improvement on tested system.
Diffstat (limited to 'src/Document.cxx')
-rw-r--r--src/Document.cxx14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/Document.cxx b/src/Document.cxx
index 4b1f76a2a..ef8bfce4d 100644
--- a/src/Document.cxx
+++ b/src/Document.cxx
@@ -2840,14 +2840,12 @@ Sci::Position Document::BraceMatch(Sci::Position position, Sci::Position /*maxRe
position = useStartPos ? startPos : NextPosition(position, direction);
while ((position >= 0) && (position < LengthNoExcept())) {
const char chAtPos = CharAt(position);
- const int styAtPos = StyleIndexAt(position);
- if ((position > GetEndStyled()) || (styAtPos == styBrace)) {
- if (chAtPos == chBrace)
- depth++;
- if (chAtPos == chSeek)
- depth--;
- if (depth == 0)
- return position;
+ if (chAtPos == chBrace || chAtPos == chSeek) {
+ if ((position > GetEndStyled()) || (StyleIndexAt(position) == styBrace)) {
+ depth += (chAtPos == chBrace) ? 1 : -1;
+ if (depth == 0)
+ return position;
+ }
}
const Sci::Position positionBeforeMove = position;
position = NextPosition(position, direction);