IDEA-181935 Devkit: show ID/Name of plugin for plugin.xml files in editor tab

This commit is contained in:
Yann Cébron
2017-11-09 17:48:26 +01:00
parent d233c945da
commit ee496fcdc9
2 changed files with 26 additions and 0 deletions
@@ -51,6 +51,7 @@
<fileBasedIndex implementation="org.jetbrains.idea.devkit.dom.index.IdeaPluginRegistrationIndex"/>
<editorTabTitleProvider implementation="org.jetbrains.idea.devkit.DevKitEditorTabTitleProvider"/>
<useScopeEnlarger implementation="org.jetbrains.idea.devkit.DevKitUseScopeEnlarger"/>
<properties.implicitPropertyUsageProvider implementation="org.jetbrains.idea.devkit.inspections.RegistryImplicitPropertyUsageProvider"/>
@@ -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
}
}