mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -75,7 +75,7 @@ public class ExtensionPointLocator {
|
||||
}
|
||||
|
||||
final Project project = psiClass.getProject();
|
||||
final Collection<VirtualFile> candidates = DomService.getInstance().getDomFileCandidates(IdeaPlugin.class, project);
|
||||
final Collection<VirtualFile> candidates = DomService.getInstance().getDomFileCandidates(IdeaPlugin.class, project, GlobalSearchScope.allScope(project));
|
||||
GlobalSearchScope scope = GlobalSearchScope.filesScope(project, candidates);
|
||||
PsiSearchHelper.SERVICE.getInstance(project).processUsagesInNonJavaFiles(name, new PsiNonJavaFileReferenceProcessor() {
|
||||
@Override
|
||||
|
||||
@@ -164,12 +164,19 @@ public class DomServiceImpl extends DomService {
|
||||
|
||||
@Override
|
||||
public Collection<VirtualFile> getDomFileCandidates(Class<? extends DomElement> description, Project project) {
|
||||
return FileBasedIndex.getInstance().getContainingFiles(DomFileIndex.NAME, description.getName(), GlobalSearchScope.allScope(project));
|
||||
return getDomFileCandidates(description, project, GlobalSearchScope.allScope(project));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<VirtualFile> getDomFileCandidates(Class<? extends DomElement> rootElementClass,
|
||||
Project project,
|
||||
final GlobalSearchScope scope) {
|
||||
return FileBasedIndex.getInstance().getContainingFiles(DomFileIndex.NAME, rootElementClass.getName(), scope);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends DomElement> List<DomFileElement<T>> getFileElements(final Class<T> clazz, final Project project, @Nullable final GlobalSearchScope scope) {
|
||||
final Collection<VirtualFile> list = scope == null ? getDomFileCandidates(clazz, project) : getDomFileCandidates(clazz, project, scope);
|
||||
final Collection<VirtualFile> list = getDomFileCandidates(clazz, project, scope != null ? scope : GlobalSearchScope.allScope(project));
|
||||
final ArrayList<DomFileElement<T>> result = new ArrayList<DomFileElement<T>>(list.size());
|
||||
for (VirtualFile file : list) {
|
||||
final PsiFile psiFile = PsiManager.getInstance(project).findFile(file);
|
||||
@@ -189,5 +196,4 @@ public class DomServiceImpl extends DomService {
|
||||
public StructureViewBuilder createSimpleStructureViewBuilder(final XmlFile file, final Function<DomElement, StructureViewMode> modeProvider) {
|
||||
return new DomStructureViewBuilder(file, modeProvider);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -126,7 +126,8 @@ public class DomFileDescription<T> {
|
||||
/**
|
||||
* @return some version. Override and change (e.g. <code>super.getVersion()+1</code>) when after some changes some files stopped being
|
||||
* described by this description or vice versa, so that the
|
||||
* {@link com.intellij.util.xml.DomService#getDomFileCandidates(Class, com.intellij.openapi.project.Project)} index is rebuilt correctly.
|
||||
* {@link com.intellij.util.xml.DomService#getDomFileCandidates(Class, com.intellij.openapi.project.Project, com.intellij.psi.search.GlobalSearchScope)}
|
||||
* index is rebuilt correctly.
|
||||
*/
|
||||
public int getVersion() {
|
||||
return myRootTagName.hashCode();
|
||||
|
||||
@@ -19,12 +19,10 @@ package com.intellij.util.xml;
|
||||
import com.intellij.ide.structureView.StructureViewBuilder;
|
||||
import com.intellij.openapi.components.ServiceManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Condition;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.psi.xml.XmlFile;
|
||||
import com.intellij.util.Function;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -44,24 +42,21 @@ public abstract class DomService {
|
||||
return ourCachedInstance;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated use {@link #getDomFileCandidates(Class, com.intellij.openapi.project.Project, com.intellij.psi.search.GlobalSearchScope)} (to remove in IDEA 15)
|
||||
*/
|
||||
public abstract Collection<VirtualFile> getDomFileCandidates(Class<? extends DomElement> description, Project project);
|
||||
|
||||
/**
|
||||
* @param rootElementClass class of root (file-level) element in DOM model
|
||||
* @param project current project
|
||||
* @param scope search scope
|
||||
* @param project current project
|
||||
* @param scope search scope
|
||||
* @return files containing given root element
|
||||
*
|
||||
* @see #getFileElements(Class, com.intellij.openapi.project.Project, com.intellij.psi.search.GlobalSearchScope)
|
||||
*/
|
||||
public Collection<VirtualFile> getDomFileCandidates(Class<? extends DomElement> rootElementClass, Project project, final GlobalSearchScope scope) {
|
||||
return ContainerUtil.findAll(getDomFileCandidates(rootElementClass, project), new Condition<VirtualFile>() {
|
||||
@Override
|
||||
public boolean value(final VirtualFile file) {
|
||||
return scope.contains(file);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public abstract Collection<VirtualFile> getDomFileCandidates(Class<? extends DomElement> description, Project project);
|
||||
public abstract Collection<VirtualFile> getDomFileCandidates(Class<? extends DomElement> rootElementClass,
|
||||
Project project,
|
||||
GlobalSearchScope scope);
|
||||
|
||||
/**
|
||||
* @param rootElementClass class of root (file-level) element in DOM model
|
||||
@@ -89,5 +84,7 @@ public abstract class DomService {
|
||||
public enum StructureViewMode {
|
||||
SHOW, SHOW_CHILDREN, SKIP
|
||||
}
|
||||
public abstract StructureViewBuilder createSimpleStructureViewBuilder(final XmlFile file, final Function<DomElement, StructureViewMode> modeProvider);
|
||||
|
||||
public abstract StructureViewBuilder createSimpleStructureViewBuilder(final XmlFile file,
|
||||
final Function<DomElement, StructureViewMode> modeProvider);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user