mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Replaced checking for ClsFileImpl/PsiCompiledElement with checking for PsiCompiledFile & invoking getDecompiledPsiFile() instead of getMirror()
This commit is contained in:
@@ -23,7 +23,6 @@ import com.intellij.openapi.util.Pair;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.impl.compiled.ClsClassImpl;
|
||||
import com.intellij.psi.impl.compiled.ClsFileImpl;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -39,7 +38,7 @@ public class JavaEditorFileSwapper extends EditorFileSwapper {
|
||||
|
||||
TextEditorImpl oldEditor = findSinglePsiAwareEditor(editorWithProviderComposite.getEditors());
|
||||
if (oldEditor != null) {
|
||||
ClsFileImpl clsFile = (ClsFileImpl)PsiManager.getInstance(project).findFile(file);
|
||||
PsiCompiledFile clsFile = (PsiCompiledFile)PsiManager.getInstance(project).findFile(file);
|
||||
assert clsFile != null;
|
||||
|
||||
int offset = oldEditor.getEditor().getCaretModel().getOffset();
|
||||
@@ -79,7 +78,7 @@ public class JavaEditorFileSwapper extends EditorFileSwapper {
|
||||
@Nullable
|
||||
public static VirtualFile findSourceFile(Project project, VirtualFile eachFile) {
|
||||
PsiFile psiFile = PsiManager.getInstance(project).findFile(eachFile);
|
||||
if (!(psiFile instanceof ClsFileImpl)) return null;
|
||||
if (!(psiFile instanceof PsiCompiledFile)) return null;
|
||||
|
||||
String fqn = getFQN(psiFile);
|
||||
if (fqn == null) return null;
|
||||
|
||||
+2
-2
@@ -43,8 +43,8 @@ public abstract class CopyPasteReferenceProcessor<TRef extends PsiElement> imple
|
||||
private static final Logger LOG = Logger.getInstance("#com.intellij.codeInsight.editorActions.CopyPasteReferenceProcessor");
|
||||
|
||||
public ReferenceTransferableData collectTransferableData(PsiFile file, final Editor editor, final int[] startOffsets, final int[] endOffsets) {
|
||||
if (file instanceof PsiCompiledElement) {
|
||||
file = (PsiFile) ((PsiCompiledElement) file).getMirror();
|
||||
if (file instanceof PsiCompiledFile) {
|
||||
file = ((PsiCompiledFile) file).getDecompiledPsiFile();
|
||||
}
|
||||
if (!(file instanceof PsiClassOwner)) {
|
||||
return null;
|
||||
|
||||
@@ -99,8 +99,8 @@ public class TargetElementUtilBase {
|
||||
|
||||
offset = adjustOffset(document, offset);
|
||||
|
||||
if (file instanceof PsiCompiledElement) {
|
||||
return ((PsiCompiledElement)file).getMirror().findReferenceAt(offset);
|
||||
if (file instanceof PsiCompiledFile) {
|
||||
return ((PsiCompiledFile) file).getDecompiledPsiFile().findReferenceAt(offset);
|
||||
}
|
||||
|
||||
return file.findReferenceAt(offset);
|
||||
|
||||
+3
-3
@@ -22,7 +22,7 @@ import com.intellij.codeInsight.daemon.DaemonCodeAnalyzer;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiCompiledElement;
|
||||
import com.intellij.psi.PsiCompiledFile;
|
||||
import com.intellij.psi.PsiDocumentManager;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.impl.PsiFileEx;
|
||||
@@ -64,9 +64,9 @@ public class TextEditorBackgroundHighlighter implements BackgroundEditorHighligh
|
||||
private void renewFile() {
|
||||
if (myFile == null || !myFile.isValid()) {
|
||||
myFile = PsiDocumentManager.getInstance(myProject).getPsiFile(myDocument);
|
||||
myCompiled = myFile instanceof PsiCompiledElement;
|
||||
myCompiled = myFile instanceof PsiCompiledFile;
|
||||
if (myCompiled) {
|
||||
myFile = (PsiFile)((PsiCompiledElement)myFile).getMirror();
|
||||
myFile = ((PsiCompiledFile)myFile).getDecompiledPsiFile();
|
||||
}
|
||||
if (myFile != null && !myFile.isValid()) {
|
||||
myFile = null;
|
||||
|
||||
+2
-2
@@ -79,8 +79,8 @@ public class SelectWordHandler extends EditorActionHandler {
|
||||
}
|
||||
|
||||
private static void doAction(@NotNull Editor editor, @NotNull PsiFile file) {
|
||||
if (file instanceof PsiCompiledElement) {
|
||||
file = (PsiFile)((PsiCompiledElement)file).getMirror();
|
||||
if (file instanceof PsiCompiledFile) {
|
||||
file = ((PsiCompiledFile)file).getDecompiledPsiFile();
|
||||
if (file == null) return;
|
||||
}
|
||||
|
||||
|
||||
@@ -26,6 +26,8 @@ import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.extensions.Extensions;
|
||||
import com.intellij.openapi.fileTypes.ContentBasedFileSubstitutor;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import com.intellij.openapi.util.Pair;
|
||||
@@ -88,7 +90,9 @@ public class FoldingUpdate {
|
||||
final boolean applyDefaultState) {
|
||||
|
||||
final FoldingMap elementsToFoldMap = new FoldingMap();
|
||||
getFoldingsFor(file instanceof PsiCompiledElement ? (PsiFile)((PsiCompiledElement)file).getMirror() : file, document, elementsToFoldMap, quick);
|
||||
if (!isContentSubstituted(file, project)) {
|
||||
getFoldingsFor(file instanceof PsiCompiledFile ? ((PsiCompiledFile)file).getDecompiledPsiFile() : file, document, elementsToFoldMap, quick);
|
||||
}
|
||||
|
||||
final UpdateFoldRegionsOperation operation = new UpdateFoldRegionsOperation(project, editor, file, elementsToFoldMap, applyDefaultState, false);
|
||||
Runnable runnable = new Runnable() {
|
||||
@@ -104,6 +108,16 @@ public class FoldingUpdate {
|
||||
return CachedValueProvider.Result.create(runnable, ArrayUtil.toObjectArray(dependencies));
|
||||
}
|
||||
|
||||
private static boolean isContentSubstituted(PsiFile file, Project project) {
|
||||
final ContentBasedFileSubstitutor[] processors = Extensions.getExtensions(ContentBasedFileSubstitutor.EP_NAME);
|
||||
for (ContentBasedFileSubstitutor processor : processors) {
|
||||
if (processor.isApplicable(project, file.getVirtualFile())) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private static final Key<Object> LAST_UPDATE_INJECTED_STAMP_KEY = Key.create("LAST_UPDATE_INJECTED_STAMP_KEY");
|
||||
@Nullable
|
||||
public static Runnable updateInjectedFoldRegions(@NotNull final Editor editor, @NotNull final PsiFile file, final boolean applyDefaultState) {
|
||||
|
||||
+1
-1
@@ -124,7 +124,7 @@ public class PsiElement2UsageTargetAdapter implements PsiElementUsageTarget, Typ
|
||||
public void highlightUsages(PsiFile file, Editor editor, boolean clearHighlights) {
|
||||
PsiElement target = getElement();
|
||||
|
||||
if (file instanceof PsiCompiledElement) file = (PsiFile)((PsiCompiledElement)file).getMirror();
|
||||
if (file instanceof PsiCompiledFile) file = ((PsiCompiledFile)file).getDecompiledPsiFile();
|
||||
|
||||
final FindUsagesManager findUsagesManager = ((FindManagerImpl)FindManager.getInstance(target.getProject())).getFindUsagesManager();
|
||||
final FindUsagesHandler handler = findUsagesManager.getFindUsagesHandler(target, true);
|
||||
|
||||
+2
-2
@@ -48,8 +48,8 @@ abstract class CodeStyleManagerRunnable<T> {
|
||||
}
|
||||
|
||||
public T perform(PsiFile file, int offset, @Nullable TextRange range, T defaultValue) {
|
||||
if (file instanceof PsiCompiledElement) {
|
||||
file = (PsiFile)((PsiCompiledElement)file).getMirror();
|
||||
if (file instanceof PsiCompiledFile) {
|
||||
file = ((PsiCompiledFile)file).getDecompiledPsiFile();
|
||||
}
|
||||
|
||||
PsiDocumentManager documentManager = PsiDocumentManager.getInstance(myCodeStyleManager.getProject());
|
||||
|
||||
+1
-2
@@ -27,7 +27,6 @@ import com.intellij.lang.java.JavaDocumentationProvider;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.impl.compiled.ClsFileImpl;
|
||||
import com.intellij.psi.impl.source.javadoc.PsiDocParamRef;
|
||||
import com.intellij.psi.javadoc.PsiDocComment;
|
||||
import com.intellij.psi.javadoc.PsiDocTag;
|
||||
@@ -367,7 +366,7 @@ public class GroovyDocumentationProvider implements CodeDocumentationProvider, E
|
||||
if (navigationElement != null) {
|
||||
element = navigationElement;
|
||||
|
||||
if (element.getContainingFile() instanceof ClsFileImpl) {
|
||||
if (element.getContainingFile() instanceof PsiCompiledFile) {
|
||||
navigationElement = element.getNavigationElement();
|
||||
if (navigationElement != null) {
|
||||
element = navigationElement;
|
||||
|
||||
Reference in New Issue
Block a user