From 1c6948bac6be72547e7dca44e5fbdf43541fde8c Mon Sep 17 00:00:00 2001 From: Dmitry Batrak Date: Tue, 6 Jul 2021 11:41:10 +0000 Subject: [PATCH] IDEA-270985 Compare with clipboard freeze speed up working with long lines in editor GitOrigin-RevId: 2153d9f64c8e616c46ef0043962a22ca5a1cbd51 --- .../src/com/intellij/openapi/editor/impl/view/LineLayout.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/view/LineLayout.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/view/LineLayout.java index 36c99aba9614..e4494187ffe2 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/view/LineLayout.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/view/LineLayout.java @@ -582,7 +582,9 @@ abstract class LineLayout { BidiRun subRun = new BidiRun(level, start, end); List subChunks = new SmartList<>(); Document document = view.getEditor().getDocument(); - for (Chunk chunk : getChunks(document.getImmutableCharSequence(), document.getLineStartOffset(line))) { + List chunks = getChunks(document.getImmutableCharSequence(), document.getLineStartOffset(line)); + for (int i = (start - startOffset) / CHUNK_CHARACTERS; i < chunks.size(); i++) { + Chunk chunk = chunks.get(i); if (chunk.endOffset <= start) continue; if (chunk.startOffset >= end) break; subChunks.add(chunk.subChunk(view, this, line, start, end, quickEvaluationListener));