summaryrefslogtreecommitdiff
path: root/src/main/kotlin
diff options
context:
space:
mode:
authorKyren223 <ulmliad223@gmail.com>2024-02-13 23:31:11 +0200
committerKyren223 <ulmliad223@gmail.com>2024-02-13 23:31:11 +0200
commit98ed2e0053aa1300dcd463676265778fb872fc98 (patch)
tree1bef48c2922c67ba5338c7f989cf36cab35dbaa0 /src/main/kotlin
parent3ab5bc95eb1e12837b804024cdad7ca1dcb6f1de (diff)
Ok/Cancel buttons are now hidden
Added selected action, Selecting now works on enter or a custom-binded action
Diffstat (limited to 'src/main/kotlin')
-rw-r--r--src/main/kotlin/me/kyren223/harpoonforjb/HarpoonQuickMenu.kt17
-rw-r--r--src/main/kotlin/me/kyren223/harpoonforjb/HarpoonState.kt15
2 files changed, 27 insertions, 5 deletions
diff --git a/src/main/kotlin/me/kyren223/harpoonforjb/HarpoonQuickMenu.kt b/src/main/kotlin/me/kyren223/harpoonforjb/HarpoonQuickMenu.kt
index 9740470..baf027b 100644
--- a/src/main/kotlin/me/kyren223/harpoonforjb/HarpoonQuickMenu.kt
+++ b/src/main/kotlin/me/kyren223/harpoonforjb/HarpoonQuickMenu.kt
@@ -1,6 +1,10 @@
+@file:Suppress("SameParameterValue")
+
package me.kyren223.harpoonforjb
+import com.intellij.ide.plugins.PluginManagerCore
import com.intellij.openapi.editor.LogicalPosition
+import com.intellij.openapi.extensions.PluginId
import com.intellij.openapi.ui.DialogWrapper
import com.intellij.ui.EditorTextField
import com.maddyhome.idea.vim.KeyHandler
@@ -41,7 +45,7 @@ class HarpoonQuickMenu(private val content: String) : DialogWrapper(true) {
simulateKeyPress("<ESC>", editor, context)
}
- override fun focusLost(e: FocusEvent?) { /* Do nothing */}
+ override fun focusLost(e: FocusEvent?) { /* Do nothing */ }
})
return editorTextField
@@ -54,4 +58,15 @@ class HarpoonQuickMenu(private val content: String) : DialogWrapper(true) {
override fun getPreferredFocusedComponent(): JComponent? {
return this.editorTextField
}
+
+ fun select() {
+ if (this.editorTextField.editor == null) return
+ HarpoonState.quickMenuContent = this.editorTextField.text
+ HarpoonState.quickMenuSelectedIndex = this.editorTextField.editor!!.caretModel.logicalPosition.line
+ doOKAction()
+ }
+
+ override fun createSouthPanel(): JComponent? {
+ return null
+ }
}
diff --git a/src/main/kotlin/me/kyren223/harpoonforjb/HarpoonState.kt b/src/main/kotlin/me/kyren223/harpoonforjb/HarpoonState.kt
index 73c82b2..36f3b0c 100644
--- a/src/main/kotlin/me/kyren223/harpoonforjb/HarpoonState.kt
+++ b/src/main/kotlin/me/kyren223/harpoonforjb/HarpoonState.kt
@@ -9,8 +9,9 @@ import com.intellij.openapi.vfs.VirtualFile
object HarpoonState {
private var projectFiles: MutableMap<String, MutableList<VirtualFile>> = mutableMapOf()
private const val HARPOON_LIST_KEY = "HarpoonList"
- private var quickMenuSelectedIndex: Int? = null
- private var quickMenuContent: String? = ""
+ private var quickMenu: HarpoonQuickMenu? = null
+ var quickMenuSelectedIndex: Int? = null
+ var quickMenuContent: String? = ""
fun setFile(project: Project, index: Int, file: VirtualFile) {
if (index < 0) return
@@ -85,8 +86,8 @@ object HarpoonState {
.replace(project.basePath!!, "...")
.trim()
- val quickMenu = HarpoonQuickMenu(content)
- val result = quickMenu.showAndGet()
+ quickMenu = HarpoonQuickMenu(content)
+ val result = quickMenu!!.showAndGet()
if (content != quickMenuContent) {
// Update the content
@@ -94,7 +95,13 @@ object HarpoonState {
}
if (!result || quickMenuSelectedIndex == null) return
+ println("Selected index: $quickMenuSelectedIndex")
val file = selectFile(project, quickMenuSelectedIndex!!) ?: return
FileEditorManager.getInstance(project).openFile(file, true)
}
+
+ fun quickMenuSelect() {
+ if (quickMenu == null || !quickMenu!!.isShowing) return
+ quickMenu!!.select()
+ }
} \ No newline at end of file