introduced FileTypeSpecificInputFilter for index to expose its applicability to specific file types: allows us to have faster calculation of affected indices candidates

This commit is contained in:
Maxim.Mossienko
2013-06-06 12:08:51 +02:00
parent e5311bf52e
commit 6cee79c327
19 changed files with 101 additions and 115 deletions
@@ -46,16 +46,6 @@ public class ImageInfoIndex extends SingleEntryFileBasedIndexExtension<ImageInfo
public static final ID<Integer, ImageInfo> INDEX_ID = ID.create("ImageFileInfoIndex");
private final FileBasedIndex.InputFilter myInputFilter = new FileBasedIndex.InputFilter() {
@Override
public boolean acceptInput(final VirtualFile file) {
return (file.getFileSystem() == LocalFileSystem.getInstance() || file.getFileSystem() instanceof TempFileSystem) &&
file.getFileType() == ImageFileTypeManager.getInstance().getImageFileType() &&
(file.getLength() / 1024) < ourMaxImageSize
;
}
};
private final DataExternalizer<ImageInfo> myValueExternalizer = new DataExternalizer<ImageInfo>() {
@Override
public void save(final DataOutput out, final ImageInfo info) throws IOException {
@@ -102,7 +92,14 @@ public class ImageInfoIndex extends SingleEntryFileBasedIndexExtension<ImageInfo
@Override
public FileBasedIndex.InputFilter getInputFilter() {
return myInputFilter;
return new DefaultFileTypeSpecificInputFilter(ImageFileTypeManager.getInstance().getImageFileType()) {
@Override
public boolean acceptInput(final VirtualFile file) {
return (file.getFileSystem() == LocalFileSystem.getInstance() || file.getFileSystem() instanceof TempFileSystem) &&
(file.getLength() / 1024) < ourMaxImageSize
;
}
};
}
@Override
@@ -20,7 +20,6 @@ import com.intellij.lang.cacheBuilder.CacheBuilderRegistry;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.fileTypes.LanguageFileType;
import com.intellij.openapi.fileTypes.impl.CustomSyntaxTableFileType;
import com.intellij.openapi.project.ProjectCoreUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.util.indexing.*;
import com.intellij.util.io.DataExternalizer;
@@ -45,8 +44,7 @@ public class IdIndex extends FileBasedIndexExtension<IdIndexEntry, Integer> {
private final FileBasedIndex.InputFilter myInputFilter = new FileBasedIndex.InputFilter() {
@Override
public boolean acceptInput(final VirtualFile file) {
final FileType fileType = file.getFileType();
return isIndexable(fileType) && !ProjectCoreUtil.isProjectOrWorkspaceFile(file, fileType);
return isIndexable(file.getFileType());
}
};
@@ -20,7 +20,6 @@ import com.intellij.openapi.Disposable;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.util.Pair;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.patterns.ElementPattern;
import com.intellij.util.EventDispatcher;
import com.intellij.util.containers.MultiMap;
@@ -37,7 +36,7 @@ import java.util.*;
public class FrameworkDetectionIndex extends ScalarIndexExtension<Integer> {
private static final Logger LOG = Logger.getInstance("#com.intellij.framework.detection.impl.FrameworkDetectionIndex");
public static final ID<Integer,Void> NAME = ID.create("FrameworkDetectionIndex");
private FileTypesInputFilter myInputFilter;
private final FrameworkDetectorRegistry myRegistry;
private final EventDispatcher<FrameworkDetectionIndexListener> myDispatcher = EventDispatcher.create(FrameworkDetectionIndexListener.class);
@@ -99,14 +98,11 @@ public class FrameworkDetectionIndex extends ScalarIndexExtension<Integer> {
@Override
public FileBasedIndex.InputFilter getInputFilter() {
if (myInputFilter == null) {
final Set<FileType> acceptedTypes = new HashSet<FileType>();
for (FrameworkDetector detector : FrameworkDetector.EP_NAME.getExtensions()) {
acceptedTypes.add(detector.getFileType());
}
myInputFilter = new FileTypesInputFilter(acceptedTypes);
final Set<FileType> acceptedTypes = new HashSet<FileType>();
for (FrameworkDetector detector : FrameworkDetector.EP_NAME.getExtensions()) {
acceptedTypes.add(detector.getFileType());
}
return myInputFilter;
return new DefaultFileTypeSpecificInputFilter(acceptedTypes.toArray(new FileType[acceptedTypes.size()]));
}
@Override
@@ -118,17 +114,4 @@ public class FrameworkDetectionIndex extends ScalarIndexExtension<Integer> {
public int getVersion() {
return myRegistry.getDetectorsVersion();
}
private static class FileTypesInputFilter implements FileBasedIndex.InputFilter {
private final Set<FileType> myAcceptedTypes;
public FileTypesInputFilter(Set<FileType> acceptedTypes) {
myAcceptedTypes = acceptedTypes;
}
@Override
public boolean acceptInput(VirtualFile file) {
return myAcceptedTypes.contains(file.getFileType());
}
}
}
@@ -118,10 +118,7 @@ public class TodoIndex extends FileBasedIndexExtension<TodoIndexEntry, Integer>
}
final FileType fileType = file.getFileType();
if (ProjectCoreUtil.isProjectOrWorkspaceFile(file, fileType)) {
return false;
}
if (fileType instanceof LanguageFileType) {
final Language lang = ((LanguageFileType)fileType).getLanguage();
final ParserDefinition parserDef = LanguageParserDefinitions.INSTANCE.forLanguage(lang);
@@ -17,9 +17,11 @@
package com.intellij.psi.impl.include;
import com.intellij.openapi.extensions.Extensions;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.vfs.JarFileSystem;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.util.Consumer;
import com.intellij.util.containers.FactoryMap;
import com.intellij.util.containers.MultiMap;
import com.intellij.util.indexing.*;
@@ -160,7 +162,7 @@ public class FileIncludeIndex extends FileBasedIndexExtension<FileIncludeIndex.K
@Override
public FileBasedIndex.InputFilter getInputFilter() {
return new FileBasedIndex.InputFilter() {
return new FileBasedIndex.FileTypeSpecificInputFilter() {
@Override
public boolean acceptInput(VirtualFile file) {
if (file.getFileSystem() == JarFileSystem.getInstance()) {
@@ -173,6 +175,13 @@ public class FileIncludeIndex extends FileBasedIndexExtension<FileIncludeIndex.K
}
return false;
}
@Override
public void registerFileTypesUsedForIndexing(@NotNull Consumer<FileType> fileTypeSink) {
for (FileIncludeProvider provider : myProviders) {
provider.registerFileTypesUsedForIndexing(fileTypeSink);
}
}
};
}
@@ -17,7 +17,9 @@
package com.intellij.psi.impl.include;
import com.intellij.openapi.extensions.ExtensionPointName;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.util.Consumer;
import com.intellij.util.indexing.FileContent;
import org.jetbrains.annotations.NotNull;
@@ -32,7 +34,9 @@ public abstract class FileIncludeProvider {
public abstract String getId();
public abstract boolean acceptFile(VirtualFile file);
public abstract void registerFileTypesUsedForIndexing(@NotNull Consumer<FileType> fileTypeSink);
@NotNull
public abstract FileIncludeInfo[] getIncludeInfos(FileContent content);
}
@@ -15,8 +15,7 @@
*/
package com.intellij.lang.ant;
import com.intellij.ide.highlighter.XmlFileType;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.fileTypes.StdFileTypes;
import com.intellij.util.indexing.*;
import com.intellij.util.io.EnumeratorIntegerDescriptor;
import com.intellij.util.io.KeyDescriptor;
@@ -81,12 +80,6 @@ public class AntImportsIndex extends ScalarIndexExtension<Integer>{
return map;
}
};
private static final FileBasedIndex.InputFilter INPUT_FILTER = new FileBasedIndex.InputFilter() {
@Override
public boolean acceptInput(final VirtualFile file) {
return file.getFileType() instanceof XmlFileType;
}
};
@Override
public int getVersion() {
@@ -112,7 +105,7 @@ public class AntImportsIndex extends ScalarIndexExtension<Integer>{
@Override
public FileBasedIndex.InputFilter getInputFilter() {
return INPUT_FILTER;
return new DefaultFileTypeSpecificInputFilter(StdFileTypes.XML);
}
@Override
@@ -58,6 +58,7 @@ import com.intellij.util.io.KeyDescriptor;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.plugins.groovy.GroovyFileType;
import org.jetbrains.plugins.groovy.annotator.GroovyFrameworkConfigNotification;
import org.jetbrains.plugins.groovy.lang.psi.GroovyFile;
import org.jetbrains.plugins.groovy.lang.psi.api.statements.blocks.GrClosableBlock;
@@ -92,7 +93,6 @@ public class GroovyDslFileIndex extends ScalarIndexExtension<String> {
public static final NotificationGroup NOTIFICATION_GROUP =
new NotificationGroup("Groovy DSL errors", NotificationDisplayType.BALLOON, true);
private final MyDataIndexer myDataIndexer = new MyDataIndexer();
private final MyInputFilter myInputFilter = new MyInputFilter();
private static final MultiMap<String, LinkedBlockingQueue<Pair<VirtualFile, GroovyDslExecutor>>> filesInProcessing =
new ConcurrentMultiMap<String, LinkedBlockingQueue<Pair<VirtualFile, GroovyDslExecutor>>>();
@@ -144,7 +144,7 @@ public class GroovyDslFileIndex extends ScalarIndexExtension<String> {
@Override
public FileBasedIndex.InputFilter getInputFilter() {
return myInputFilter;
return new MyInputFilter();
}
@Override
@@ -511,7 +511,11 @@ public class GroovyDslFileIndex extends ScalarIndexExtension<String> {
}
}
private static class MyInputFilter implements FileBasedIndex.InputFilter {
private static class MyInputFilter extends DefaultFileTypeSpecificInputFilter {
MyInputFilter() {
super(GroovyFileType.GROOVY_FILE_TYPE);
}
@Override
public boolean acceptInput(final VirtualFile file) {
return "gdsl".equals(file.getExtension());
@@ -16,6 +16,7 @@
package org.jetbrains.plugins.javaFX;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.fileTypes.StdFileTypes;
import com.intellij.openapi.project.IndexNotReadyException;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Computable;
@@ -127,7 +128,10 @@ public class JavaFxControllerClassIndex extends ScalarIndexExtension<String> {
}
}
static class MyInputFilter implements FileBasedIndex.InputFilter {
public static class MyInputFilter extends DefaultFileTypeSpecificInputFilter {
public MyInputFilter() {
super(StdFileTypes.XML);
}
@Override
public boolean acceptInput(final VirtualFile file) {
return JavaFxFileTypeFactory.isFxml(file);
@@ -1,9 +1,11 @@
package com.intellij.lang.properties.xml;
import com.intellij.ide.highlighter.XmlFileType;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.util.Comparing;
import com.intellij.openapi.util.io.StreamUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.util.Consumer;
import com.intellij.util.indexing.*;
import com.intellij.util.io.*;
import com.intellij.util.text.CharArrayUtil;
@@ -22,7 +24,7 @@ import java.util.Map;
* Date: 7/25/11
*/
public class XmlPropertiesIndex extends FileBasedIndexExtension<XmlPropertiesIndex.Key, String>
implements FileBasedIndex.InputFilter, DataIndexer<XmlPropertiesIndex.Key, String, FileContent>,
implements FileBasedIndex.FileTypeSpecificInputFilter, DataIndexer<XmlPropertiesIndex.Key, String, FileContent>,
KeyDescriptor<XmlPropertiesIndex.Key> {
public final static Key MARKER_KEY = new Key();
@@ -69,7 +71,12 @@ public class XmlPropertiesIndex extends FileBasedIndexExtension<XmlPropertiesInd
@Override
public boolean acceptInput(VirtualFile file) {
return XmlFileType.INSTANCE == file.getFileType();
return true;
}
@Override
public void registerFileTypesUsedForIndexing(@NotNull Consumer<FileType> fileTypeSink) {
fileTypeSink.consume(XmlFileType.INSTANCE);
}
@NotNull
@@ -41,7 +41,6 @@ import java.util.*;
public class FormClassIndex extends ScalarIndexExtension<String> {
@NonNls public static final ID<String, Void> NAME = ID.create("FormClassIndex");
private final EnumeratorStringDescriptor myKeyDescriptor = new EnumeratorStringDescriptor();
private final MyInputFilter myInputFilter = new MyInputFilter();
private final MyDataIndexer myDataIndexer = new MyDataIndexer();
@Override
@@ -63,7 +62,7 @@ public class FormClassIndex extends ScalarIndexExtension<String> {
@Override
public FileBasedIndex.InputFilter getInputFilter() {
return myInputFilter;
return new DefaultFileTypeSpecificInputFilter(StdFileTypes.GUI_DESIGNER_FORM);
}
@Override
@@ -94,13 +93,6 @@ public class FormClassIndex extends ScalarIndexExtension<String> {
}
}
private static class MyInputFilter implements FileBasedIndex.InputFilter {
@Override
public boolean acceptInput(final VirtualFile file) {
return file.getFileType() == StdFileTypes.GUI_DESIGNER_FORM;
}
}
public static List<PsiFile> findFormsBoundToClass(Project project, String className) {
return findFormsBoundToClass(project, className, ProjectScope.getAllScope(project));
}
@@ -17,9 +17,11 @@
package org.intellij.lang.xpath.xslt.impl;
import com.intellij.ide.highlighter.XmlFileType;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.impl.include.FileIncludeInfo;
import com.intellij.psi.impl.include.FileIncludeProvider;
import com.intellij.util.Consumer;
import com.intellij.util.indexing.FileContent;
import com.intellij.util.text.CharArrayUtil;
import com.intellij.util.xml.NanoXmlUtil;
@@ -41,6 +43,11 @@ public class XsltIncludeProvider extends FileIncludeProvider {
return file.getFileType() == XmlFileType.INSTANCE;
}
@Override
public void registerFileTypesUsedForIndexing(@NotNull Consumer<FileType> fileTypeSink) {
fileTypeSink.consume(XmlFileType.INSTANCE);
}
@NotNull
public FileIncludeInfo[] getIncludeInfos(FileContent content) {
CharSequence contentAsText = content.getContentAsText();
@@ -144,13 +144,10 @@ public class XsltSymbolIndex extends FileBasedIndexExtension<String, XsltSymbolI
@Override
public FileBasedIndex.InputFilter getInputFilter() {
return new FileBasedIndex.InputFilter() {
return new DefaultFileTypeSpecificInputFilter(StdFileTypes.XML) {
@Override
public boolean acceptInput(VirtualFile file) {
if (file.getFileSystem() instanceof JarFileSystem) {
return false; // there is lots and lots of custom XML inside zip files
}
return file.getFileType() == StdFileTypes.XML;
return !(file.getFileSystem() instanceof JarFileSystem);
}
};
}
@@ -17,7 +17,6 @@ package com.intellij.util.xml;
import com.intellij.openapi.fileTypes.StdFileTypes;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.indexing.*;
import com.intellij.util.io.EnumeratorStringDescriptor;
@@ -38,12 +37,6 @@ import java.util.Set;
*/
public class DomFileIndex extends ScalarIndexExtension<String>{
public static final ID<String,Void> NAME = ID.create("DomFileIndex");
private static final FileBasedIndex.InputFilter INPUT_FILTER = new FileBasedIndex.InputFilter() {
@Override
public boolean acceptInput(final VirtualFile file) {
return file.getFileType() == StdFileTypes.XML;
}
};
private final DataIndexer<String,Void, FileContent> myDataIndexer;
public DomFileIndex() {
@@ -98,7 +91,7 @@ public class DomFileIndex extends ScalarIndexExtension<String>{
@Override
public FileBasedIndex.InputFilter getInputFilter() {
return INPUT_FILTER;
return new DefaultFileTypeSpecificInputFilter(StdFileTypes.XML);
}
@Override
@@ -21,7 +21,6 @@ import com.intellij.lang.xhtml.XHTMLLanguage;
import com.intellij.lexer.HtmlHighlightingLexer;
import com.intellij.lexer.Lexer;
import com.intellij.lexer.XHtmlHighlightingLexer;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.fileTypes.LanguageFileType;
import com.intellij.openapi.fileTypes.StdFileTypes;
import com.intellij.openapi.vfs.LocalFileSystem;
@@ -76,18 +75,6 @@ public class Html5CustomAttributesIndex extends ScalarIndexExtension<String> {
}
};
private final FileBasedIndex.InputFilter myInputFilter = new FileBasedIndex.InputFilter() {
@Override
public boolean acceptInput(final VirtualFile file) {
if (file.getFileSystem() != LocalFileSystem.getInstance() && !(file.getFileSystem() instanceof TempFileSystem)) {
return false;
}
final FileType fileType = file.getFileType();
return fileType == StdFileTypes.HTML || fileType == StdFileTypes.XHTML;
}
};
@NotNull
@Override
public ID<String, Void> getName() {
@@ -107,7 +94,16 @@ public class Html5CustomAttributesIndex extends ScalarIndexExtension<String> {
@Override
public FileBasedIndex.InputFilter getInputFilter() {
return myInputFilter;
return new DefaultFileTypeSpecificInputFilter(StdFileTypes.HTML, StdFileTypes.XHTML) {
@Override
public boolean acceptInput(final VirtualFile file) {
if (file.getFileSystem() != LocalFileSystem.getInstance() && !(file.getFileSystem() instanceof TempFileSystem)) {
return false;
}
return true;
}
};
}
@Override
@@ -26,6 +26,7 @@ import com.intellij.openapi.roots.ProjectRootManager;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.VirtualFileFilter;
import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.util.indexing.DefaultFileTypeSpecificInputFilter;
import com.intellij.util.indexing.FileBasedIndex;
import com.intellij.util.indexing.FileBasedIndexExtension;
import com.intellij.util.io.EnumeratorStringDescriptor;
@@ -41,15 +42,6 @@ public abstract class XmlIndex<V> extends FileBasedIndexExtension<String, V> {
protected static final EnumeratorStringDescriptor KEY_DESCRIPTOR = new EnumeratorStringDescriptor();
private static final FileBasedIndex.InputFilter INPUT_FILTER = new FileBasedIndex.InputFilter() {
public boolean acceptInput(final VirtualFile file) {
FileType fileType = file.getFileType();
final String extension = file.getExtension();
return XmlFileType.INSTANCE.equals(fileType) && "xsd".equals(extension) ||
DTDFileType.INSTANCE.equals(fileType) && "dtd".equals(extension);
}
};
protected static GlobalSearchScope createFilter(final Project project) {
final GlobalSearchScope projectScope = GlobalSearchScope.allScope(project);
return new GlobalSearchScope(project) {
@@ -108,7 +100,14 @@ public abstract class XmlIndex<V> extends FileBasedIndexExtension<String, V> {
}
public FileBasedIndex.InputFilter getInputFilter() {
return INPUT_FILTER;
return new DefaultFileTypeSpecificInputFilter(XmlFileType.INSTANCE, DTDFileType.INSTANCE) {
public boolean acceptInput(final VirtualFile file) {
FileType fileType = file.getFileType();
final String extension = file.getExtension();
return XmlFileType.INSTANCE.equals(fileType) && "xsd".equals(extension) ||
DTDFileType.INSTANCE.equals(fileType) && "dtd".equals(extension);
}
};
}
public boolean dependsOnFileContent() {
@@ -17,10 +17,10 @@ package com.intellij.xml.util;
import com.intellij.ide.highlighter.XmlFileType;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.project.ProjectCoreUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.impl.include.FileIncludeInfo;
import com.intellij.psi.impl.include.FileIncludeProvider;
import com.intellij.util.Consumer;
import com.intellij.util.indexing.FileContent;
import com.intellij.util.text.CharArrayUtil;
import com.intellij.util.xml.NanoXmlUtil;
@@ -40,8 +40,12 @@ public class XIncludeProvider extends FileIncludeProvider {
@Override
public boolean acceptFile(VirtualFile file) {
final FileType fileType = file.getFileType();
return fileType == XmlFileType.INSTANCE && !ProjectCoreUtil.isProjectOrWorkspaceFile(file, fileType);
return file.getFileType() == XmlFileType.INSTANCE;
}
@Override
public void registerFileTypesUsedForIndexing(@NotNull Consumer<FileType> fileTypeSink) {
fileTypeSink.consume(XmlFileType.INSTANCE);
}
@NotNull
@@ -5,6 +5,7 @@ import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.impl.include.FileIncludeInfo;
import com.intellij.psi.impl.include.FileIncludeProvider;
import com.intellij.util.Consumer;
import com.intellij.util.indexing.FileContent;
import com.intellij.util.text.CharArrayUtil;
import com.intellij.util.xml.NanoXmlUtil;
@@ -35,6 +36,12 @@ public class RelaxIncludeProvider extends FileIncludeProvider {
return type == XmlFileType.INSTANCE || type == RncFileType.getInstance();
}
@Override
public void registerFileTypesUsedForIndexing(@NotNull Consumer<FileType> fileTypeSink) {
fileTypeSink.consume(XmlFileType.INSTANCE);
fileTypeSink.consume(RncFileType.getInstance());
}
@NotNull
@Override
public FileIncludeInfo[] getIncludeInfos(FileContent content) {
@@ -6,7 +6,6 @@ import com.intellij.navigation.ItemPresentation;
import com.intellij.navigation.NavigationItem;
import com.intellij.navigation.PsiElementNavigationItem;
import com.intellij.openapi.editor.colors.TextAttributesKey;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.fileTypes.StdFileTypes;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.JarFileSystem;
@@ -72,7 +71,7 @@ public class RelaxSymbolIndex extends ScalarIndexExtension<String> {
final HashMap<String, Void> map = new HashMap<String, Void>();
if (inputData.getFileType() == XmlFileType.INSTANCE) {
CharSequence inputDataContentAsText = inputData.getContentAsText();
if (CharArrayUtil.indexOf(inputDataContentAsText, ApplicationLoader.RNG_NAMESPACE, 0) == -1) return Collections.EMPTY_MAP;
if (CharArrayUtil.indexOf(inputDataContentAsText, ApplicationLoader.RNG_NAMESPACE, 0) == -1) return Collections.emptyMap();
NanoXmlUtil.parse(CharArrayUtil.readerFromCharSequence(inputData.getContentAsText()), new NanoXmlUtil.IXMLBuilderAdapter() {
NanoXmlUtil.IXMLBuilderAdapter attributeHandler;
int depth;
@@ -137,14 +136,10 @@ public class RelaxSymbolIndex extends ScalarIndexExtension<String> {
@Override
public FileBasedIndex.InputFilter getInputFilter() {
return new FileBasedIndex.InputFilter() {
return new DefaultFileTypeSpecificInputFilter(StdFileTypes.XML, RncFileType.getInstance()) {
@Override
public boolean acceptInput(VirtualFile file) {
if (file.getFileSystem() instanceof JarFileSystem) {
return false; // there is lots and lots of custom XML inside zip files
}
final FileType fileType = file.getFileType();
return fileType == StdFileTypes.XML || fileType == RncFileType.getInstance();
return !(file.getFileSystem() instanceof JarFileSystem);
}
};
}
@@ -243,7 +238,7 @@ public class RelaxSymbolIndex extends ScalarIndexExtension<String> {
@Override
public ItemPresentation getPresentation() {
return myPresentation != null ? this : null;
return this;
}
@Override