Change PluginJetFilesProvider.allFilesInProject to a simpler implementation
This commit is contained in:
@@ -16,63 +16,22 @@
|
|||||||
|
|
||||||
package org.jetbrains.jet.plugin.project;
|
package org.jetbrains.jet.plugin.project;
|
||||||
|
|
||||||
import com.google.common.collect.Sets;
|
|
||||||
import com.intellij.openapi.fileTypes.FileType;
|
|
||||||
import com.intellij.openapi.fileTypes.FileTypeManager;
|
|
||||||
import com.intellij.openapi.module.Module;
|
|
||||||
import com.intellij.openapi.module.ModuleUtil;
|
|
||||||
import com.intellij.openapi.project.Project;
|
import com.intellij.openapi.project.Project;
|
||||||
import com.intellij.openapi.roots.ContentIterator;
|
import com.intellij.psi.search.GlobalSearchScope;
|
||||||
import com.intellij.openapi.roots.ModuleFileIndex;
|
|
||||||
import com.intellij.openapi.roots.ModuleRootManager;
|
|
||||||
import com.intellij.openapi.vfs.VirtualFile;
|
|
||||||
import com.intellij.psi.PsiFile;
|
|
||||||
import com.intellij.psi.PsiManager;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.jet.lang.psi.JetFile;
|
import org.jetbrains.jet.lang.psi.JetFile;
|
||||||
import org.jetbrains.jet.plugin.JetFileType;
|
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||||
import org.jetbrains.jet.plugin.JetPluginUtil;
|
import org.jetbrains.jet.plugin.stubindex.JetAllPackagesIndex;
|
||||||
|
import org.jetbrains.jet.plugin.stubindex.JetSourceFilterScope;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
public class PluginJetFilesProvider {
|
public class PluginJetFilesProvider {
|
||||||
|
|
||||||
public static Collection<JetFile> allFilesInProject(@NotNull final JetFile rootFile) {
|
@NotNull
|
||||||
final Project project = rootFile.getProject();
|
public static Collection<JetFile> allFilesInProject(@NotNull Project project) {
|
||||||
final Set<JetFile> files = Sets.newLinkedHashSet();
|
return JetAllPackagesIndex.getInstance().get(FqName.ROOT.asString(), project,
|
||||||
|
JetSourceFilterScope.kotlinSources(GlobalSearchScope.allScope(project)));
|
||||||
Module rootModule = ModuleUtil.findModuleForPsiElement(rootFile);
|
|
||||||
if (rootModule != null) {
|
|
||||||
Set<Module> allModules = new HashSet<Module>();
|
|
||||||
ModuleUtil.getDependencies(rootModule, allModules);
|
|
||||||
|
|
||||||
for (Module module : allModules) {
|
|
||||||
final ModuleFileIndex index = ModuleRootManager.getInstance(module).getFileIndex();
|
|
||||||
index.iterateContent(new ContentIterator() {
|
|
||||||
@Override
|
|
||||||
public boolean processFile(VirtualFile file) {
|
|
||||||
if (file.isDirectory()) return true;
|
|
||||||
if (!index.isInSourceContent(file) && !index.isInTestSourceContent(file)) return true;
|
|
||||||
if (JetPluginUtil.isKtFileInGradleProjectInWrongFolder(file, project)) return true;
|
|
||||||
|
|
||||||
FileType fileType = FileTypeManager.getInstance().getFileTypeByFile(file);
|
|
||||||
if (fileType != JetFileType.INSTANCE) return true;
|
|
||||||
PsiFile psiFile = PsiManager.getInstance(project).findFile(file);
|
|
||||||
if (psiFile instanceof JetFile) {
|
|
||||||
if (rootFile.getOriginalFile() != psiFile) {
|
|
||||||
files.add((JetFile) psiFile);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
files.add(rootFile);
|
|
||||||
return files;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private PluginJetFilesProvider() {
|
private PluginJetFilesProvider() {
|
||||||
|
|||||||
+1
-1
@@ -84,7 +84,7 @@ public class AddOverrideToEqualsHashCodeToStringFix extends JetIntentionAction<P
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void invoke(@NotNull Project project, Editor editor, JetFile file) throws IncorrectOperationException {
|
protected void invoke(@NotNull Project project, Editor editor, JetFile file) throws IncorrectOperationException {
|
||||||
Collection<JetFile> files = PluginJetFilesProvider.allFilesInProject(file);
|
Collection<JetFile> files = PluginJetFilesProvider.allFilesInProject(file.getProject());
|
||||||
|
|
||||||
for (JetFile jetFile : files) {
|
for (JetFile jetFile : files) {
|
||||||
for (Diagnostic diagnostic : ResolvePackage.getBindingContext(jetFile).getDiagnostics()) {
|
for (Diagnostic diagnostic : ResolvePackage.getBindingContext(jetFile).getDiagnostics()) {
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ public class MigrateSureInProjectFix extends JetIntentionAction<PsiElement> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void invoke(@NotNull Project project, Editor editor, JetFile file) throws IncorrectOperationException {
|
public void invoke(@NotNull Project project, Editor editor, JetFile file) throws IncorrectOperationException {
|
||||||
Collection<JetFile> files = PluginJetFilesProvider.allFilesInProject(file);
|
Collection<JetFile> files = PluginJetFilesProvider.allFilesInProject(project);
|
||||||
|
|
||||||
for (JetFile jetFile : files) {
|
for (JetFile jetFile : files) {
|
||||||
replaceUnresolvedSure(jetFile);
|
replaceUnresolvedSure(jetFile);
|
||||||
|
|||||||
@@ -52,8 +52,7 @@ public class RemoveValVarFromParametersFix implements IntentionAction {
|
|||||||
public void invoke(@NotNull Project project, Editor editor, PsiFile file) {
|
public void invoke(@NotNull Project project, Editor editor, PsiFile file) {
|
||||||
// TODO after M6, this quick fix should remove val/var only for current parameter
|
// TODO after M6, this quick fix should remove val/var only for current parameter
|
||||||
|
|
||||||
JetFile initialFile = (JetFile) file;
|
Collection<JetFile> files = PluginJetFilesProvider.allFilesInProject(project);
|
||||||
Collection<JetFile> files = PluginJetFilesProvider.allFilesInProject(initialFile);
|
|
||||||
for (JetFile jetFile : files) {
|
for (JetFile jetFile : files) {
|
||||||
jetFile.acceptChildren(new JetVisitorVoid() {
|
jetFile.acceptChildren(new JetVisitorVoid() {
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ import org.jetbrains.jet.codegen.GenerationUtils;
|
|||||||
import org.jetbrains.jet.codegen.state.GenerationState;
|
import org.jetbrains.jet.codegen.state.GenerationState;
|
||||||
import org.jetbrains.jet.lang.psi.JetFile;
|
import org.jetbrains.jet.lang.psi.JetFile;
|
||||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||||
|
import org.jetbrains.jet.plugin.project.PluginJetFilesProvider;
|
||||||
import org.jetbrains.jet.plugin.stubindex.JetAllPackagesIndex;
|
import org.jetbrains.jet.plugin.stubindex.JetAllPackagesIndex;
|
||||||
import org.jetbrains.jet.utils.UtilsPackage;
|
import org.jetbrains.jet.utils.UtilsPackage;
|
||||||
|
|
||||||
@@ -86,9 +87,7 @@ public abstract class PositionManagerTestCase extends MultiFileTestCase {
|
|||||||
|
|
||||||
private void performTest() {
|
private void performTest() {
|
||||||
Project project = getProject();
|
Project project = getProject();
|
||||||
List<JetFile> files = new ArrayList<JetFile>(
|
List<JetFile> files = new ArrayList<JetFile>(PluginJetFilesProvider.allFilesInProject(project));
|
||||||
JetAllPackagesIndex.getInstance().get(FqName.ROOT.asString(), project, GlobalSearchScope.allScope(project))
|
|
||||||
);
|
|
||||||
|
|
||||||
final List<Breakpoint> breakpoints = Lists.newArrayList();
|
final List<Breakpoint> breakpoints = Lists.newArrayList();
|
||||||
for (JetFile file : files) {
|
for (JetFile file : files) {
|
||||||
|
|||||||
Reference in New Issue
Block a user