summaryrefslogtreecommitdiff
path: root/platform/analysis-api/src/com/intellij
diff options
context:
space:
mode:
Diffstat (limited to 'platform/analysis-api/src/com/intellij')
-rw-r--r--platform/analysis-api/src/com/intellij/analysis/AnalysisScope.java12
-rw-r--r--platform/analysis-api/src/com/intellij/codeInspection/InspectionProfileEntry.java3
-rw-r--r--platform/analysis-api/src/com/intellij/codeInspection/ex/InspectionToolsRegistrarCore.java29
-rw-r--r--platform/analysis-api/src/com/intellij/psi/search/scope/NonProjectFilesScope.java4
-rw-r--r--platform/analysis-api/src/com/intellij/psi/search/scope/ProjectProductionScope.java6
5 files changed, 20 insertions, 34 deletions
diff --git a/platform/analysis-api/src/com/intellij/analysis/AnalysisScope.java b/platform/analysis-api/src/com/intellij/analysis/AnalysisScope.java
index b18bb042c183..893a7f3d30da 100644
--- a/platform/analysis-api/src/com/intellij/analysis/AnalysisScope.java
+++ b/platform/analysis-api/src/com/intellij/analysis/AnalysisScope.java
@@ -80,6 +80,7 @@ public class AnalysisScope {
private boolean mySearchInLibraries = false;
@Type protected int myType;
+ private Set<VirtualFile> myVFiles;
protected Set<VirtualFile> myFilesSet;
protected boolean myIncludeTestSource = true;
@@ -145,7 +146,7 @@ public class AnalysisScope {
myModule = null;
myModules = null;
myScope = null;
- myFilesSet = new HashSet<VirtualFile>(virtualFiles);
+ myVFiles = new HashSet<VirtualFile>(virtualFiles);
myType = VIRTUAL_FILES;
}
@@ -241,9 +242,9 @@ public class AnalysisScope {
accept(createFileSearcher());
}
else if (myType == VIRTUAL_FILES) {
- final HashSet<VirtualFile> files = new HashSet<VirtualFile>();
+ myFilesSet = new HashSet<VirtualFile>();
final ProjectFileIndex fileIndex = ProjectRootManager.getInstance(myProject).getFileIndex();
- for (Iterator<VirtualFile> iterator = myFilesSet.iterator(); iterator.hasNext(); ) {
+ for (Iterator<VirtualFile> iterator = myVFiles.iterator(); iterator.hasNext(); ) {
final VirtualFile vFile = iterator.next();
VfsUtilCore.visitChildrenRecursively(vFile, new VirtualFileVisitor() {
@NotNull
@@ -251,7 +252,7 @@ public class AnalysisScope {
public Result visitFileEx(@NotNull VirtualFile file) {
boolean ignored = fileIndex.isExcluded(file);
if (!ignored && !file.isDirectory()) {
- files.add(file);
+ myFilesSet.add(file);
}
return ignored ? SKIP_CHILDREN : CONTINUE;
}
@@ -261,7 +262,6 @@ public class AnalysisScope {
iterator.remove();
}
}
- myFilesSet.addAll(files);
}
}
@@ -592,7 +592,7 @@ public class AnalysisScope {
if (myType != VIRTUAL_FILES) {
myFilesSet = null;
} else {
- for (Iterator<VirtualFile> i = myFilesSet.iterator(); i.hasNext();) {
+ for (Iterator<VirtualFile> i = myVFiles.iterator(); i.hasNext();) {
final VirtualFile virtualFile = i.next();
if (virtualFile == null || !virtualFile.isValid()) {
i.remove();
diff --git a/platform/analysis-api/src/com/intellij/codeInspection/InspectionProfileEntry.java b/platform/analysis-api/src/com/intellij/codeInspection/InspectionProfileEntry.java
index 8d0f1da9d024..43d80faad886 100644
--- a/platform/analysis-api/src/com/intellij/codeInspection/InspectionProfileEntry.java
+++ b/platform/analysis-api/src/com/intellij/codeInspection/InspectionProfileEntry.java
@@ -119,7 +119,7 @@ public abstract class InspectionProfileEntry implements BatchSuppressableTool{
return alternativeId != null && !alternativeId.equals(toolId) && suppressor.isSuppressedFor(element, alternativeId);
}
- private static Set<InspectionSuppressor> getSuppressors(@NotNull PsiElement element) {
+ public static Set<InspectionSuppressor> getSuppressors(@NotNull PsiElement element) {
FileViewProvider viewProvider = element.getContainingFile().getViewProvider();
if (viewProvider instanceof TemplateLanguageFileViewProvider) {
LinkedHashSet<InspectionSuppressor> suppressors = new LinkedHashSet<InspectionSuppressor>();
@@ -127,6 +127,7 @@ public abstract class InspectionProfileEntry implements BatchSuppressableTool{
for (Language language : viewProvider.getLanguages()) {
ContainerUtil.addIfNotNull(suppressors, LanguageInspectionSuppressors.INSTANCE.forLanguage(language));
}
+ ContainerUtil.addIfNotNull(suppressors, LanguageInspectionSuppressors.INSTANCE.forLanguage(element.getLanguage()));
return suppressors;
}
return Collections.singleton(LanguageInspectionSuppressors.INSTANCE.forLanguage(element.getLanguage()));
diff --git a/platform/analysis-api/src/com/intellij/codeInspection/ex/InspectionToolsRegistrarCore.java b/platform/analysis-api/src/com/intellij/codeInspection/ex/InspectionToolsRegistrarCore.java
index 7d2ffb7ce405..eb99cc4d1594 100644
--- a/platform/analysis-api/src/com/intellij/codeInspection/ex/InspectionToolsRegistrarCore.java
+++ b/platform/analysis-api/src/com/intellij/codeInspection/ex/InspectionToolsRegistrarCore.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2013 JetBrains s.r.o.
+ * Copyright 2000-2014 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.
@@ -17,36 +17,17 @@ package com.intellij.codeInspection.ex;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.util.ArrayUtil;
+import com.intellij.util.ReflectionUtil;
import org.jetbrains.annotations.NotNull;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
-
public class InspectionToolsRegistrarCore {
private static final Logger LOG = Logger.getInstance("#com.intellij.codeInspection.ex.InspectionToolsRegistrarCore");
static Object instantiateTool(@NotNull Class<?> toolClass) {
try {
- Constructor<?> constructor = toolClass.getDeclaredConstructor(ArrayUtil.EMPTY_CLASS_ARRAY);
- constructor.setAccessible(true);
- return constructor.newInstance(ArrayUtil.EMPTY_OBJECT_ARRAY);
- }
- catch (SecurityException e) {
- LOG.error(e);
- }
- catch (NoSuchMethodException e) {
- LOG.error(e);
- }
- catch (InstantiationException e) {
- LOG.error(e);
- }
- catch (IllegalAccessException e) {
- LOG.error(e);
- }
- catch (IllegalArgumentException e) {
- LOG.error(e);
+ return ReflectionUtil.newInstance(toolClass, ArrayUtil.EMPTY_CLASS_ARRAY);
}
- catch (InvocationTargetException e) {
- LOG.error(e);
+ catch (RuntimeException e) {
+ LOG.error(e.getCause());
}
return null;
diff --git a/platform/analysis-api/src/com/intellij/psi/search/scope/NonProjectFilesScope.java b/platform/analysis-api/src/com/intellij/psi/search/scope/NonProjectFilesScope.java
index 63fe1c8d28e5..ca229a64bebc 100644
--- a/platform/analysis-api/src/com/intellij/psi/search/scope/NonProjectFilesScope.java
+++ b/platform/analysis-api/src/com/intellij/psi/search/scope/NonProjectFilesScope.java
@@ -17,6 +17,7 @@ package com.intellij.psi.search.scope;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.io.FileUtil;
+import com.intellij.openapi.vfs.NonPhysicalFileSystem;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.search.ProjectScope;
import com.intellij.psi.search.scope.packageSet.AbstractPackageSet;
@@ -43,7 +44,8 @@ public class NonProjectFilesScope extends NamedScope {
@Override
public boolean contains(VirtualFile file, @NotNull Project project, @Nullable NamedScopesHolder holder) {
- if (file == null) return true;
+ // do not include fake-files e.g. fragment-editors, database consoles, etc.
+ if (file == null || file.getFileSystem() instanceof NonPhysicalFileSystem) return false;
if (!file.isInLocalFileSystem()) return true;
if (isInsideProjectContent(project, file)) return false;
return !ProjectScope.getProjectScope(project).contains(file);
diff --git a/platform/analysis-api/src/com/intellij/psi/search/scope/ProjectProductionScope.java b/platform/analysis-api/src/com/intellij/psi/search/scope/ProjectProductionScope.java
index 7d44b0f91450..19788a0bd3d7 100644
--- a/platform/analysis-api/src/com/intellij/psi/search/scope/ProjectProductionScope.java
+++ b/platform/analysis-api/src/com/intellij/psi/search/scope/ProjectProductionScope.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2010 JetBrains s.r.o.
+ * Copyright 2000-2014 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.
@@ -30,8 +30,10 @@ import org.jetbrains.annotations.Nullable;
* @author Konstantin Bulenkov
*/
public class ProjectProductionScope extends NamedScope {
+ public static final String NAME = IdeBundle.message("predefined.scope.production.name");
+
public ProjectProductionScope() {
- super(IdeBundle.message("predefined.scope.production.name"), new AbstractPackageSet("src:*..*") {
+ super(NAME, new AbstractPackageSet("src:*..*") {
@Override
public boolean contains(VirtualFile file, NamedScopesHolder holder) {
return contains(file, holder.getProject(), holder);