1
0
mirror of https://github.com/chylex/IntelliJ-Keyboard-Master.git synced 2024-11-25 01:42:47 +01:00

Compare commits

...

3 Commits

3 changed files with 23 additions and 11 deletions

View File

@ -8,7 +8,7 @@ plugins {
} }
group = "com.chylex.intellij.keyboardmaster" group = "com.chylex.intellij.keyboardmaster"
version = "0.5.3" version = "0.5.4"
repositories { repositories {
mavenCentral() mavenCentral()

View File

@ -17,6 +17,7 @@ import java.awt.Container
import java.awt.event.ActionEvent import java.awt.event.ActionEvent
import java.awt.event.ActionListener import java.awt.event.ActionListener
import java.awt.event.KeyEvent import java.awt.event.KeyEvent
import java.beans.PropertyChangeEvent
import java.util.concurrent.atomic.AtomicBoolean import java.util.concurrent.atomic.AtomicBoolean
import javax.swing.JComponent import javax.swing.JComponent
import javax.swing.KeyStroke import javax.swing.KeyStroke
@ -60,18 +61,24 @@ internal open class VimNavigationDispatcher<T : JComponent>(final override val c
init { init {
registerCustomShortcutSet(KeyStrokeNode.getAllShortcuts(getAllKeyStrokes()), component, DISPOSABLE) registerCustomShortcutSet(KeyStrokeNode.getAllShortcuts(getAllKeyStrokes()), component, DISPOSABLE)
SpeedSearchSupply.getSupply(component, true)?.addChangeListener(::handleSpeedSearchChange)
}
val speedSearch = SpeedSearchSupply.getSupply(component, true) protected fun getAllKeyStrokes(): Set<KeyStroke> {
speedSearch?.addChangeListener { return KeyStrokeNode.getAllKeyStrokes(rootNode, setOf(ENTER_KEY))
if (it.propertyName == SpeedSearchSupply.ENTERED_PREFIX_PROPERTY_NAME && !speedSearch.isPopupActive) { }
private fun handleSpeedSearchChange(e: PropertyChangeEvent) {
if (e.propertyName == SpeedSearchSupply.ENTERED_PREFIX_PROPERTY_NAME) {
val speedSearch = e.source as? SpeedSearchSupply ?: return
ApplicationManager.getApplication().invokeLater {
if (!speedSearch.isPopupActive) {
isSearching.set(false) isSearching.set(false)
currentNode = rootNode currentNode = rootNode
} }
} }
} }
protected fun getAllKeyStrokes(): Set<KeyStroke> {
return KeyStrokeNode.getAllKeyStrokes(rootNode, setOf(ENTER_KEY))
} }
final override fun actionPerformed(e: AnActionEvent) { final override fun actionPerformed(e: AnActionEvent) {

View File

@ -85,7 +85,7 @@ internal object VimTreeNavigation {
val parentPath = path.parentPath ?: return val parentPath = path.parentPath ?: return
val parentRow = tree.getRowForPath(parentPath) val parentRow = tree.getRowForPath(parentPath)
tree.setSelectionRow(parentRow + 1) selectRow(tree, parentRow + 1)
} }
} }
@ -111,7 +111,12 @@ internal object VimTreeNavigation {
} }
} }
tree.setSelectionRow(targetRow) selectRow(tree, targetRow)
} }
} }
private fun selectRow(tree: JTree, row: Int) {
tree.setSelectionRow(row)
tree.scrollRowToVisible(row)
}
} }