diff --git a/java/idea-ui/src/com/intellij/facet/impl/autodetecting/FacetDetectorRegistryEx.java b/java/idea-ui/src/com/intellij/facet/impl/autodetecting/FacetDetectorRegistryEx.java index 94f97b1f8b20..ac9ebccb8372 100644 --- a/java/idea-ui/src/com/intellij/facet/impl/autodetecting/FacetDetectorRegistryEx.java +++ b/java/idea-ui/src/com/intellij/facet/impl/autodetecting/FacetDetectorRegistryEx.java @@ -100,14 +100,11 @@ public class FacetDetectorRegistryEx implements Fa VirtualFilePattern wizardPattern = fileNamePattern.xmlWithRootTag(StandardPatterns.string().equalTo(rootTag)); if (underlyingFacetSelector != null) { - registerSubFacetDetectorForWizard(StdFileTypes.XML, wizardPattern, detector, underlyingFacetSelector); + registerUniversalSubFacetDetector(StdFileTypes.XML, wizardPattern, detector, underlyingFacetSelector); } else { - registerDetectorForWizard(StdFileTypes.XML, wizardPattern, detector); + registerUniversalDetector(StdFileTypes.XML, wizardPattern, detector); } - - registerOnTheFlySubFacetDetector(StdFileTypes.XML, fileNamePattern, XmlPatterns.xmlFile().withRootTag(XmlPatterns.xmlTag().withName(rootTag)), - convertDetector(detector), underlyingFacetSelector); } public void registerDetectorForWizard(@NotNull final FileType fileType, @NotNull final VirtualFileFilter virtualFileFilter, @NotNull final FacetDetector facetDetector) { diff --git a/java/idea-ui/src/com/intellij/facet/impl/autodetecting/FacetDetectorWrapper.java b/java/idea-ui/src/com/intellij/facet/impl/autodetecting/FacetDetectorWrapper.java index 51288875444f..b52ae2b67203 100644 --- a/java/idea-ui/src/com/intellij/facet/impl/autodetecting/FacetDetectorWrapper.java +++ b/java/idea-ui/src/com/intellij/facet/impl/autodetecting/FacetDetectorWrapper.java @@ -67,6 +67,8 @@ public abstract class FacetDetectorWrapper detectFacet(@NotNull final Module module, VirtualFile virtualFile, S source) { + if (!myFacetType.isSuitableModuleType(module.getModuleType())) return null; + String url = virtualFile.getUrl(); if (!myAutodetectionFilter.isAutodetectionEnabled(module, myFacetType, url)) { LOG.debug("Autodetection disabled for " + myFacetType.getPresentableName() + " facets in module " + module.getName()); diff --git a/platform/lang-api/src/com/intellij/facet/autodetecting/FacetDetectorRegistry.java b/platform/lang-api/src/com/intellij/facet/autodetecting/FacetDetectorRegistry.java index f947506e7770..bd52674a14ec 100644 --- a/platform/lang-api/src/com/intellij/facet/autodetecting/FacetDetectorRegistry.java +++ b/platform/lang-api/src/com/intellij/facet/autodetecting/FacetDetectorRegistry.java @@ -47,10 +47,17 @@ public interface FacetDetectorRegistry { * @param virtualFileFilter preliminary filter for facet descriptor file * @param psiFileFilter filter for facet descriptors * @param detector detector + * + * @deprecated do not use facet detectors based on PsiFile, because it may slow down facet detection process. + * Use {@link #registerUniversalDetector} instead */ void registerOnTheFlyDetector(@NotNull FileType fileType, @NotNull VirtualFileFilter virtualFileFilter, @NotNull Condition psiFileFilter, @NotNull FacetDetector detector); + /** + * @deprecated do not use facet detectors based on PsiFile, because it may slow down facet detection process. + * Use {@link #registerUniversalDetector} instead + */ void registerOnTheFlyDetector(@NotNull FileType fileType, @NotNull VirtualFilePattern virtualFilePattern, @NotNull ElementPattern psiFilePattern, @NotNull FacetDetector facetDetector); @@ -61,6 +68,9 @@ public interface FacetDetectorRegistry { * @param psiFilePattern filter for facet descriptors * @param facetDetector detector * @param selector {@link UnderlyingFacetSelector} instance which will be used to select a parent facet for a detected facet + * + * @deprecated do not use facet detectors based on PsiFile, because it may slow down facet detection process. + * Use {@link #registerUniversalSubFacetDetector} instead */ void registerOnTheFlySubFacetDetector(@NotNull FileType fileType, @NotNull VirtualFilePattern virtualFilePattern,