From 764caf57fa4018fe8de1ae098d7690932a2d06a4 Mon Sep 17 00:00:00 2001 From: Richardas Kuchinskas Date: Tue, 14 Nov 2023 18:12:16 +0300 Subject: [PATCH 1/2] replaced InvokeLater with DubService --- src/main/kotlin/com/vk/admstorm/AdmStormStartupActivity.kt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/com/vk/admstorm/AdmStormStartupActivity.kt b/src/main/kotlin/com/vk/admstorm/AdmStormStartupActivity.kt index fb4393ed..c25fb647 100644 --- a/src/main/kotlin/com/vk/admstorm/AdmStormStartupActivity.kt +++ b/src/main/kotlin/com/vk/admstorm/AdmStormStartupActivity.kt @@ -3,11 +3,13 @@ package com.vk.admstorm import com.intellij.ide.BrowserUtil import com.intellij.ide.plugins.InstalledPluginsState import com.intellij.openapi.application.invokeLater +import com.intellij.openapi.components.service import com.intellij.openapi.diagnostic.Logger import com.intellij.openapi.diagnostic.logger import com.intellij.openapi.fileTypes.ex.FileTypeChooser import com.intellij.openapi.fileTypes.impl.AbstractFileType import com.intellij.openapi.options.ShowSettingsUtil +import com.intellij.openapi.project.DumbService import com.intellij.openapi.project.Project import com.intellij.openapi.startup.ProjectActivity import com.intellij.openapi.util.registry.Registry @@ -29,8 +31,7 @@ class AdmStormStartupActivity : ProjectActivity { override suspend fun execute(project: Project) { setupLogger(project) - // TODO: move to using DumbService? - invokeLater { + project.service().runWhenSmart { initPlugin(project) } } @@ -41,6 +42,8 @@ class AdmStormStartupActivity : ProjectActivity { return } + LOG.info("Plugin has been initialized") + measureTime(LOG, "patch cpp highlight") { val cppType = FileTypeChooser.getKnownFileTypeOrAssociate(".c") as AbstractFileType CppTypeHighlightPatcher.patch(cppType) From cc760c83ddd565cfe79762fbfaf00604a1983c24 Mon Sep 17 00:00:00 2001 From: Richardas Kuchinskas Date: Wed, 15 Nov 2023 17:58:18 +0300 Subject: [PATCH 2/2] added Dumb expression in "step machine" --- src/main/kotlin/com/vk/admstorm/AdmStartupService.kt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/com/vk/admstorm/AdmStartupService.kt b/src/main/kotlin/com/vk/admstorm/AdmStartupService.kt index cd232eee..65c20bd0 100644 --- a/src/main/kotlin/com/vk/admstorm/AdmStartupService.kt +++ b/src/main/kotlin/com/vk/admstorm/AdmStartupService.kt @@ -10,6 +10,7 @@ import com.intellij.openapi.diagnostic.logger import com.intellij.openapi.editor.EditorFactory import com.intellij.openapi.editor.ex.EditorEventMulticasterEx import com.intellij.openapi.progress.ProgressManager +import com.intellij.openapi.project.DumbService import com.intellij.openapi.project.Project import com.intellij.openapi.wm.IdeFrame import com.intellij.serviceContainer.AlreadyDisposedException @@ -102,8 +103,10 @@ class AdmStartupService(private var project: Project) { } step(0.9) { - checkSyncSilently() - setListenerForEditorsFocus() + project.service().runWhenSmart { + checkSyncSilently() + setListenerForEditorsFocus() + } } step(1.0) {