diff options
| author | Kyren223 <ulmliad223@gmail.com> | 2024-02-22 22:34:10 +0200 |
|---|---|---|
| committer | Kyren223 <ulmliad223@gmail.com> | 2024-02-22 22:34:10 +0200 |
| commit | 02b1533ff4002f1015b9c26cf69256d821ddb6b1 (patch) | |
| tree | a53ba1aed8abd703eb6c47164f1b5a553d3b09c0 /src/main/kotlin/me/kyren223/trident/TridentSelectAction.kt | |
| parent | 883fd7f58b2ef0254cb3c3fa79cc24f6dcdf9efd (diff) | |
Rebranded to "Trident"
Diffstat (limited to 'src/main/kotlin/me/kyren223/trident/TridentSelectAction.kt')
| -rw-r--r-- | src/main/kotlin/me/kyren223/trident/TridentSelectAction.kt | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/main/kotlin/me/kyren223/trident/TridentSelectAction.kt b/src/main/kotlin/me/kyren223/trident/TridentSelectAction.kt new file mode 100644 index 0000000..3122650 --- /dev/null +++ b/src/main/kotlin/me/kyren223/trident/TridentSelectAction.kt @@ -0,0 +1,43 @@ +package me.kyren223.trident + +import com.intellij.openapi.actionSystem.AnAction +import com.intellij.openapi.actionSystem.AnActionEvent +import com.intellij.openapi.actionSystem.PlatformDataKeys +import com.intellij.openapi.fileEditor.FileEditorManager + +class TridentSelectAction : AnAction() { + override fun actionPerformed(e: AnActionEvent) { + val project = e.project ?: return + var index = when (val actionId = e.actionManager.getId(this)) { + NEXT -> { + val current = TridentState.getIndexOfFile(project, e.getData(PlatformDataKeys.VIRTUAL_FILE)) + if (current == -1) return + current + 1 + } + PREV -> { + val current = TridentState.getIndexOfFile(project, e.getData(PlatformDataKeys.VIRTUAL_FILE)) + if (current == -1) return + current - 1 + } + else -> { + getIndex(actionId) + } + } + + val count = TridentState.getFileCount(project) + index = ((index % count) + count) % count + val file = TridentState.selectFile(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" + } +} + |
