summaryrefslogtreecommitdiff
path: root/platform/indexing-impl/src/com
diff options
context:
space:
mode:
Diffstat (limited to 'platform/indexing-impl/src/com')
-rw-r--r--platform/indexing-impl/src/com/intellij/openapi/module/impl/scopes/ModuleWithDependentsScope.java19
-rw-r--r--platform/indexing-impl/src/com/intellij/psi/impl/cache/CacheManager.java12
-rw-r--r--platform/indexing-impl/src/com/intellij/psi/impl/cache/impl/BaseFilterLexer.java2
-rw-r--r--platform/indexing-impl/src/com/intellij/psi/impl/cache/impl/BaseFilterLexerUtil.java3
-rw-r--r--platform/indexing-impl/src/com/intellij/psi/stubs/StubProcessingHelperBase.java12
5 files changed, 32 insertions, 16 deletions
diff --git a/platform/indexing-impl/src/com/intellij/openapi/module/impl/scopes/ModuleWithDependentsScope.java b/platform/indexing-impl/src/com/intellij/openapi/module/impl/scopes/ModuleWithDependentsScope.java
index 0a575acdc550..259ea3936934 100644
--- a/platform/indexing-impl/src/com/intellij/openapi/module/impl/scopes/ModuleWithDependentsScope.java
+++ b/platform/indexing-impl/src/com/intellij/openapi/module/impl/scopes/ModuleWithDependentsScope.java
@@ -50,27 +50,28 @@ class ModuleWithDependentsScope extends GlobalSearchScope {
myProjectFileIndex = ProjectRootManager.getInstance(module.getProject()).getFileIndex();
myProjectScope = ProjectScope.getProjectScope(module.getProject());
- myModules = new THashSet<Module>();
- myModules.add(module);
-
- fillModules();
+ myModules = buildDependents(myModule);
}
- private void fillModules() {
- ModuleIndex index = getModuleIndex(myModule.getProject());
+ private static Set<Module> buildDependents(Module module) {
+ Set<Module> result = new THashSet<Module>();
+ result.add(module);
+
+ ModuleIndex index = getModuleIndex(module.getProject());
Queue<Module> walkingQueue = new Queue<Module>(10);
- walkingQueue.addLast(myModule);
+ walkingQueue.addLast(module);
while (!walkingQueue.isEmpty()) {
Module current = walkingQueue.pullFirst();
- myModules.addAll(index.plainUsages.get(current));
+ result.addAll(index.plainUsages.get(current));
for (Module dependent : index.exportingUsages.get(current)) {
- if (myModules.add(dependent)) {
+ if (result.add(dependent)) {
walkingQueue.addLast(dependent);
}
}
}
+ return result;
}
private static class ModuleIndex {
diff --git a/platform/indexing-impl/src/com/intellij/psi/impl/cache/CacheManager.java b/platform/indexing-impl/src/com/intellij/psi/impl/cache/CacheManager.java
index 54a3bf5ce979..e403f60c8777 100644
--- a/platform/indexing-impl/src/com/intellij/psi/impl/cache/CacheManager.java
+++ b/platform/indexing-impl/src/com/intellij/psi/impl/cache/CacheManager.java
@@ -20,7 +20,9 @@ import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiFile;
import com.intellij.psi.search.GlobalSearchScope;
+import com.intellij.psi.search.UsageSearchContext;
import com.intellij.util.Processor;
+import org.intellij.lang.annotations.MagicConstant;
import org.jetbrains.annotations.NotNull;
public interface CacheManager {
@@ -33,7 +35,13 @@ public interface CacheManager {
}
}
- @NotNull PsiFile[] getFilesWithWord(@NotNull String word, short occurenceMask, @NotNull GlobalSearchScope scope, final boolean caseSensitively);
- boolean processFilesWithWord(@NotNull Processor<PsiFile> processor,@NotNull String word, short occurenceMask, @NotNull GlobalSearchScope scope, final boolean caseSensitively);
+ @NotNull
+ PsiFile[] getFilesWithWord(@NotNull String word, short occurenceMask, @NotNull GlobalSearchScope scope, final boolean caseSensitively);
+
+ boolean processFilesWithWord(@NotNull Processor<PsiFile> processor,
+ @NotNull String word,
+ @MagicConstant(flagsFromClass = UsageSearchContext.class) short occurenceMask,
+ @NotNull GlobalSearchScope scope,
+ final boolean caseSensitively);
}
diff --git a/platform/indexing-impl/src/com/intellij/psi/impl/cache/impl/BaseFilterLexer.java b/platform/indexing-impl/src/com/intellij/psi/impl/cache/impl/BaseFilterLexer.java
index cc9dddf396ea..ab774d182cbb 100644
--- a/platform/indexing-impl/src/com/intellij/psi/impl/cache/impl/BaseFilterLexer.java
+++ b/platform/indexing-impl/src/com/intellij/psi/impl/cache/impl/BaseFilterLexer.java
@@ -76,7 +76,7 @@ public abstract class BaseFilterLexer extends DelegateLexer implements IdTableBu
todoScanningState = new TodoScanningState(patterns, matchers);
for (int i = 0; i < patterns.length; ++i) {
- Pattern pattern = patterns[i].getPattern();
+ Pattern pattern = patterns[i].getOptimizedIndexingPattern();
if (pattern != null) {
matchers[i] = pattern.matcher("");
diff --git a/platform/indexing-impl/src/com/intellij/psi/impl/cache/impl/BaseFilterLexerUtil.java b/platform/indexing-impl/src/com/intellij/psi/impl/cache/impl/BaseFilterLexerUtil.java
index 43f6ce4aec93..3896dc380988 100644
--- a/platform/indexing-impl/src/com/intellij/psi/impl/cache/impl/BaseFilterLexerUtil.java
+++ b/platform/indexing-impl/src/com/intellij/psi/impl/cache/impl/BaseFilterLexerUtil.java
@@ -17,7 +17,6 @@ package com.intellij.psi.impl.cache.impl;
import com.intellij.lexer.Lexer;
import com.intellij.openapi.util.Key;
-import com.intellij.openapi.vfs.StandardFileSystems;
import com.intellij.psi.impl.cache.impl.id.IdIndexEntry;
import com.intellij.psi.impl.cache.impl.id.IdTableBuilding;
import com.intellij.psi.impl.cache.impl.id.LexerBasedIdIndexer;
@@ -40,7 +39,7 @@ public class BaseFilterLexerUtil {
return data;
}
- final boolean needTodo = content.getFile().getFileSystem().getProtocol().equals(StandardFileSystems.FILE_PROTOCOL);
+ final boolean needTodo = content.getFile().isInLocalFileSystem(); // same as TodoIndex.getFilter().isAcceptable
final boolean needIdIndex = IdTableBuilding.getFileTypeIndexer(content.getFileType()) instanceof LexerBasedIdIndexer;
final IdDataConsumer consumer = needIdIndex? new IdDataConsumer():null;
diff --git a/platform/indexing-impl/src/com/intellij/psi/stubs/StubProcessingHelperBase.java b/platform/indexing-impl/src/com/intellij/psi/stubs/StubProcessingHelperBase.java
index a97ae21b1d81..83bd87271fc4 100644
--- a/platform/indexing-impl/src/com/intellij/psi/stubs/StubProcessingHelperBase.java
+++ b/platform/indexing-impl/src/com/intellij/psi/stubs/StubProcessingHelperBase.java
@@ -32,11 +32,19 @@ public abstract class StubProcessingHelperBase {
return stub.getStubType();
}
- public <Psi extends PsiElement> boolean processStubsInFile(final Project project, final VirtualFile file, StubIdList value, final Processor<? super Psi> processor, Class<Psi> requiredClass) {
+ public <Psi extends PsiElement> boolean processStubsInFile(@NotNull final Project project,
+ @NotNull final VirtualFile file,
+ @NotNull StubIdList value,
+ @NotNull final Processor<? super Psi> processor,
+ @NotNull Class<Psi> requiredClass) {
return processStubsInFile(project, file, value, processor, requiredClass, false);
}
- public <Psi extends PsiElement> boolean processStubsInFile(final Project project, final VirtualFile file, StubIdList value, final Processor<? super Psi> processor, Class<Psi> requiredClass, final boolean skipOnErrors) {
+ public <Psi extends PsiElement> boolean processStubsInFile(@NotNull final Project project,
+ @NotNull final VirtualFile file,
+ @NotNull StubIdList value,
+ @NotNull final Processor<? super Psi> processor,
+ @NotNull Class<Psi> requiredClass, final boolean skipOnErrors) {
StubTree stubTree = null;
PsiFile candidatePsiFile = PsiManager.getInstance(project).findFile(file);