diff --git a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/JavaFxPsiUtil.java b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/JavaFxPsiUtil.java index 5bc2a85e4cb2..cdfc08d45cf7 100644 --- a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/JavaFxPsiUtil.java +++ b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/fxml/JavaFxPsiUtil.java @@ -768,20 +768,22 @@ public class JavaFxPsiUtil { public static Map collectFileIds(@Nullable final XmlTag currentTag) { if (currentTag == null) return Collections.emptyMap(); final PsiFile containingFile = currentTag.getContainingFile(); - if (!(containingFile instanceof XmlFile)) return Collections.emptyMap(); - final XmlTag rootTag = ((XmlFile)containingFile).getRootTag(); + final XmlAttribute currentIdAttribute = currentTag.getAttribute(FxmlConstants.FX_ID); + return collectFileIds(containingFile, currentIdAttribute != null ? currentIdAttribute.getValue() : null); + } + + @NotNull + public static Map collectFileIds(@Nullable PsiFile psiFile, @Nullable String skipFxId) { + if (!(psiFile instanceof XmlFile)) return Collections.emptyMap(); + final XmlTag rootTag = ((XmlFile)psiFile).getRootTag(); if (rootTag == null) return Collections.emptyMap(); final Map cachedIds = CachedValuesManager .getCachedValue(rootTag, () -> new CachedValueProvider.Result<>(prepareFileIds(rootTag), PsiModificationTracker.MODIFICATION_COUNT)); - final XmlAttribute currentIdAttribute = currentTag.getAttribute(FxmlConstants.FX_ID); - if (currentIdAttribute != null) { - final String currentId = currentIdAttribute.getValue(); - if (cachedIds.containsKey(currentId)) { - final Map filteredIds = new THashMap<>(cachedIds); - filteredIds.remove(currentId); - return filteredIds; - } + if (skipFxId != null && cachedIds.containsKey(skipFxId)) { + final Map filteredIds = new THashMap<>(cachedIds); + filteredIds.remove(skipFxId); + return filteredIds; } return cachedIds; }