1
0
mirror of https://github.com/chylex/IntelliJ-Keyboard-Master.git synced 2025-04-10 09:15:46 +02:00

Change vim-style navigation binding for 'X' to close all tree nodes

This commit is contained in:
chylex 2024-09-18 19:49:16 +02:00
parent efe13712ad
commit 38c80a7b27
Signed by: chylex
GPG Key ID: 4DE42C8F19A80548

View File

@ -44,7 +44,7 @@ internal object VimTreeNavigation {
KeyStroke.getKeyStroke('p') to IdeaAction("Tree-selectParentNoCollapse"),
KeyStroke.getKeyStroke('P') to IdeaAction("Tree-selectFirst"),
KeyStroke.getKeyStroke('x') to CollapseSelfOrParentNode,
KeyStroke.getKeyStroke('X') to IdeaAction("CollapseTreeNode"),
KeyStroke.getKeyStroke('X') to CollapseAll,
)
)
@ -141,6 +141,21 @@ internal object VimTreeNavigation {
}
}
private data object CollapseAll : ActionNode<VimNavigationDispatcher<JTree>> {
override fun performAction(holder: VimNavigationDispatcher<JTree>, actionEvent: AnActionEvent, keyEvent: KeyEvent) {
val tree = holder.component
CollapseUntilRootNode.performAction(holder, actionEvent, keyEvent)
var row = 0
while (row < tree.rowCount) {
tree.collapseRow(row)
row++
}
}
}
private data object ExpandChildrenToNextLevel : ActionNode<VimNavigationDispatcher<JTree>> {
override fun performAction(holder: VimNavigationDispatcher<JTree>, actionEvent: AnActionEvent, keyEvent: KeyEvent) {
val tree = holder.component