summaryrefslogtreecommitdiff
path: root/src/main/kotlin/me/kyren223/harpoonforjb/HarpoonToggleQuickMenuAction.kt
blob: 66e58b045b85e83685eb24fc6aee816b2ffc26f0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package me.kyren223.harpoonforjb

import com.intellij.openapi.actionSystem.AnAction
import com.intellij.openapi.actionSystem.AnActionEvent
import com.maddyhome.idea.vim.api.injector
import com.maddyhome.idea.vim.command.MappingMode
import com.maddyhome.idea.vim.key.MappingOwner

class HarpoonToggleQuickMenuAction : AnAction() {
    override fun actionPerformed(e: AnActionEvent) {
        if (!remapped) remap()
        if (e.project != null) {
            HarpoonState.toggleQuickMenu(e.project!!)
        }
    }

    private fun remap() {
        if (!AppSettingsState.instance.harpoonEnterToSelect) return
        val keys = injector.parser.parseKeys(":action HarpoonQuickMenuSelect<cr>")
        val keyGroup = injector.keyGroup
        keyGroup.putKeyMapping(MappingMode.NVO,
                injector.parser.parseKeys("<cr>"),
                MappingOwner.Plugin.get("HarpoonForJB"), keys, false
        )
        remapped = true
    }

    companion object {
        var remapped = false
    }
}