void (PsiReferenceRegistrar registrar) { final PsiReferenceProvider bundleReferenceProvider = new ResourceBundlePsiReferenceProvider(); final XmlTagPattern.Capture resourceBundleTagPattern = xmlTag().withLocalName("resource-bundle"). withParent(DomPatterns.tagWithDom(IdeaPlugin.TAG_NAME, IdeaPlugin.class)); registrar.registerReferenceProvider(resourceBundleTagPattern, bundleReferenceProvider); final XmlAttributeValuePattern actionsResourceBundlePattern = xmlAttributeValue("resource-bundle") .withSuperParent(2, DomPatterns.tagWithDom("actions", Actions.class)); registrar.registerReferenceProvider(actionsResourceBundlePattern, bundleReferenceProvider); registrar.registerReferenceProvider(extensionAttributePattern(new String[]{"bundle", "groupBundle"}, Holder.CONFIGURABLE_EP, Holder.INSPECTION_EP, Holder.GROUP_CONFIGURABLE_EP, Holder.NOTIFICATION_GROUP_EP, Holder.SPRING_TOOL_WINDOW_CONTENT, Holder.ADVANCED_SETTINGS_EP, Holder.DECLARATIVE_INLAY_PROVIDER_EP), bundleReferenceProvider); registrar.registerReferenceProvider(nestedExtensionAttributePattern(new String[]{"bundle", "groupBundle"}, Holder.CONFIGURABLE_EP), bundleReferenceProvider); registrar.registerReferenceProvider(nestedTagExtensionAttributePattern("option", new String[]{"bundle"}, Holder.DECLARATIVE_INLAY_PROVIDER_EP), bundleReferenceProvider); registrar.registerReferenceProvider(extensionAttributePattern(new String[]{"nameBundle"}, Holder.SCHEME_CONVERTER_EP), bundleReferenceProvider); registrar.registerReferenceProvider(extensionAttributePattern(new String[]{"resourceBundle"}, Holder.TYPE_NAME_EP, Holder.ICON_DESCRIPTION_BUNDLE_EP), bundleReferenceProvider); final XmlTagPattern.Capture intentionActionBundleTagPattern = xmlTag().withLocalName(INTENTION_ACTION_BUNDLE_TAG). withParent(DomPatterns.tagWithDom(INTENTION_ACTION_TAG, Extension.class)); registrar.registerReferenceProvider(intentionActionBundleTagPattern, bundleReferenceProvider); }