diff options
Diffstat (limited to 'platform/analysis-api/src/com')
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); |