From d353fabd696ec931cd434057d5c89259a71c33b1 Mon Sep 17 00:00:00 2001 From: Shadowfacts Date: Mon, 6 Apr 2020 19:31:35 -0400 Subject: [PATCH] JavaScript Highlighter: batch attributed string updates to vastly improve performance --- MongoView/Synax Highlighting/JavaScriptHighlighter.swift | 3 +++ 1 file changed, 3 insertions(+) diff --git a/MongoView/Synax Highlighting/JavaScriptHighlighter.swift b/MongoView/Synax Highlighting/JavaScriptHighlighter.swift index 5a7ff60..758163c 100644 --- a/MongoView/Synax Highlighting/JavaScriptHighlighter.swift +++ b/MongoView/Synax Highlighting/JavaScriptHighlighter.swift @@ -73,6 +73,7 @@ class JavaScriptHighlighter { } func highlight() { + attributed.beginEditing() let fullRange = NSRange(location: 0, length: attributed.length) attributed.setAttributes([ .foregroundColor: NSColor.textColor, @@ -83,6 +84,8 @@ class JavaScriptHighlighter { while let char = peek(), !expressionEnds.contains(char) { consumeExpression() } + + attributed.endEditing() } private func emit(token: TokenType, range: NSRange) {