mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 06:05:01 +07:00
hide psiFileFactory
This commit is contained in:
@@ -26,6 +26,7 @@ import com.intellij.openapi.util.Pair;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.testFramework.LightVirtualFile;
|
||||
import com.intellij.ui.components.JBLayeredPane;
|
||||
import com.intellij.util.Consumer;
|
||||
import com.intellij.util.PairFunction;
|
||||
@@ -35,6 +36,9 @@ import org.jetbrains.annotations.Nullable;
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
|
||||
/**
|
||||
* @experimental
|
||||
*/
|
||||
public final class LanguageConsoleBuilder {
|
||||
@Nullable
|
||||
private LanguageConsoleView consoleView;
|
||||
@@ -153,15 +157,28 @@ public final class LanguageConsoleBuilder {
|
||||
private final static class GutteredLanguageConsole extends LanguageConsoleImpl {
|
||||
@Nullable
|
||||
private final GutterContentProvider gutterContentProvider;
|
||||
private final PairFunction<VirtualFile, Project, PsiFile> psiFileFactory;
|
||||
|
||||
public GutteredLanguageConsole(@NotNull Project project,
|
||||
@NotNull Language language,
|
||||
@Nullable GutterContentProvider gutterContentProvider,
|
||||
@Nullable PairFunction<VirtualFile, Project, PsiFile> psiFileFactory) {
|
||||
super(project, language.getDisplayName() + " Console", language, psiFileFactory);
|
||||
super(project, language.getDisplayName() + " Console", language);
|
||||
|
||||
setShowSeparatorLine(false);
|
||||
this.gutterContentProvider = gutterContentProvider;
|
||||
this.psiFileFactory = psiFileFactory;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
protected PsiFile createFile(@NotNull LightVirtualFile virtualFile, @NotNull Document document, @NotNull Project project) {
|
||||
if (psiFileFactory == null) {
|
||||
return super.createFile(virtualFile, document, project);
|
||||
}
|
||||
else {
|
||||
return psiFileFactory.fun(virtualFile, project);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -58,7 +58,10 @@ import com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil;
|
||||
import com.intellij.testFramework.LightVirtualFile;
|
||||
import com.intellij.ui.JBColor;
|
||||
import com.intellij.ui.SideBorder;
|
||||
import com.intellij.util.*;
|
||||
import com.intellij.util.DocumentUtil;
|
||||
import com.intellij.util.FileContentUtil;
|
||||
import com.intellij.util.ObjectUtils;
|
||||
import com.intellij.util.SingleAlarm;
|
||||
import com.intellij.util.ui.AbstractLayoutManager;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -112,8 +115,6 @@ public class LanguageConsoleImpl implements Disposable, TypeSafeDataProvider {
|
||||
}
|
||||
};
|
||||
|
||||
private final PairFunction<VirtualFile, Project, PsiFile> myPsiFileFactory;
|
||||
|
||||
public LanguageConsoleImpl(@NotNull Project project, @NotNull String title, @NotNull Language language) {
|
||||
this(project, title, language, true);
|
||||
}
|
||||
@@ -122,19 +123,7 @@ public class LanguageConsoleImpl implements Disposable, TypeSafeDataProvider {
|
||||
this(project, title, new LightVirtualFile(title, language, ""), initComponents);
|
||||
}
|
||||
|
||||
public LanguageConsoleImpl(@NotNull Project project, @NotNull String title, @NotNull Language language, @Nullable PairFunction<VirtualFile, Project, PsiFile> psiFileFactory) {
|
||||
this(project, title, new LightVirtualFile(title, language, ""), false, psiFileFactory);
|
||||
}
|
||||
|
||||
public LanguageConsoleImpl(@NotNull Project project, @NotNull String title, @NotNull LightVirtualFile lightFile, boolean initComponents) {
|
||||
this(project, title, lightFile, initComponents, null);
|
||||
}
|
||||
|
||||
public LanguageConsoleImpl(@NotNull Project project,
|
||||
@NotNull String title,
|
||||
@NotNull LightVirtualFile lightFile,
|
||||
boolean initComponents,
|
||||
@Nullable PairFunction<VirtualFile, Project, PsiFile> psiFileFactory) {
|
||||
myProject = project;
|
||||
myTitle = title;
|
||||
myVirtualFile = lightFile;
|
||||
@@ -142,7 +131,6 @@ public class LanguageConsoleImpl implements Disposable, TypeSafeDataProvider {
|
||||
myHistoryFile = new LightVirtualFile(getTitle() + ".history.txt", FileTypes.PLAIN_TEXT, "");
|
||||
myEditorDocument = FileDocumentManager.getInstance().getDocument(lightFile);
|
||||
assert myEditorDocument != null;
|
||||
myPsiFileFactory = psiFileFactory;
|
||||
myFile = createFile(myVirtualFile, myEditorDocument, myProject);
|
||||
myConsoleEditor = (EditorEx)editorFactory.createEditor(myEditorDocument, myProject);
|
||||
myConsoleEditor.addFocusListener(myFocusListener);
|
||||
@@ -691,12 +679,7 @@ public class LanguageConsoleImpl implements Disposable, TypeSafeDataProvider {
|
||||
|
||||
@NotNull
|
||||
protected PsiFile createFile(@NotNull LightVirtualFile virtualFile, @NotNull Document document, @NotNull Project project) {
|
||||
if (myPsiFileFactory == null) {
|
||||
return ObjectUtils.assertNotNull(PsiManager.getInstance(project).findFile(virtualFile));
|
||||
}
|
||||
else {
|
||||
return myPsiFileFactory.fun(virtualFile, project);
|
||||
}
|
||||
return ObjectUtils.assertNotNull(PsiManager.getInstance(project).findFile(virtualFile));
|
||||
}
|
||||
|
||||
private class MyLayout extends AbstractLayoutManager {
|
||||
|
||||
@@ -16,11 +16,11 @@
|
||||
package org.jetbrains.plugins.groovy.console;
|
||||
|
||||
import com.intellij.execution.console.LanguageConsoleImpl;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.util.PairFunction;
|
||||
import com.intellij.testFramework.LightVirtualFile;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.plugins.groovy.GroovyFileType;
|
||||
import org.jetbrains.plugins.groovy.debugger.fragments.GroovyCodeFragment;
|
||||
@@ -40,13 +40,13 @@ public class GroovyConsoleAction extends GroovyShellActionBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected LanguageConsoleImpl createConsole(@NotNull Project project, String title) {
|
||||
return new LanguageConsoleImpl(project, title, GroovyFileType.GROOVY_LANGUAGE, new PairFunction<VirtualFile, Project, PsiFile>() {
|
||||
protected LanguageConsoleImpl createConsole(Project project, String title) {
|
||||
return new LanguageConsoleImpl(project, title, GroovyFileType.GROOVY_LANGUAGE) {
|
||||
@NotNull
|
||||
@Override
|
||||
public PsiFile fun(@NotNull VirtualFile file, @NotNull Project project) {
|
||||
return new GroovyCodeFragment(project, file);
|
||||
protected PsiFile createFile(@NotNull LightVirtualFile virtualFile, @NotNull Document document, @NotNull Project project) {
|
||||
return new GroovyCodeFragment(getProject(), virtualFile);
|
||||
}
|
||||
});
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user