summaryrefslogtreecommitdiff
path: root/src/main/kotlin/me/kyren223/trident/ui/TridentMappingsMenu.kt
diff options
context:
space:
mode:
authorKyren223 <ulmliad223@gmail.com>2024-08-23 00:31:20 +0300
committerKyren223 <ulmliad223@gmail.com>2024-08-23 00:32:15 +0300
commit7451f83d6685073d10df9bae5c957fdb55dcdc53 (patch)
treedb9a10dcb117263aebcf03b74b5ad68d466d5287 /src/main/kotlin/me/kyren223/trident/ui/TridentMappingsMenu.kt
parent43346334c56e47e619d40108a07dd8dc651b11fd (diff)
fix: issues with IdeaVim version 2.16.0, everything should work now
Diffstat (limited to 'src/main/kotlin/me/kyren223/trident/ui/TridentMappingsMenu.kt')
-rw-r--r--src/main/kotlin/me/kyren223/trident/ui/TridentMappingsMenu.kt171
1 files changed, 85 insertions, 86 deletions
diff --git a/src/main/kotlin/me/kyren223/trident/ui/TridentMappingsMenu.kt b/src/main/kotlin/me/kyren223/trident/ui/TridentMappingsMenu.kt
index 79f1df8..062c618 100644
--- a/src/main/kotlin/me/kyren223/trident/ui/TridentMappingsMenu.kt
+++ b/src/main/kotlin/me/kyren223/trident/ui/TridentMappingsMenu.kt
@@ -1,86 +1,85 @@
-package me.kyren223.trident.ui
-
-import com.intellij.openapi.editor.EditorSettings
-import com.intellij.openapi.editor.LogicalPosition
-import com.intellij.openapi.project.Project
-import com.intellij.openapi.ui.DialogWrapper
-import com.intellij.ui.EditorTextField
-import com.maddyhome.idea.vim.newapi.vim
-import com.maddyhome.idea.vim.state.mode.Mode
-import me.kyren223.trident.data.SettingsState
-import me.kyren223.trident.utils.TridentMappings
-import me.kyren223.trident.utils.setEditorMode
-import java.awt.event.FocusEvent
-import java.awt.event.FocusListener
-import javax.swing.JComponent
-
-class TridentMappingsMenu(private val content: String) : DialogWrapper(true) {
- private lateinit var editor: EditorTextField
-
- init {
- val settings = SettingsState.instance.state
- this.title = "Trident Mappings"
- setSize(settings.width, settings.height)
- super.init()
- }
-
- override fun createCenterPanel(): JComponent {
- editor = EditorTextField(this.content)
- editor.setOneLineMode(false)
- editor.addSettingsProvider {
- it.setFontSize(SettingsState.instance.fontSize)
- it.isInsertMode = false
- it.caretModel.moveToLogicalPosition(LogicalPosition(0, 0))
- it.settings.isLineNumbersShown = true
- it.settings.lineNumerationType = EditorSettings.LineNumerationType.ABSOLUTE
- }
-
- editor.addFocusListener(object : FocusListener {
- override fun focusGained(e: FocusEvent?) {
- val editor = editor.editor!!.vim
- setEditorMode(editor, Mode.NORMAL())
- }
-
- override fun focusLost(e: FocusEvent?) { /* Do nothing */ }
- })
-
- return editor
- }
-
- override fun getPreferredFocusedComponent(): JComponent {
- return this.editor
- }
-
- override fun doOKAction() {
- save()
- super.doOKAction()
- }
-
- override fun doCancelAction() {
- save()
- super.doCancelAction()
- }
-
- private fun save() {
- map = editor.text.split("\n")
- .map { entry -> entry.split("=") }
- .filter { entry -> entry.size == 2 }
- .associate { it[0] to it[1] }
- }
-
- override fun createSouthPanel(): JComponent? {
- return null
- }
-
- companion object {
- var map: Map<String, String>? = null
- fun open(project: Project) {
- val content = TridentMappings.get(project).entries
- .joinToString("\n") { "${it.key}=${it.value}" }
- val menu = TridentMappingsMenu(content)
- menu.show()
- map?.let { TridentMappings.set(project, it) }
- map = null
- }
- }
-}
+package me.kyren223.trident.ui
+
+import com.intellij.openapi.editor.EditorSettings
+import com.intellij.openapi.editor.LogicalPosition
+import com.intellij.openapi.project.Project
+import com.intellij.openapi.ui.DialogWrapper
+import com.intellij.ui.EditorTextField
+import com.maddyhome.idea.vim.newapi.vim
+import com.maddyhome.idea.vim.state.mode.Mode
+import me.kyren223.trident.data.SettingsState
+import me.kyren223.trident.utils.TridentMappings
+import java.awt.event.FocusEvent
+import java.awt.event.FocusListener
+import javax.swing.JComponent
+
+class TridentMappingsMenu(private val content: String) : DialogWrapper(true) {
+ private lateinit var editor: EditorTextField
+
+ init {
+ val settings = SettingsState.instance.state
+ this.title = "Trident Mappings"
+ setSize(settings.width, settings.height)
+ super.init()
+ }
+
+ override fun createCenterPanel(): JComponent {
+ editor = EditorTextField(this.content)
+ editor.setOneLineMode(false)
+ editor.addSettingsProvider {
+ it.setFontSize(SettingsState.instance.fontSize)
+ it.isInsertMode = false
+ it.caretModel.moveToLogicalPosition(LogicalPosition(0, 0))
+ it.settings.isLineNumbersShown = true
+ it.settings.lineNumerationType = EditorSettings.LineNumerationType.ABSOLUTE
+ }
+
+ editor.addFocusListener(object : FocusListener {
+ override fun focusGained(e: FocusEvent?) {
+ val editor = editor.editor!!.vim
+ editor.mode = Mode.NORMAL()
+ }
+
+ override fun focusLost(e: FocusEvent?) { /* Do nothing */ }
+ })
+
+ return editor
+ }
+
+ override fun getPreferredFocusedComponent(): JComponent {
+ return this.editor
+ }
+
+ override fun doOKAction() {
+ save()
+ super.doOKAction()
+ }
+
+ override fun doCancelAction() {
+ save()
+ super.doCancelAction()
+ }
+
+ private fun save() {
+ map = editor.text.split("\n")
+ .map { entry -> entry.split("=") }
+ .filter { entry -> entry.size == 2 }
+ .associate { it[0] to it[1] }
+ }
+
+ override fun createSouthPanel(): JComponent? {
+ return null
+ }
+
+ companion object {
+ var map: Map<String, String>? = null
+ fun open(project: Project) {
+ val content = TridentMappings.get(project).entries
+ .joinToString("\n") { "${it.key}=${it.value}" }
+ val menu = TridentMappingsMenu(content)
+ menu.show()
+ map?.let { TridentMappings.set(project, it) }
+ map = null
+ }
+ }
+}