summaryrefslogtreecommitdiff
path: root/platform/platform-impl/src/com/intellij/openapi/editor/impl/softwrap/mapping/CachingSoftWrapDataMapper.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/platform-impl/src/com/intellij/openapi/editor/impl/softwrap/mapping/CachingSoftWrapDataMapper.java')
-rw-r--r--platform/platform-impl/src/com/intellij/openapi/editor/impl/softwrap/mapping/CachingSoftWrapDataMapper.java33
1 files changed, 20 insertions, 13 deletions
diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/softwrap/mapping/CachingSoftWrapDataMapper.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/softwrap/mapping/CachingSoftWrapDataMapper.java
index c5000628bcd4..08bf0211dbc8 100644
--- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/softwrap/mapping/CachingSoftWrapDataMapper.java
+++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/softwrap/mapping/CachingSoftWrapDataMapper.java
@@ -465,21 +465,12 @@ public class CachingSoftWrapDataMapper implements SoftWrapDataMapper, SoftWrapAw
|| (beforeLast.visualLine + 1 == last.visualLine && last.startOffset - beforeLast.endOffset > 1)
|| last.startOffset > myEditor.getDocument().getTextLength())
{
- CharSequence editorState = "";
- if (myEditor instanceof EditorImpl) {
- editorState = ((EditorImpl)myEditor).dumpState();
- }
- LOG.error(
- "Detected invalid soft wraps cache update",
- String.format(
- "Event: %s, normal: %b.%n%nTail cache entries: %s%n%nAffected by change cache entries: %s%n%nBefore change state: %s%n%n"
- + "After change state: %s%n%nEditor state: %s",
- event, normal, myNotAffectedByUpdateTailCacheEntries, myAffectedByUpdateCacheEntries,
- myBeforeChangeState, myAfterChangeState, editorState
- )
- );
+ logInvalidUpdate(event, normal);
}
}
+ if (!myCache.isEmpty() && myEditor.getDocument().getTextLength() == 0) {
+ logInvalidUpdate(event, normal);
+ }
myAffectedByUpdateCacheEntries.clear();
myNotAffectedByUpdateTailCacheEntries.clear();
@@ -492,6 +483,22 @@ public class CachingSoftWrapDataMapper implements SoftWrapDataMapper, SoftWrapAw
myBeforeChangeState.cacheShouldBeUpdated = false;
}
+ private void logInvalidUpdate(@NotNull IncrementalCacheUpdateEvent event, boolean normal) {
+ CharSequence editorState = "";
+ if (myEditor instanceof EditorImpl) {
+ editorState = ((EditorImpl)myEditor).dumpState();
+ }
+ LOG.error(
+ "Detected invalid soft wraps cache update",
+ String.format(
+ "Event: %s, normal: %b.%n%nTail cache entries: %s%n%nAffected by change cache entries: %s%n%nBefore change state: %s%n%n"
+ + "After change state: %s%n%nEditor state: %s",
+ event, normal, myNotAffectedByUpdateTailCacheEntries, myAffectedByUpdateCacheEntries,
+ myBeforeChangeState, myAfterChangeState, editorState
+ )
+ );
+ }
+
@Override
public void reset() {
myCache.clear();