mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Console: correctly navigate to sources using the corresponding scopes
This commit is contained in:
+6
-1
@@ -21,10 +21,15 @@
|
||||
package com.intellij.execution.filters;
|
||||
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class DefaultConsoleFiltersProvider implements ConsoleFilterProvider{
|
||||
public class DefaultConsoleFiltersProvider implements ConsoleFilterProviderEx {
|
||||
public Filter[] getDefaultFilters(@NotNull Project project) {
|
||||
return new Filter[]{new ExceptionFilter(project), new YourkitFilter(project)};
|
||||
}
|
||||
|
||||
public Filter[] getDefaultFilters(@NotNull Project project, @NotNull GlobalSearchScope scope) {
|
||||
return new Filter[]{new ExceptionFilter(scope), new YourkitFilter(project)};
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
/*
|
||||
* Copyright 2000-2010 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/*
|
||||
* User: anna
|
||||
* Date: 20-Aug-2007
|
||||
*/
|
||||
package com.intellij.execution.filters;
|
||||
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public interface ConsoleFilterProviderEx extends ConsoleFilterProvider {
|
||||
Filter[] getDefaultFilters(@NotNull Project project, @NotNull GlobalSearchScope scope);
|
||||
}
|
||||
@@ -24,6 +24,7 @@ package com.intellij.execution.filters;
|
||||
|
||||
import com.intellij.openapi.components.ServiceManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
|
||||
/**
|
||||
* @author dyoma
|
||||
@@ -31,6 +32,8 @@ import com.intellij.openapi.project.Project;
|
||||
public abstract class TextConsoleBuilderFactory {
|
||||
public abstract TextConsoleBuilder createBuilder(Project project);
|
||||
|
||||
public abstract TextConsoleBuilder createBuilder(Project project, GlobalSearchScope scope);
|
||||
|
||||
public static TextConsoleBuilderFactory getInstance() {
|
||||
return ServiceManager.getService(TextConsoleBuilderFactory.class);
|
||||
}
|
||||
|
||||
+5
@@ -23,6 +23,7 @@
|
||||
package com.intellij.execution.filters;
|
||||
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
|
||||
/**
|
||||
* @author dyoma
|
||||
@@ -32,4 +33,8 @@ public class TextConsoleBuilderFactoryImpl extends TextConsoleBuilderFactory {
|
||||
return new TextConsoleBuilderImpl(project);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TextConsoleBuilder createBuilder(Project project, GlobalSearchScope scope) {
|
||||
return new TextConsoleBuilderImpl(project, scope);
|
||||
}
|
||||
}
|
||||
@@ -19,6 +19,7 @@ package com.intellij.execution.filters;
|
||||
import com.intellij.execution.impl.ConsoleViewImpl;
|
||||
import com.intellij.execution.ui.ConsoleView;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
@@ -27,11 +28,17 @@ import java.util.ArrayList;
|
||||
*/
|
||||
public class TextConsoleBuilderImpl extends TextConsoleBuilder {
|
||||
private final Project myProject;
|
||||
private final GlobalSearchScope myScope;
|
||||
private final ArrayList<Filter> myFilters = new ArrayList<Filter>();
|
||||
private boolean myViewer;
|
||||
|
||||
public TextConsoleBuilderImpl(final Project project) {
|
||||
this(project, GlobalSearchScope.allScope(project));
|
||||
}
|
||||
|
||||
public TextConsoleBuilderImpl(final Project project, GlobalSearchScope scope) {
|
||||
myProject = project;
|
||||
myScope = scope;
|
||||
}
|
||||
|
||||
public ConsoleView getConsole() {
|
||||
@@ -43,7 +50,7 @@ public class TextConsoleBuilderImpl extends TextConsoleBuilder {
|
||||
}
|
||||
|
||||
protected ConsoleViewImpl createConsole() {
|
||||
return new ConsoleViewImpl(myProject, myViewer);
|
||||
return new ConsoleViewImpl(myProject, myScope, myViewer, null);
|
||||
}
|
||||
|
||||
public void addFilter(final Filter filter) {
|
||||
|
||||
@@ -68,6 +68,7 @@ import com.intellij.pom.Navigatable;
|
||||
import com.intellij.psi.PsiDocumentManager;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.PsiFileFactory;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
import com.intellij.util.Alarm;
|
||||
import com.intellij.util.EditorPopupHandler;
|
||||
@@ -237,6 +238,11 @@ public class ConsoleViewImpl extends JPanel implements ConsoleView, ObservableCo
|
||||
}
|
||||
|
||||
public ConsoleViewImpl(final Project project, boolean viewer, FileType fileType) {
|
||||
this(project, GlobalSearchScope.allScope(project), viewer, fileType);
|
||||
}
|
||||
|
||||
|
||||
public ConsoleViewImpl(final Project project, GlobalSearchScope searchScope, boolean viewer, FileType fileType) {
|
||||
super(new BorderLayout());
|
||||
isViewer = viewer;
|
||||
myPsiDisposedCheck = new DisposedPsiManagerCheck(project);
|
||||
@@ -245,8 +251,11 @@ public class ConsoleViewImpl extends JPanel implements ConsoleView, ObservableCo
|
||||
|
||||
myCustomFilter = new CompositeFilter(project);
|
||||
myPredefinedMessageFilter = new CompositeFilter(project);
|
||||
for (ConsoleFilterProvider filterProvider : Extensions.getExtensions(ConsoleFilterProvider.FILTER_PROVIDERS)) {
|
||||
for (Filter filter : filterProvider.getDefaultFilters(project)) {
|
||||
for (ConsoleFilterProvider eachProvider : Extensions.getExtensions(ConsoleFilterProvider.FILTER_PROVIDERS)) {
|
||||
Filter[] filters = eachProvider instanceof ConsoleFilterProviderEx
|
||||
? ((ConsoleFilterProviderEx)eachProvider).getDefaultFilters(project, searchScope)
|
||||
: eachProvider.getDefaultFilters(project);
|
||||
for (Filter filter : filters) {
|
||||
myPredefinedMessageFilter.addFilter(filter);
|
||||
}
|
||||
}
|
||||
|
||||
+18
-2
@@ -25,7 +25,9 @@ import com.intellij.execution.ui.ConsoleView;
|
||||
import com.intellij.execution.ui.ExecutionConsole;
|
||||
import com.intellij.execution.util.StoringPropertyContainer;
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.util.config.AbstractProperty;
|
||||
import com.intellij.util.config.BooleanProperty;
|
||||
import com.intellij.util.config.Storage;
|
||||
@@ -46,14 +48,28 @@ public abstract class TestConsoleProperties extends StoringPropertyContainer imp
|
||||
private final Project myProject;
|
||||
private ConsoleView myConsole;
|
||||
|
||||
protected final HashMap<AbstractProperty, ArrayList<TestFrameworkPropertyListener>> myListeners = new HashMap<AbstractProperty, ArrayList<TestFrameworkPropertyListener>>();
|
||||
protected final HashMap<AbstractProperty, ArrayList<TestFrameworkPropertyListener>> myListeners =
|
||||
new HashMap<AbstractProperty, ArrayList<TestFrameworkPropertyListener>>();
|
||||
|
||||
public TestConsoleProperties(final Storage storage, Project project) {
|
||||
super(storage);
|
||||
myProject = project;
|
||||
}
|
||||
|
||||
public Project getProject() { return myProject; }
|
||||
public Project getProject() {
|
||||
return myProject;
|
||||
}
|
||||
|
||||
public GlobalSearchScope getScope() {
|
||||
Module[] modules = getConfiguration().getModules();
|
||||
if (modules.length == 0) return GlobalSearchScope.allScope(myProject);
|
||||
|
||||
GlobalSearchScope scope = GlobalSearchScope.EMPTY_SCOPE;
|
||||
for (Module each : modules) {
|
||||
scope = scope.uniteWith(GlobalSearchScope.moduleRuntimeScope(each, true));
|
||||
}
|
||||
return scope;
|
||||
}
|
||||
|
||||
public <T> void addListener(final AbstractProperty<T> property, final TestFrameworkPropertyListener<T> listener) {
|
||||
ArrayList<TestFrameworkPropertyListener> listeners = myListeners.get(property);
|
||||
|
||||
+1
-1
@@ -40,7 +40,7 @@ public abstract class BaseTestsOutputConsoleView implements ConsoleView, Observa
|
||||
|
||||
public BaseTestsOutputConsoleView(final TestConsoleProperties properties) {
|
||||
myProperties = properties;
|
||||
myConsole = TextConsoleBuilderFactory.getInstance().createBuilder(properties.getProject()).getConsole();
|
||||
myConsole = TextConsoleBuilderFactory.getInstance().createBuilder(properties.getProject(), myProperties.getScope()).getConsole();
|
||||
myPrinter = new TestsOutputConsolePrinter(myConsole, properties);
|
||||
myProperties.setConsole(this);
|
||||
|
||||
|
||||
+5
@@ -19,6 +19,7 @@ package com.intellij.execution.junit2.ui.properties;
|
||||
import com.intellij.execution.junit.JUnitConfiguration;
|
||||
import com.intellij.execution.testframework.JavaAwareTestConsoleProperties;
|
||||
import com.intellij.ide.util.PropertiesComponent;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.util.config.Storage;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -39,4 +40,8 @@ public class JUnitConsoleProperties extends JavaAwareTestConsoleProperties {
|
||||
|
||||
public JUnitConfiguration getConfiguration() { return myConfiguration; }
|
||||
|
||||
@Override
|
||||
public GlobalSearchScope getScope() {
|
||||
return myConfiguration.getPersistentData().getScope().getSourceScope(myConfiguration).getLibrariesScope();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ package com.theoryinpractice.testng.model;
|
||||
|
||||
import com.intellij.execution.testframework.JavaAwareTestConsoleProperties;
|
||||
import com.intellij.ide.util.PropertiesComponent;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.util.config.Storage;
|
||||
import com.theoryinpractice.testng.configuration.TestNGConfiguration;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
@@ -35,4 +36,9 @@ public class TestNGConsoleProperties extends JavaAwareTestConsoleProperties {
|
||||
{
|
||||
return myConfiguration;
|
||||
}
|
||||
|
||||
@Override
|
||||
public GlobalSearchScope getScope() {
|
||||
return myConfiguration.getPersistantData().getScope().getSourceScope(myConfiguration).getLibrariesScope();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user