mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
Changed method of building mirror element in ClsFileImpl: now decompiler is invoked directly.
This commit is contained in:
@@ -23,8 +23,6 @@ import com.intellij.lang.FileASTNode;
|
||||
import com.intellij.lang.java.JavaLanguage;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.fileEditor.FileDocumentManager;
|
||||
import com.intellij.openapi.fileTypes.FileType;
|
||||
import com.intellij.openapi.progress.NonCancelableSection;
|
||||
import com.intellij.openapi.progress.ProgressIndicatorProvider;
|
||||
@@ -292,14 +290,13 @@ public class ClsFileImpl extends ClsRepositoryPsiElement<PsiClassHolderFileStub>
|
||||
synchronized (MIRROR_LOCK) {
|
||||
if (myMirrorFileElement == null) {
|
||||
VirtualFile virtualFile = getVirtualFile();
|
||||
final Document document = FileDocumentManager.getInstance().getDocument(virtualFile);
|
||||
String text = document.getText();
|
||||
String mirrorText = decompile(getManager(), virtualFile);
|
||||
String ext = JavaFileType.INSTANCE.getDefaultExtension();
|
||||
PsiClass[] classes = getClasses();
|
||||
|
||||
String fileName = (classes.length > 0 ? classes[0].getName(): virtualFile.getNameWithoutExtension()) + "." + ext;
|
||||
PsiManager manager = getManager();
|
||||
PsiFile mirror = PsiFileFactory.getInstance(manager.getProject()).createFileFromText(fileName, JavaLanguage.INSTANCE, text, false, false);
|
||||
PsiFile mirror = PsiFileFactory.getInstance(manager.getProject()).createFileFromText(fileName, JavaLanguage.INSTANCE, mirrorText, false, false);
|
||||
final ASTNode mirrorTreeElement = SourceTreeToPsiMap.psiElementToTree(mirror);
|
||||
|
||||
//IMPORTANT: do not take lock too early - FileDocumentManager.getInstance().saveToString() can run write action...
|
||||
|
||||
Reference in New Issue
Block a user