From f2bf925e2fb6233da47d0ad4e8dd85e4bb91e7cb Mon Sep 17 00:00:00 2001 From: Yuriy Artamonov Date: Tue, 26 Mar 2024 19:22:56 +0100 Subject: [PATCH] [lsp] IDEA-347934 Initialize LanguageServiceWidget icons lazily GitOrigin-RevId: 43ea916d950541d6b4cad149d62576eed695e7fa --- .../lang/lsWidget/impl/LanguageServiceWidget.kt | 12 +++++------- .../lsWidget/impl/LanguageServiceWidgetFactory.kt | 8 +++----- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/platform/lang/lsWidget/impl/LanguageServiceWidget.kt b/platform/lang-impl/src/com/intellij/platform/lang/lsWidget/impl/LanguageServiceWidget.kt index df2d844c7763..dbfa662eb8c1 100644 --- a/platform/lang-impl/src/com/intellij/platform/lang/lsWidget/impl/LanguageServiceWidget.kt +++ b/platform/lang-impl/src/com/intellij/platform/lang/lsWidget/impl/LanguageServiceWidget.kt @@ -31,7 +31,7 @@ internal class LanguageServiceWidget(project: Project, scope: CoroutineScope) : */ private var cachedWidgetItems: List = emptyList() - override fun ID(): String = LanguageServiceWidgetFactory.ID + override fun ID(): String = LANGUAGE_SERVICES_WIDGET_ID override fun createInstance(project: Project): StatusBarWidget = LanguageServiceWidget(project, scope) @@ -55,7 +55,7 @@ internal class LanguageServiceWidget(project: Project, scope: CoroutineScope) : val isError = fileSpecificItems.any { it.isError } // or maybe `allItems.any { it.isError }`? return WidgetState(tooltip, shortenedText, true).apply { - icon = if (isError) errorIcon else normalIcon + icon = if (isError) Icons.errorIcon else Icons.normalIcon } } @@ -91,7 +91,6 @@ internal class LanguageServiceWidget(project: Project, scope: CoroutineScope) : return group } - private object NoServices : AnAction(LangBundle.messagePointer("language.services.widget.no.services")), DumbAware { override fun getActionUpdateThread(): ActionUpdateThread = ActionUpdateThread.BGT @@ -102,9 +101,8 @@ internal class LanguageServiceWidget(project: Project, scope: CoroutineScope) : override fun actionPerformed(e: AnActionEvent) {} } - - private companion object { - private val normalIcon: Icon = AllIcons.Json.Object - private val errorIcon: Icon = LayeredIcon.layeredIcon { arrayOf(AllIcons.Json.Object, AllIcons.Nodes.ErrorMark) } + private object Icons { + val normalIcon: Icon = AllIcons.Json.Object + val errorIcon: Icon = LayeredIcon.layeredIcon(arrayOf(AllIcons.Json.Object, AllIcons.Nodes.ErrorMark)) } } diff --git a/platform/lang-impl/src/com/intellij/platform/lang/lsWidget/impl/LanguageServiceWidgetFactory.kt b/platform/lang-impl/src/com/intellij/platform/lang/lsWidget/impl/LanguageServiceWidgetFactory.kt index 5134cf4719e8..5438d5a75465 100644 --- a/platform/lang-impl/src/com/intellij/platform/lang/lsWidget/impl/LanguageServiceWidgetFactory.kt +++ b/platform/lang-impl/src/com/intellij/platform/lang/lsWidget/impl/LanguageServiceWidgetFactory.kt @@ -7,12 +7,10 @@ import com.intellij.openapi.wm.StatusBarWidget import com.intellij.openapi.wm.impl.status.widget.StatusBarEditorBasedWidgetFactory import kotlinx.coroutines.CoroutineScope -class LanguageServiceWidgetFactory : StatusBarEditorBasedWidgetFactory() { - companion object { - const val ID = "LanguageServiceStatusBarWidget" - } +internal const val LANGUAGE_SERVICES_WIDGET_ID = "LanguageServiceStatusBarWidget" - override fun getId(): String = ID +internal class LanguageServiceWidgetFactory : StatusBarEditorBasedWidgetFactory() { + override fun getId(): String = LANGUAGE_SERVICES_WIDGET_ID override fun getDisplayName(): String = LangBundle.message("language.services.widget")