mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-16 22:51:17 +07:00
cleanup: reuse PsiDocumentManagerBase.getTopLevelDocument()
(cherry picked from commit 5fa4c294603f5d2c88338d8c0ecc1fb493621a3b) (for review IJ-CR-158722) GitOrigin-RevId: 3633fd3e09b9697477be36e7f1109a5ecbeb0ab9
This commit is contained in:
committed by
intellij-monorepo-bot
parent
160276fa67
commit
e0d5e83aa4
@@ -884,8 +884,7 @@ public final class DocumentWindowImpl extends UserDataHolderBase implements Disp
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean equals(Object o) {
|
public boolean equals(Object o) {
|
||||||
if (!(o instanceof DocumentWindowImpl window)) return false;
|
return o instanceof DocumentWindowImpl window && myDelegate.equals(window.getDelegate()) && areRangesEqual(window);
|
||||||
return myDelegate.equals(window.getDelegate()) && areRangesEqual(window);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -2299,6 +2299,7 @@ a:com.intellij.psi.impl.PsiDocumentManagerBase
|
|||||||
- getLastCommittedText(com.intellij.openapi.editor.Document):java.lang.CharSequence
|
- getLastCommittedText(com.intellij.openapi.editor.Document):java.lang.CharSequence
|
||||||
- getPsiFile(com.intellij.openapi.editor.Document):com.intellij.psi.PsiFile
|
- getPsiFile(com.intellij.openapi.editor.Document):com.intellij.psi.PsiFile
|
||||||
- getSynchronizer():com.intellij.psi.impl.PsiToDocumentSynchronizer
|
- getSynchronizer():com.intellij.psi.impl.PsiToDocumentSynchronizer
|
||||||
|
- s:getTopLevelDocument(com.intellij.openapi.editor.Document):com.intellij.openapi.editor.Document
|
||||||
- getUncommittedDocuments():com.intellij.openapi.editor.Document[]
|
- getUncommittedDocuments():com.intellij.openapi.editor.Document[]
|
||||||
- hasEventSystemEnabledUncommittedDocuments():Z
|
- hasEventSystemEnabledUncommittedDocuments():Z
|
||||||
- hasUncommitedDocuments():Z
|
- hasUncommitedDocuments():Z
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import com.intellij.openapi.util.TextRange;
|
|||||||
import com.intellij.psi.PsiCompiledFile;
|
import com.intellij.psi.PsiCompiledFile;
|
||||||
import com.intellij.psi.PsiElement;
|
import com.intellij.psi.PsiElement;
|
||||||
import com.intellij.psi.PsiFile;
|
import com.intellij.psi.PsiFile;
|
||||||
|
import com.intellij.psi.impl.PsiDocumentManagerBase;
|
||||||
import com.intellij.psi.impl.light.LightElement;
|
import com.intellij.psi.impl.light.LightElement;
|
||||||
import com.intellij.psi.util.PsiTreeUtil;
|
import com.intellij.psi.util.PsiTreeUtil;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
@@ -33,7 +34,7 @@ public final class CompletionUtilCoreImpl {
|
|||||||
|
|
||||||
Document document = containingFile.getViewProvider().getDocument();
|
Document document = containingFile.getViewProvider().getDocument();
|
||||||
if (document != null) {
|
if (document != null) {
|
||||||
Document hostDocument = document instanceof DocumentWindow ? ((DocumentWindow)document).getDelegate() : document;
|
Document hostDocument = PsiDocumentManagerBase.getTopLevelDocument(document);
|
||||||
OffsetTranslator translator = hostDocument.getUserData(OffsetTranslator.RANGE_TRANSLATION);
|
OffsetTranslator translator = hostDocument.getUserData(OffsetTranslator.RANGE_TRANSLATION);
|
||||||
if (translator != null) {
|
if (translator != null) {
|
||||||
if (document instanceof DocumentWindow) {
|
if (document instanceof DocumentWindow) {
|
||||||
|
|||||||
@@ -918,7 +918,7 @@ public abstract class PsiDocumentManagerBase extends PsiDocumentManager implemen
|
|||||||
&& !isInUncommittedSet(document);
|
&& !isInUncommittedSet(document);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static @NotNull Document getTopLevelDocument(@NotNull Document document) {
|
public static @NotNull Document getTopLevelDocument(@NotNull Document document) {
|
||||||
return document instanceof DocumentWindow ? ((DocumentWindow)document).getDelegate() : document;
|
return document instanceof DocumentWindow ? ((DocumentWindow)document).getDelegate() : document;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ import com.intellij.openapi.util.text.HtmlBuilder
|
|||||||
import com.intellij.openapi.util.text.HtmlChunk
|
import com.intellij.openapi.util.text.HtmlChunk
|
||||||
import com.intellij.psi.PsiDocumentManager
|
import com.intellij.psi.PsiDocumentManager
|
||||||
import com.intellij.psi.PsiFile
|
import com.intellij.psi.PsiFile
|
||||||
|
import com.intellij.psi.impl.PsiDocumentManagerBase
|
||||||
import com.intellij.psi.search.LocalSearchScope
|
import com.intellij.psi.search.LocalSearchScope
|
||||||
import com.intellij.refactoring.InplaceRefactoringContinuation
|
import com.intellij.refactoring.InplaceRefactoringContinuation
|
||||||
import com.intellij.refactoring.RefactoringBundle
|
import com.intellij.refactoring.RefactoringBundle
|
||||||
@@ -85,7 +86,7 @@ internal fun inplaceRename(project: Project, editor: Editor, target: RenameTarge
|
|||||||
?: return false
|
?: return false
|
||||||
|
|
||||||
val hostEditor: Editor = (editor as? EditorWindow)?.delegate ?: editor
|
val hostEditor: Editor = (editor as? EditorWindow)?.delegate ?: editor
|
||||||
val hostDocument: Document = (document as? DocumentWindow)?.delegate ?: document
|
val hostDocument: Document = PsiDocumentManagerBase.getTopLevelDocument(document)
|
||||||
val hostFile: PsiFile = PsiDocumentManager.getInstance(project).getPsiFile(hostDocument)
|
val hostFile: PsiFile = PsiDocumentManager.getInstance(project).getPsiFile(hostDocument)
|
||||||
?: return false
|
?: return false
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||||
package com.intellij.openapi.editor.impl;
|
package com.intellij.openapi.editor.impl;
|
||||||
|
|
||||||
import com.intellij.injected.editor.DocumentWindow;
|
|
||||||
import com.intellij.openapi.actionSystem.ActionManager;
|
import com.intellij.openapi.actionSystem.ActionManager;
|
||||||
import com.intellij.openapi.editor.Document;
|
import com.intellij.openapi.editor.Document;
|
||||||
import com.intellij.openapi.editor.EditorBundle;
|
import com.intellij.openapi.editor.EditorBundle;
|
||||||
import com.intellij.openapi.editor.ReadOnlyFragmentModificationException;
|
import com.intellij.openapi.editor.ReadOnlyFragmentModificationException;
|
||||||
import com.intellij.openapi.editor.actionSystem.*;
|
import com.intellij.openapi.editor.actionSystem.*;
|
||||||
import com.intellij.openapi.ui.Messages;
|
import com.intellij.openapi.ui.Messages;
|
||||||
|
import com.intellij.psi.impl.PsiDocumentManagerBase;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
final class EditorActionManagerImpl extends EditorActionManager {
|
final class EditorActionManagerImpl extends EditorActionManager {
|
||||||
@@ -36,7 +36,7 @@ final class EditorActionManagerImpl extends EditorActionManager {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ReadonlyFragmentModificationHandler getReadonlyFragmentModificationHandler(final @NotNull Document document) {
|
public ReadonlyFragmentModificationHandler getReadonlyFragmentModificationHandler(final @NotNull Document document) {
|
||||||
final Document doc = document instanceof DocumentWindow ? ((DocumentWindow)document).getDelegate() : document;
|
final Document doc = PsiDocumentManagerBase.getTopLevelDocument(document);
|
||||||
final ReadonlyFragmentModificationHandler docHandler =
|
final ReadonlyFragmentModificationHandler docHandler =
|
||||||
doc instanceof DocumentImpl ? ((DocumentImpl)doc).getReadonlyFragmentModificationHandler() : null;
|
doc instanceof DocumentImpl ? ((DocumentImpl)doc).getReadonlyFragmentModificationHandler() : null;
|
||||||
return docHandler == null ? myReadonlyFragmentsHandler : docHandler;
|
return docHandler == null ? myReadonlyFragmentsHandler : docHandler;
|
||||||
@@ -44,7 +44,7 @@ final class EditorActionManagerImpl extends EditorActionManager {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setReadonlyFragmentModificationHandler(final @NotNull Document document, final ReadonlyFragmentModificationHandler handler) {
|
public void setReadonlyFragmentModificationHandler(final @NotNull Document document, final ReadonlyFragmentModificationHandler handler) {
|
||||||
final Document doc = document instanceof DocumentWindow ? ((DocumentWindow)document).getDelegate() : document;
|
final Document doc = PsiDocumentManagerBase.getTopLevelDocument(document);
|
||||||
if (doc instanceof DocumentImpl) {
|
if (doc instanceof DocumentImpl) {
|
||||||
((DocumentImpl)document).setReadonlyFragmentModificationHandler(handler);
|
((DocumentImpl)document).setReadonlyFragmentModificationHandler(handler);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ import com.intellij.openapi.project.ProjectCloseListener
|
|||||||
import com.intellij.openapi.project.ProjectManager
|
import com.intellij.openapi.project.ProjectManager
|
||||||
import com.intellij.openapi.util.Disposer
|
import com.intellij.openapi.util.Disposer
|
||||||
import com.intellij.openapi.vfs.VirtualFile
|
import com.intellij.openapi.vfs.VirtualFile
|
||||||
|
import com.intellij.psi.impl.PsiDocumentManagerBase
|
||||||
import com.intellij.util.EventDispatcher
|
import com.intellij.util.EventDispatcher
|
||||||
import com.intellij.util.concurrency.annotations.RequiresEdt
|
import com.intellij.util.concurrency.annotations.RequiresEdt
|
||||||
import com.intellij.util.text.CharArrayCharSequence
|
import com.intellij.util.text.CharArrayCharSequence
|
||||||
@@ -175,7 +176,7 @@ class EditorFactoryImpl(coroutineScope: CoroutineScope?) : EditorFactory() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun createEditor(document: Document, isViewer: Boolean, project: Project?, kind: EditorKind): EditorImpl {
|
private fun createEditor(document: Document, isViewer: Boolean, project: Project?, kind: EditorKind): EditorImpl {
|
||||||
val hostDocument = if (document is DocumentWindow) document.delegate else document
|
val hostDocument = PsiDocumentManagerBase.getTopLevelDocument(document)
|
||||||
return doCreateEditor(project = project, document = hostDocument, isViewer = isViewer, kind = kind, file = null, highlighter = null, afterCreation = null)
|
return doCreateEditor(project = project, document = hostDocument, isViewer = isViewer, kind = kind, file = null, highlighter = null, afterCreation = null)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
package com.intellij.openapi.editor.impl;
|
package com.intellij.openapi.editor.impl;
|
||||||
|
|
||||||
import com.intellij.ide.DataManager;
|
import com.intellij.ide.DataManager;
|
||||||
import com.intellij.injected.editor.DocumentWindow;
|
|
||||||
import com.intellij.openapi.actionSystem.CommonDataKeys;
|
import com.intellij.openapi.actionSystem.CommonDataKeys;
|
||||||
import com.intellij.openapi.actionSystem.DataContext;
|
import com.intellij.openapi.actionSystem.DataContext;
|
||||||
import com.intellij.openapi.application.AccessToken;
|
import com.intellij.openapi.application.AccessToken;
|
||||||
@@ -23,6 +22,7 @@ import com.intellij.openapi.util.Ref;
|
|||||||
import com.intellij.openapi.util.ShutDownTracker;
|
import com.intellij.openapi.util.ShutDownTracker;
|
||||||
import com.intellij.openapi.vfs.VirtualFile;
|
import com.intellij.openapi.vfs.VirtualFile;
|
||||||
import com.intellij.openapi.wm.IdeFocusManager;
|
import com.intellij.openapi.wm.IdeFocusManager;
|
||||||
|
import com.intellij.psi.impl.PsiDocumentManagerBase;
|
||||||
import com.intellij.util.ArrayUtilRt;
|
import com.intellij.util.ArrayUtilRt;
|
||||||
import com.intellij.util.SlowOperations;
|
import com.intellij.util.SlowOperations;
|
||||||
import com.intellij.util.text.CharArrayUtil;
|
import com.intellij.util.text.CharArrayUtil;
|
||||||
@@ -32,8 +32,8 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
import java.util.List;
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public final class TrailingSpacesStripper implements FileDocumentManagerListener {
|
public final class TrailingSpacesStripper implements FileDocumentManagerListener {
|
||||||
private static final Key<Boolean> DISABLE_FOR_FILE_KEY = Key.create("DISABLE_TRAILING_SPACE_STRIPPER_FOR_FILE_KEY");
|
private static final Key<Boolean> DISABLE_FOR_FILE_KEY = Key.create("DISABLE_TRAILING_SPACE_STRIPPER_FOR_FILE_KEY");
|
||||||
@@ -136,9 +136,7 @@ public final class TrailingSpacesStripper implements FileDocumentManagerListener
|
|||||||
// clears line modification flags except lines which was not stripped because the caret was in the way
|
// clears line modification flags except lines which was not stripped because the caret was in the way
|
||||||
@ApiStatus.Internal
|
@ApiStatus.Internal
|
||||||
public void clearLineModificationFlags(@NotNull Document document) {
|
public void clearLineModificationFlags(@NotNull Document document) {
|
||||||
if (document instanceof DocumentWindow) {
|
document = PsiDocumentManagerBase.getTopLevelDocument(document);
|
||||||
document = ((DocumentWindow)document).getDelegate();
|
|
||||||
}
|
|
||||||
if (!(document instanceof DocumentImpl)) {
|
if (!(document instanceof DocumentImpl)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -206,9 +204,7 @@ public final class TrailingSpacesStripper implements FileDocumentManagerListener
|
|||||||
|
|
||||||
@ApiStatus.Internal
|
@ApiStatus.Internal
|
||||||
public static boolean strip(@NotNull Document document, boolean inChangedLinesOnly, boolean skipCaretLines) {
|
public static boolean strip(@NotNull Document document, boolean inChangedLinesOnly, boolean skipCaretLines) {
|
||||||
if (document instanceof DocumentWindow) {
|
document = PsiDocumentManagerBase.getTopLevelDocument(document);
|
||||||
document = ((DocumentWindow)document).getDelegate();
|
|
||||||
}
|
|
||||||
if (!(document instanceof DocumentImpl)) {
|
if (!(document instanceof DocumentImpl)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -320,7 +320,7 @@ public final class RenameUtil {
|
|||||||
TextRange replaceRange = TextRange.create(segment);
|
TextRange replaceRange = TextRange.create(segment);
|
||||||
|
|
||||||
// re-map usages to upper host from injected document to avoid duplicated replacements
|
// re-map usages to upper host from injected document to avoid duplicated replacements
|
||||||
while (document instanceof DocumentWindow documentWindow) {
|
if (document instanceof DocumentWindow documentWindow) {
|
||||||
replaceRange = documentWindow.injectedToHost(replaceRange);
|
replaceRange = documentWindow.injectedToHost(replaceRange);
|
||||||
document = documentWindow.getDelegate();
|
document = documentWindow.getDelegate();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ import com.intellij.openapi.util.TextRange;
|
|||||||
import com.intellij.openapi.util.text.StringUtil;
|
import com.intellij.openapi.util.text.StringUtil;
|
||||||
import com.intellij.psi.PsiDocumentManager;
|
import com.intellij.psi.PsiDocumentManager;
|
||||||
import com.intellij.psi.PsiFile;
|
import com.intellij.psi.PsiFile;
|
||||||
|
import com.intellij.psi.impl.PsiDocumentManagerBase;
|
||||||
import com.intellij.psi.tree.IElementType;
|
import com.intellij.psi.tree.IElementType;
|
||||||
import com.intellij.reference.SoftReference;
|
import com.intellij.reference.SoftReference;
|
||||||
import com.intellij.usageView.UsageTreeColors;
|
import com.intellij.usageView.UsageTreeColors;
|
||||||
@@ -105,9 +106,7 @@ public final class ChunkExtractor {
|
|||||||
int absoluteStartOffset = usageInfo2UsageAdapter.getNavigationOffset();
|
int absoluteStartOffset = usageInfo2UsageAdapter.getNavigationOffset();
|
||||||
if (absoluteStartOffset == -1) return TextChunk.EMPTY_ARRAY;
|
if (absoluteStartOffset == -1) return TextChunk.EMPTY_ARRAY;
|
||||||
|
|
||||||
Document visibleDocument = myDocument instanceof DocumentWindow
|
Document visibleDocument = PsiDocumentManagerBase.getTopLevelDocument(myDocument);
|
||||||
? ((DocumentWindow)myDocument).getDelegate()
|
|
||||||
: myDocument;
|
|
||||||
int visibleStartOffset = myDocument instanceof DocumentWindow
|
int visibleStartOffset = myDocument instanceof DocumentWindow
|
||||||
? ((DocumentWindow)myDocument).injectedToHost(absoluteStartOffset)
|
? ((DocumentWindow)myDocument).injectedToHost(absoluteStartOffset)
|
||||||
: absoluteStartOffset;
|
: absoluteStartOffset;
|
||||||
|
|||||||
Reference in New Issue
Block a user