diff --git a/plugins/devkit/resources/META-INF/plugin.xml b/plugins/devkit/resources/META-INF/plugin.xml index 042146018ca5..eb63f1b2fc7f 100644 --- a/plugins/devkit/resources/META-INF/plugin.xml +++ b/plugins/devkit/resources/META-INF/plugin.xml @@ -51,6 +51,7 @@ + diff --git a/plugins/devkit/src/DevKitEditorTabTitleProvider.kt b/plugins/devkit/src/DevKitEditorTabTitleProvider.kt new file mode 100644 index 000000000000..1ace1b9dec6d --- /dev/null +++ b/plugins/devkit/src/DevKitEditorTabTitleProvider.kt @@ -0,0 +1,25 @@ +// Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +package org.jetbrains.idea.devkit + +import com.intellij.openapi.fileEditor.impl.EditorTabTitleProvider +import com.intellij.openapi.project.Project +import com.intellij.openapi.vfs.VirtualFile +import com.intellij.psi.PsiManager +import com.intellij.psi.xml.XmlFile +import org.jetbrains.idea.devkit.module.PluginDescriptorConstants +import org.jetbrains.idea.devkit.util.DescriptorUtil +import org.jetbrains.idea.devkit.util.PsiUtil + +class DevKitEditorTabTitleProvider : EditorTabTitleProvider { + + override fun getEditorTabTitle(project: Project, file: VirtualFile): String? { + if (PluginDescriptorConstants.META_DATA.fileName != file.name) return null + + if (!PsiUtil.isPluginProject(project)) return null + + val xmlFile = PsiManager.getInstance(project).findFile(file) as? XmlFile ?: return null + + val ideaPlugin = DescriptorUtil.getIdeaPlugin(xmlFile) ?: return null + return ideaPlugin.rootElement.pluginId + } +} \ No newline at end of file