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)};
+ }
}
\ No newline at end of file
--- /dev/null
+/*
+ * 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);
+}
\ No newline at end of file
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.project.Project;
+import com.intellij.psi.search.GlobalSearchScope;
/**
* @author dyoma
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);
}
package com.intellij.execution.filters;
import com.intellij.openapi.project.Project;
+import com.intellij.psi.search.GlobalSearchScope;
/**
* @author dyoma
return new TextConsoleBuilderImpl(project);
}
+ @Override
+ public TextConsoleBuilder createBuilder(Project project, GlobalSearchScope scope) {
+ return new TextConsoleBuilderImpl(project, scope);
+ }
}
\ No newline at end of file
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;
*/
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() {
}
protected ConsoleViewImpl createConsole() {
- return new ConsoleViewImpl(myProject, myViewer);
+ return new ConsoleViewImpl(myProject, myScope, myViewer, null);
}
public void addFilter(final Filter filter) {
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;
}
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);
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);
}
}
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;
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);
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);
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;
public JUnitConfiguration getConfiguration() { return myConfiguration; }
+ @Override
+ public GlobalSearchScope getScope() {
+ return myConfiguration.getPersistentData().getScope().getSourceScope(myConfiguration).getLibrariesScope();
+ }
}
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;
{
return myConfiguration;
}
+
+ @Override
+ public GlobalSearchScope getScope() {
+ return myConfiguration.getPersistantData().getScope().getSourceScope(myConfiguration).getLibrariesScope();
+ }
}