diff options
| author | Kyren223 <ulmliad223@gmail.com> | 2024-02-13 22:22:12 +0200 |
|---|---|---|
| committer | Kyren223 <ulmliad223@gmail.com> | 2024-02-13 22:22:12 +0200 |
| commit | 3ab5bc95eb1e12837b804024cdad7ca1dcb6f1de (patch) | |
| tree | 4e5566213ed3db17a7506803d5f2f83d2b65d4d2 /src/main/kotlin/me/kyren223/harpoonforjb/HarpoonState.kt | |
| parent | 4f6266ddefa3a621d1208cc3ff538bf30319aecc (diff) | |
Implemented HarpoonQuickMenu, auto fuces, starts in normal mode, able to view current harpoon list, no functionality yet for navigating to a selected file or modifying the harpoon list
Diffstat (limited to 'src/main/kotlin/me/kyren223/harpoonforjb/HarpoonState.kt')
| -rw-r--r-- | src/main/kotlin/me/kyren223/harpoonforjb/HarpoonState.kt | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/main/kotlin/me/kyren223/harpoonforjb/HarpoonState.kt b/src/main/kotlin/me/kyren223/harpoonforjb/HarpoonState.kt index fcb20a5..73c82b2 100644 --- a/src/main/kotlin/me/kyren223/harpoonforjb/HarpoonState.kt +++ b/src/main/kotlin/me/kyren223/harpoonforjb/HarpoonState.kt @@ -1,6 +1,7 @@ package me.kyren223.harpoonforjb import com.intellij.ide.util.PropertiesComponent +import com.intellij.openapi.fileEditor.FileEditorManager import com.intellij.openapi.project.Project import com.intellij.openapi.vfs.LocalFileSystem import com.intellij.openapi.vfs.VirtualFile @@ -8,6 +9,8 @@ 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? = "" fun setFile(project: Project, index: Int, file: VirtualFile) { if (index < 0) return @@ -74,4 +77,24 @@ object HarpoonState { loadProject(project) return projectFiles[project.name]!!.size } + + fun toggleQuickMenu(project: Project) { + loadProject(project) + val content = projectFiles[project.name]!! + .joinToString("\n") { it.path } + .replace(project.basePath!!, "...") + .trim() + + val quickMenu = HarpoonQuickMenu(content) + val result = quickMenu.showAndGet() + + if (content != quickMenuContent) { + // Update the content + // TODO: Update the content + } + + if (!result || quickMenuSelectedIndex == null) return + val file = selectFile(project, quickMenuSelectedIndex!!) ?: return + FileEditorManager.getInstance(project).openFile(file, true) + } }
\ No newline at end of file |
