summaryrefslogtreecommitdiff
path: root/src/main/kotlin/me/kyren223/trident/actions/SelectAction.kt
diff options
context:
space:
mode:
authorKyren223 <ulmliad223@gmail.com>2024-05-09 00:41:36 +0300
committerKyren223 <ulmliad223@gmail.com>2024-05-09 00:41:36 +0300
commit1e30fa7ded9939fa45a45f82f84c1e8cd95d68aa (patch)
treef2b60d48330937603a8b068dbb5a983be33d8fb8 /src/main/kotlin/me/kyren223/trident/actions/SelectAction.kt
parent5da72c7ec98edfab7fbebc335e1a9fba116988a5 (diff)
Refactored a lot of the code and added a bunch of features and settings. Not finished yet but committing, so I can push to GitHub
Diffstat (limited to 'src/main/kotlin/me/kyren223/trident/actions/SelectAction.kt')
-rw-r--r--src/main/kotlin/me/kyren223/trident/actions/SelectAction.kt44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/main/kotlin/me/kyren223/trident/actions/SelectAction.kt b/src/main/kotlin/me/kyren223/trident/actions/SelectAction.kt
new file mode 100644
index 0000000..37617c4
--- /dev/null
+++ b/src/main/kotlin/me/kyren223/trident/actions/SelectAction.kt
@@ -0,0 +1,44 @@
+package me.kyren223.trident.actions
+
+import com.intellij.openapi.actionSystem.AnAction
+import com.intellij.openapi.actionSystem.AnActionEvent
+import com.intellij.openapi.actionSystem.PlatformDataKeys
+import com.intellij.openapi.fileEditor.FileEditorManager
+import me.kyren223.trident.utils.TridentList
+
+class SelectAction : AnAction() {
+ override fun actionPerformed(e: AnActionEvent) {
+ val project = e.project ?: return
+ var index = when (val actionId = e.actionManager.getId(this)) {
+ NEXT -> {
+ val file = e.getData(PlatformDataKeys.VIRTUAL_FILE) ?: return
+ val current = TridentList.getIndexOfFile(project, file) ?: return
+ current + 1
+ }
+
+ PREV -> {
+ val file = e.getData(PlatformDataKeys.VIRTUAL_FILE) ?: return
+ val current = TridentList.getIndexOfFile(project, file) ?: return
+ current - 1
+ }
+
+ else -> {
+ getIndex(actionId!!)
+ }
+ }
+
+ val file = TridentList.select(project, index) ?: return
+ FileEditorManager.getInstance(project).openFile(file, true)
+ }
+
+ private fun getIndex(actionId: String): Int {
+ return actionId.substring(SELECT.length).toInt() - 1
+ }
+
+ companion object {
+ const val NEXT = "TridentSelectNext"
+ const val PREV = "TridentSelectPrev"
+ const val SELECT = "TridentSelect"
+ }
+}
+