FIR IDE: add fir icon to status bar to distinguish fir/fe10 ide

This commit is contained in:
Ilya Kirillov
2021-06-11 16:23:54 +02:00
committed by teamcityserver
parent 8977e7766b
commit af7766b3ac
4 changed files with 61 additions and 0 deletions
@@ -0,0 +1,48 @@
/*
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.idea.fir
import com.intellij.icons.AllIcons
import com.intellij.ide.lightEdit.LightEdit
import com.intellij.openapi.project.Project
import com.intellij.openapi.ui.Messages
import com.intellij.openapi.util.Disposer
import com.intellij.openapi.wm.StatusBar
import com.intellij.openapi.wm.StatusBarWidget
import com.intellij.openapi.wm.StatusBarWidgetFactory
import com.intellij.util.Consumer
import org.jetbrains.kotlin.idea.KotlinIconsIndependent
import java.awt.event.MouseEvent
import javax.swing.Icon
internal class FirStatusBarWidgetFactory: StatusBarWidgetFactory {
override fun getId(): String = ID
override fun getDisplayName(): String = "FIR IDE"
override fun isAvailable(project: Project): Boolean = true
override fun createWidget(project: Project): StatusBarWidget = Widget()
override fun disposeWidget(widget: StatusBarWidget) = Disposer.dispose(widget)
override fun canBeEnabledOn(statusBar: StatusBar): Boolean = true
companion object {
const val ID = "kotlin.fir.ide"
}
}
private class Widget : StatusBarWidget, StatusBarWidget.IconPresentation {
override fun getPresentation(): StatusBarWidget.WidgetPresentation = this
override fun ID(): String = FirStatusBarWidgetFactory.ID
override fun getTooltipText(): String = "FIR IDE"
override fun getIcon(): Icon = KotlinIconsIndependent.FIR
override fun dispose() {}
override fun install(statusBar: StatusBar) {}
override fun getClickConsumer(): Consumer<MouseEvent>? = null
}
@@ -35,6 +35,7 @@ public interface KotlinIconsIndependent {
Icon ACTUAL = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/actual.svg");
Icon EXPECT = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/expect.svg");
Icon FIR = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/fir.svg");
Icon LAUNCH = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/kotlin_launch_configuration.svg");
Icon LOAD_SCRIPT_CONFIGURATION = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/loadScriptConfiguration.svg");
+1
View File
@@ -115,6 +115,7 @@ The Kotlin FIR plugin provides language support in IntelliJ IDEA and Android Stu
<extensions defaultExtensionNs="com.intellij">
<!-- fir-specific -->
<statusBarWidgetFactory implementation="org.jetbrains.kotlin.idea.fir.FirStatusBarWidgetFactory"/>
<projectService serviceInterface="org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSessionProvider"
serviceImplementation="org.jetbrains.kotlin.idea.frontend.api.fir.KtFirAnalysisSessionProvider"/>
<applicationService serviceInterface="org.jetbrains.kotlin.idea.references.KotlinReferenceProviderContributor"
@@ -0,0 +1,11 @@
<svg width="16" height="16" xmlns="http://www.w3.org/2000/svg">
<g>
<title>Layer 1</title>
<path id="svg_2" d="m1.85687,6.43906l6.5,-6.8125l6.5,6.8125l-13,0z" fill="#007f00"/>
<rect id="svg_9" height="3.6875" width="3.125" y="13" x="6.375" fill="#7f3f00"/>
<rect id="svg_10" height="0" width="0.0625" y="15.1875" x="27.8125" fill="#7f3f00"/>
<path id="svg_12" d="m1.60687,10.50156l6.5,-6.8125l6.5,6.8125l-13,0z" fill="#007f00"/>
<path id="svg_13" d="m1.60687,14.50156l6.5,-6.8125l6.5,6.8125l-13,0z" fill="#007f00"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 542 B