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) { 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)