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));