1
0
mirror of https://github.com/chylex/IntelliJ-IdeaVim.git synced 2025-03-08 06:32:52 +01:00

Migrate NerdTree to new startup activity

This commit is contained in:
Alex Plate 2023-03-03 13:16:49 +02:00
parent e788ea6d7f
commit 6db4874acd
No known key found for this signature in database
GPG Key ID: 0B97153C8FFEC09F
2 changed files with 5 additions and 9 deletions
src/main
java/com/maddyhome/idea/vim/extension/nerdtree
resources/META-INF/includes

View File

@ -21,7 +21,7 @@ import com.intellij.openapi.fileEditor.ex.FileEditorManagerEx
import com.intellij.openapi.project.DumbAwareAction
import com.intellij.openapi.project.Project
import com.intellij.openapi.project.ProjectManager
import com.intellij.openapi.project.ProjectManagerListener
import com.intellij.openapi.startup.ProjectActivity
import com.intellij.openapi.wm.ToolWindow
import com.intellij.openapi.wm.ToolWindowId
import com.intellij.openapi.wm.ex.ToolWindowManagerEx
@ -181,8 +181,9 @@ class NerdTree : VimExtension {
}
}
class NerdProjectListener : ProjectManagerListener {
override fun projectOpened(project: Project) {
// TODO I'm not sure is this activity runs at all? Should we use [RunOnceUtil] instead?
class NerdStartupActivity : ProjectActivity {
override suspend fun execute(project: Project) {
synchronized(monitor) {
if (!commandsRegistered) return
installDispatcher(project)
@ -219,8 +220,6 @@ class NerdTree : VimExtension {
}
override fun update(e: AnActionEvent) {
val project = e.project ?: return
// Special processing of esc.
if ((e.inputEvent as? KeyEvent)?.keyCode == ESCAPE_KEY_CODE) {
e.presentation.isEnabled = waitForSearch

View File

@ -129,13 +129,10 @@
<!-- IdeaVim extensions-->
<extensions defaultExtensionNs="com.intellij">
<projectService serviceImplementation="com.maddyhome.idea.vim.extension.nerdtree.NerdTree$NerdDispatcher"/>
<postStartupActivity implementation="com.maddyhome.idea.vim.extension.nerdtree.NerdTree$NerdStartupActivity"/>
</extensions>
<projectListeners>
<listener class="com.maddyhome.idea.vim.extension.nerdtree.NerdTree$ProjectViewListener"
topic="com.intellij.openapi.wm.ex.ToolWindowManagerListener"/>
</projectListeners>
<applicationListeners>
<listener class="com.maddyhome.idea.vim.extension.nerdtree.NerdTree$NerdProjectListener"
topic="com.intellij.openapi.project.ProjectManagerListener"/>
</applicationListeners>
</idea-plugin>