hide psiFileFactory

This commit is contained in:
Vladimir Krivosheev
2014-02-21 16:03:38 +01:00
parent fdee76603c
commit 26a4855fe0
3 changed files with 30 additions and 30 deletions
@@ -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);
}
});
};
}
}