diff --git a/annotation-processors/src/main/kotlin/com/intellij/vim/annotations/CommandOrMotion.kt b/annotation-processors/src/main/kotlin/com/intellij/vim/annotations/CommandOrMotion.kt new file mode 100644 index 000000000..6e0a84f1f --- /dev/null +++ b/annotation-processors/src/main/kotlin/com/intellij/vim/annotations/CommandOrMotion.kt @@ -0,0 +1,60 @@ +/* + * Copyright 2003-2023 The IdeaVim authors + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE.txt file or at + * https://opensource.org/licenses/MIT. + */ + +package com.intellij.vim.annotations + +// TODO support numpad keys parsing, see :keycodes +/** + * It's not necessary a Vim command + * This annotation may be used for: + * - commands + * - motions + */ +@Target(AnnotationTarget.CLASS) +@Retention(AnnotationRetention.SOURCE) +annotation class CommandOrMotion(val keys: Array<String>, vararg val modes: Mode) + +annotation class TextObject(val keys: String) + + +/** + * @author vlan + * + * COMPATIBILITY-LAYER: Do not move this class to a different package + */ +enum class Mode { + /** + * Indicates this key mapping applies to Normal mode + */ + NORMAL, + + /** + * Indicates this key mapping applies to Visual mode + */ + VISUAL, + + /** + * Indicates this key mapping applies to Select mode + */ + SELECT, + + /** + * Indicates this key mapping applies to Operator Pending mode + */ + OP_PENDING, + + /** + * Indicates this key mapping applies to Insert mode + */ + INSERT, + + /** + * Indicates this key mapping applies to Command Line mode + */ + CMD_LINE, +} \ No newline at end of file diff --git a/src/main/java/com/maddyhome/idea/vim/action/ExEntryAction.kt b/src/main/java/com/maddyhome/idea/vim/action/ExEntryAction.kt index 99c5e5c31..b6438a6c3 100644 --- a/src/main/java/com/maddyhome/idea/vim/action/ExEntryAction.kt +++ b/src/main/java/com/maddyhome/idea/vim/action/ExEntryAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.VimPlugin import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor @@ -14,6 +16,7 @@ import com.maddyhome.idea.vim.command.Command import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.VimActionHandler +@CommandOrMotion(keys = [":"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) internal class ExEntryAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/src/main/java/com/maddyhome/idea/vim/action/change/OperatorAction.kt b/src/main/java/com/maddyhome/idea/vim/action/change/OperatorAction.kt index b5435ffdf..743bdfa7c 100644 --- a/src/main/java/com/maddyhome/idea/vim/action/change/OperatorAction.kt +++ b/src/main/java/com/maddyhome/idea/vim/action/change/OperatorAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.KeyHandler import com.maddyhome.idea.vim.VimPlugin import com.maddyhome.idea.vim.api.ExecutionContext @@ -47,6 +49,7 @@ private fun doOperatorAction(editor: VimEditor, context: ExecutionContext, textR return result } +@CommandOrMotion(keys = ["g@"], modes = [Mode.NORMAL]) internal class OperatorAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_SELF_SYNCHRONIZED @@ -97,6 +100,7 @@ internal class OperatorAction : VimActionHandler.SingleExecution() { } } +@CommandOrMotion(keys = ["g@"], modes = [Mode.VISUAL]) internal class VisualOperatorAction : VisualOperatorActionHandler.ForEachCaret() { override val type: Command.Type = Command.Type.OTHER_SELF_SYNCHRONIZED diff --git a/src/main/java/com/maddyhome/idea/vim/action/change/RepeatChangeAction.kt b/src/main/java/com/maddyhome/idea/vim/action/change/RepeatChangeAction.kt index 13ada7276..c581028cf 100644 --- a/src/main/java/com/maddyhome/idea/vim/action/change/RepeatChangeAction.kt +++ b/src/main/java/com/maddyhome/idea/vim/action/change/RepeatChangeAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.intellij.openapi.command.CommandProcessor import com.maddyhome.idea.vim.VimPlugin import com.maddyhome.idea.vim.api.ExecutionContext @@ -18,6 +20,7 @@ import com.maddyhome.idea.vim.handler.VimActionHandler import com.maddyhome.idea.vim.helper.vimStateMachine import com.maddyhome.idea.vim.newapi.ij +@CommandOrMotion(keys = ["."], modes = [Mode.NORMAL]) internal class RepeatChangeAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_WRITABLE diff --git a/src/main/java/com/maddyhome/idea/vim/action/change/delete/DeleteJoinLinesAction.kt b/src/main/java/com/maddyhome/idea/vim/action/change/delete/DeleteJoinLinesAction.kt index a4c2b190a..3bce67007 100644 --- a/src/main/java/com/maddyhome/idea/vim/action/change/delete/DeleteJoinLinesAction.kt +++ b/src/main/java/com/maddyhome/idea/vim/action/change/delete/DeleteJoinLinesAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.delete +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -17,6 +19,7 @@ import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.ChangeEditorActionHandler import com.maddyhome.idea.vim.newapi.ijOptions +@CommandOrMotion(keys = ["gJ"], modes = [Mode.NORMAL]) public class DeleteJoinLinesAction : ChangeEditorActionHandler.ConditionalSingleExecution() { override val type: Command.Type = Command.Type.DELETE override fun runAsMulticaret( diff --git a/src/main/java/com/maddyhome/idea/vim/action/change/delete/DeleteJoinLinesSpacesAction.kt b/src/main/java/com/maddyhome/idea/vim/action/change/delete/DeleteJoinLinesSpacesAction.kt index e0765dc26..1c0eaa866 100644 --- a/src/main/java/com/maddyhome/idea/vim/action/change/delete/DeleteJoinLinesSpacesAction.kt +++ b/src/main/java/com/maddyhome/idea/vim/action/change/delete/DeleteJoinLinesSpacesAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.delete +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -16,6 +18,7 @@ import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.ChangeEditorActionHandler import com.maddyhome.idea.vim.newapi.ijOptions +@CommandOrMotion(keys = ["J"], modes = [Mode.NORMAL]) public class DeleteJoinLinesSpacesAction : ChangeEditorActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.DELETE diff --git a/src/main/java/com/maddyhome/idea/vim/action/change/delete/DeleteJoinVisualLinesAction.kt b/src/main/java/com/maddyhome/idea/vim/action/change/delete/DeleteJoinVisualLinesAction.kt index a08db4958..f287f8a20 100644 --- a/src/main/java/com/maddyhome/idea/vim/action/change/delete/DeleteJoinVisualLinesAction.kt +++ b/src/main/java/com/maddyhome/idea/vim/action/change/delete/DeleteJoinVisualLinesAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.delete +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -23,6 +25,7 @@ import java.util.* /** * @author vlan */ +@CommandOrMotion(keys = ["gJ"], modes = [Mode.VISUAL]) public class DeleteJoinVisualLinesAction : VisualOperatorActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.DELETE diff --git a/src/main/java/com/maddyhome/idea/vim/action/change/delete/DeleteJoinVisualLinesSpacesAction.kt b/src/main/java/com/maddyhome/idea/vim/action/change/delete/DeleteJoinVisualLinesSpacesAction.kt index 5f7aa3d88..e5ed6959c 100644 --- a/src/main/java/com/maddyhome/idea/vim/action/change/delete/DeleteJoinVisualLinesSpacesAction.kt +++ b/src/main/java/com/maddyhome/idea/vim/action/change/delete/DeleteJoinVisualLinesSpacesAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.delete +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -23,6 +25,7 @@ import java.util.* /** * @author vlan */ +@CommandOrMotion(keys = ["J"], modes = [Mode.VISUAL]) public class DeleteJoinVisualLinesSpacesAction : VisualOperatorActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.DELETE diff --git a/src/main/java/com/maddyhome/idea/vim/action/editor/VimEditorActions.kt b/src/main/java/com/maddyhome/idea/vim/action/editor/VimEditorActions.kt index 7a044ddba..d824c7059 100644 --- a/src/main/java/com/maddyhome/idea/vim/action/editor/VimEditorActions.kt +++ b/src/main/java/com/maddyhome/idea/vim/action/editor/VimEditorActions.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.editor +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.intellij.openapi.actionSystem.IdeActions import com.maddyhome.idea.vim.action.ComplicatedKeysAction import com.maddyhome.idea.vim.api.ExecutionContext @@ -23,6 +25,7 @@ import java.awt.event.KeyEvent import java.util.* import javax.swing.KeyStroke +@CommandOrMotion(keys = ["<C-H>", "<BS>"], modes = [Mode.INSERT]) internal class VimEditorBackSpace : IdeActionHandler(IdeActions.ACTION_EDITOR_BACKSPACE), ComplicatedKeysAction { override val keyStrokesSet: Set<List<KeyStroke>> = setOf( listOf(KeyStroke.getKeyStroke(KeyEvent.VK_H, KeyEvent.CTRL_DOWN_MASK)), @@ -31,6 +34,7 @@ internal class VimEditorBackSpace : IdeActionHandler(IdeActions.ACTION_EDITOR_BA override val type: Command.Type = Command.Type.DELETE } +@CommandOrMotion(keys = ["<Del>"], modes = [Mode.INSERT]) internal class VimEditorDelete : IdeActionHandler(IdeActions.ACTION_EDITOR_DELETE), ComplicatedKeysAction { override val keyStrokesSet: Set<List<KeyStroke>> = setOf( listOf(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0)), @@ -39,6 +43,7 @@ internal class VimEditorDelete : IdeActionHandler(IdeActions.ACTION_EDITOR_DELET override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_SAVE_STROKE) } +@CommandOrMotion(keys = ["<Down>", "<kDown>"], modes = [Mode.INSERT]) internal class VimEditorDown : IdeActionHandler(IdeActions.ACTION_EDITOR_MOVE_CARET_DOWN), ComplicatedKeysAction { override val keyStrokesSet: Set<List<KeyStroke>> = setOf( listOf(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, 0)), @@ -48,6 +53,7 @@ internal class VimEditorDown : IdeActionHandler(IdeActions.ACTION_EDITOR_MOVE_CA override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_CLEAR_STROKES) } +@CommandOrMotion(keys = ["<Tab>", "<C-I>"], modes = [Mode.INSERT]) internal class VimEditorTab : IdeActionHandler(IdeActions.ACTION_EDITOR_TAB), ComplicatedKeysAction { override val keyStrokesSet: Set<List<KeyStroke>> = setOf( listOf(KeyStroke.getKeyStroke(KeyEvent.VK_I, KeyEvent.CTRL_DOWN_MASK)), @@ -57,6 +63,7 @@ internal class VimEditorTab : IdeActionHandler(IdeActions.ACTION_EDITOR_TAB), Co override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_SAVE_STROKE) } +@CommandOrMotion(keys = ["<Up>", "<kUp>"], modes = [Mode.INSERT]) internal class VimEditorUp : IdeActionHandler(IdeActions.ACTION_EDITOR_MOVE_CARET_UP), ComplicatedKeysAction { override val keyStrokesSet: Set<List<KeyStroke>> = setOf( listOf(KeyStroke.getKeyStroke(KeyEvent.VK_UP, 0)), @@ -66,6 +73,7 @@ internal class VimEditorUp : IdeActionHandler(IdeActions.ACTION_EDITOR_MOVE_CARE override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_CLEAR_STROKES) } +@CommandOrMotion(keys = ["K"], modes = [Mode.NORMAL]) internal class VimQuickJavaDoc : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/src/main/java/com/maddyhome/idea/vim/action/ex/ProcessExEntryAction.kt b/src/main/java/com/maddyhome/idea/vim/action/ex/ProcessExEntryAction.kt index ce0fa6d4f..6f4dab3d1 100644 --- a/src/main/java/com/maddyhome/idea/vim/action/ex/ProcessExEntryAction.kt +++ b/src/main/java/com/maddyhome/idea/vim/action/ex/ProcessExEntryAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.ex +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.VimPlugin import com.maddyhome.idea.vim.action.ComplicatedKeysAction import com.maddyhome.idea.vim.api.ExecutionContext @@ -23,6 +25,7 @@ import javax.swing.KeyStroke * * The mapping for this action means that the ex command is executed as a write action */ +@CommandOrMotion(keys = ["<CR>", "<C-M>", "<C-J>"], modes = [Mode.CMD_LINE]) public class ProcessExEntryAction : VimActionHandler.SingleExecution(), ComplicatedKeysAction { override val keyStrokesSet: Set<List<KeyStroke>> = parseKeysSet("<CR>", "<C-M>", 0x0a.toChar().toString(), 0x0d.toChar().toString()) diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/ResetModeAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/ResetModeAction.kt index 82b11f993..5cb9db630 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/ResetModeAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/ResetModeAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.KeyHandler import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret @@ -14,13 +16,13 @@ import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector import com.maddyhome.idea.vim.api.moveToMotion import com.maddyhome.idea.vim.command.Command -import com.maddyhome.idea.vim.state.mode.Mode import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.VimActionHandler import com.maddyhome.idea.vim.state.mode.mode +@CommandOrMotion(keys = ["<C-\\><C-N>"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.SELECT, Mode.OP_PENDING, Mode.INSERT, Mode.CMD_LINE]) public class ResetModeAction : VimActionHandler.ConditionalMulticaret() { - private lateinit var modeBeforeReset: Mode + private lateinit var modeBeforeReset: com.maddyhome.idea.vim.state.mode.Mode override val type: Command.Type = Command.Type.OTHER_WRITABLE override fun runAsMulticaret( editor: VimEditor, @@ -40,7 +42,7 @@ public class ResetModeAction : VimActionHandler.ConditionalMulticaret() { cmd: Command, operatorArguments: OperatorArguments, ): Boolean { - if (modeBeforeReset == Mode.INSERT) { + if (modeBeforeReset == com.maddyhome.idea.vim.state.mode.Mode.INSERT) { val position = injector.motion.getHorizontalMotion(editor, caret, -1, false) caret.moveToMotion(position) } diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/RedoAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/RedoAction.kt index 42d3279fc..6ca5c81c4 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/RedoAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/RedoAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -14,6 +16,7 @@ import com.maddyhome.idea.vim.command.Command import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.VimActionHandler +@CommandOrMotion(keys = ["<C-R>"], modes = [Mode.NORMAL]) public class RedoAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_SELF_SYNCHRONIZED diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/UndoAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/UndoAction.kt index a83e32599..07b945f76 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/UndoAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/UndoAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.action.ComplicatedKeysAction import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor @@ -17,6 +19,7 @@ import com.maddyhome.idea.vim.handler.VimActionHandler import java.awt.event.KeyEvent import javax.swing.KeyStroke +@CommandOrMotion(keys = ["u"], modes = [Mode.NORMAL]) public class UndoAction : VimActionHandler.SingleExecution(), ComplicatedKeysAction { override val keyStrokesSet: Set<List<KeyStroke>> = setOf( injector.parser.parseKeys("u"), diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/AutoIndentLinesVisualAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/AutoIndentLinesVisualAction.kt index 0f56bcc73..a8621cd2a 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/AutoIndentLinesVisualAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/AutoIndentLinesVisualAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.change +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -22,6 +24,7 @@ import java.util.* /** * @author vlan */ +@CommandOrMotion(keys = ["="], modes = [Mode.VISUAL]) public class AutoIndentLinesVisualAction : VisualOperatorActionHandler.ForEachCaret() { override val type: Command.Type = Command.Type.CHANGE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeCaseLowerMotionAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeCaseLowerMotionAction.kt index 7496043b1..3b35d23f6 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeCaseLowerMotionAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeCaseLowerMotionAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.change +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -18,6 +20,7 @@ import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.ChangeEditorActionHandler import com.maddyhome.idea.vim.helper.CharacterHelper +@CommandOrMotion(keys = ["gu"], modes = [Mode.NORMAL]) public class ChangeCaseLowerMotionAction : ChangeEditorActionHandler.ForEachCaret(), DuplicableOperatorAction { override val type: Command.Type = Command.Type.CHANGE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeCaseLowerVisualAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeCaseLowerVisualAction.kt index 876b15c3c..83a8d6922 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeCaseLowerVisualAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeCaseLowerVisualAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.change +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -23,6 +25,7 @@ import java.util.* /** * @author vlan */ +@CommandOrMotion(keys = ["u"], modes = [Mode.VISUAL]) public class ChangeCaseLowerVisualAction : VisualOperatorActionHandler.ForEachCaret() { override val type: Command.Type = Command.Type.CHANGE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeCaseToggleCharacterAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeCaseToggleCharacterAction.kt index f4c285832..90aac05f9 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeCaseToggleCharacterAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeCaseToggleCharacterAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.change +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -16,6 +18,7 @@ import com.maddyhome.idea.vim.command.Command import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.ChangeEditorActionHandler +@CommandOrMotion(keys = ["~"], modes = [Mode.NORMAL]) public class ChangeCaseToggleCharacterAction : ChangeEditorActionHandler.ForEachCaret() { override val type: Command.Type = Command.Type.CHANGE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeCaseToggleMotionAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeCaseToggleMotionAction.kt index 686e77aaa..f1977d440 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeCaseToggleMotionAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeCaseToggleMotionAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.change +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -18,6 +20,7 @@ import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.ChangeEditorActionHandler import com.maddyhome.idea.vim.helper.CharacterHelper +@CommandOrMotion(keys = ["g~"], modes = [Mode.NORMAL]) public class ChangeCaseToggleMotionAction : ChangeEditorActionHandler.ForEachCaret(), DuplicableOperatorAction { override val type: Command.Type = Command.Type.CHANGE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeCaseToggleVisualAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeCaseToggleVisualAction.kt index ef79a6884..a19d81d57 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeCaseToggleVisualAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeCaseToggleVisualAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.change +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -23,6 +25,7 @@ import java.util.* /** * @author vlan */ +@CommandOrMotion(keys = ["~"], modes = [Mode.VISUAL]) public class ChangeCaseToggleVisualAction : VisualOperatorActionHandler.ForEachCaret() { override val type: Command.Type = Command.Type.CHANGE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeCaseUpperMotionAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeCaseUpperMotionAction.kt index 86cc04587..ab2a9f637 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeCaseUpperMotionAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeCaseUpperMotionAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.change +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -18,6 +20,7 @@ import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.ChangeEditorActionHandler import com.maddyhome.idea.vim.helper.CharacterHelper +@CommandOrMotion(keys = ["gU"], modes = [Mode.NORMAL]) public class ChangeCaseUpperMotionAction : ChangeEditorActionHandler.ForEachCaret(), DuplicableOperatorAction { override val type: Command.Type = Command.Type.CHANGE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeCaseUpperVisualAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeCaseUpperVisualAction.kt index 9a5caae90..90374802b 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeCaseUpperVisualAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeCaseUpperVisualAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.change +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -23,6 +25,7 @@ import java.util.* /** * @author vlan */ +@CommandOrMotion(keys = ["U"], modes = [Mode.VISUAL]) public class ChangeCaseUpperVisualAction : VisualOperatorActionHandler.ForEachCaret() { override val type: Command.Type = Command.Type.CHANGE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeCharacterAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeCharacterAction.kt index a8ec67146..a48213788 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeCharacterAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeCharacterAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.change +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -23,6 +25,7 @@ import com.maddyhome.idea.vim.handler.ChangeEditorActionHandler import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["r"], modes = [Mode.NORMAL]) public class ChangeCharacterAction : ChangeEditorActionHandler.ForEachCaret() { override val type: Command.Type = Command.Type.CHANGE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeCharactersAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeCharactersAction.kt index 8ea8e2c62..d8454d14f 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeCharactersAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeCharactersAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.change +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -21,6 +23,7 @@ import com.maddyhome.idea.vim.handler.ChangeEditorActionHandler import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["s"], modes = [Mode.NORMAL]) public class ChangeCharactersAction : ChangeEditorActionHandler.ForEachCaret() { override val type: Command.Type = Command.Type.CHANGE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeEndOfLineAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeEndOfLineAction.kt index 4a4418dd5..db6a6d985 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeEndOfLineAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeEndOfLineAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.change +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -21,6 +23,7 @@ import com.maddyhome.idea.vim.handler.ChangeEditorActionHandler import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["C"], modes = [Mode.NORMAL]) public class ChangeEndOfLineAction : ChangeEditorActionHandler.ForEachCaret() { override val type: Command.Type = Command.Type.CHANGE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeLastGlobalSearchReplaceAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeLastGlobalSearchReplaceAction.kt index 9fd524ee6..225b8c768 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeLastGlobalSearchReplaceAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeLastGlobalSearchReplaceAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.change +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -17,6 +19,7 @@ import com.maddyhome.idea.vim.ex.ranges.LineRange import com.maddyhome.idea.vim.handler.ChangeEditorActionHandler import com.maddyhome.idea.vim.vimscript.model.Script +@CommandOrMotion(keys = ["g&"], modes = [Mode.NORMAL]) public class ChangeLastGlobalSearchReplaceAction : ChangeEditorActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_SELF_SYNCHRONIZED diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeLastSearchReplaceAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeLastSearchReplaceAction.kt index c55efe487..ee98c0df8 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeLastSearchReplaceAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeLastSearchReplaceAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.change +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -17,6 +19,7 @@ import com.maddyhome.idea.vim.ex.ranges.LineRange import com.maddyhome.idea.vim.handler.ChangeEditorActionHandler import com.maddyhome.idea.vim.vimscript.model.Script +@CommandOrMotion(keys = ["&"], modes = [Mode.NORMAL]) public class ChangeLastSearchReplaceAction : ChangeEditorActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_SELF_SYNCHRONIZED diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeLineAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeLineAction.kt index 73e9385ee..7b8e2db5f 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeLineAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeLineAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.change +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.action.motion.updown.MotionDownLess1FirstNonSpaceAction import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret @@ -22,6 +24,7 @@ import com.maddyhome.idea.vim.handler.ChangeEditorActionHandler import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["S"], modes = [Mode.NORMAL]) public class ChangeLineAction : ChangeEditorActionHandler.ForEachCaret() { override val type: Command.Type = Command.Type.CHANGE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeMotionAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeMotionAction.kt index a0a4d38e7..b4e962c68 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeMotionAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeMotionAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.change +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -17,6 +19,7 @@ import com.maddyhome.idea.vim.command.DuplicableOperatorAction import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.ChangeEditorActionHandler +@CommandOrMotion(keys = ["c"], modes = [Mode.NORMAL]) public class ChangeMotionAction : ChangeEditorActionHandler.ForEachCaret(), DuplicableOperatorAction { override val type: Command.Type = Command.Type.CHANGE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeReplaceAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeReplaceAction.kt index 697754b4e..a863d6d53 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeReplaceAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeReplaceAction.kt @@ -7,18 +7,20 @@ */ package com.maddyhome.idea.vim.action.change.change +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector import com.maddyhome.idea.vim.command.Argument import com.maddyhome.idea.vim.command.Command import com.maddyhome.idea.vim.command.CommandFlags -import com.maddyhome.idea.vim.state.mode.Mode import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.ChangeEditorActionHandler import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["R"], modes = [Mode.NORMAL]) public class ChangeReplaceAction : ChangeEditorActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.CHANGE @@ -41,5 +43,5 @@ public class ChangeReplaceAction : ChangeEditorActionHandler.SingleExecution() { * @param context The data context */ private fun changeReplace(editor: VimEditor, context: ExecutionContext) { - injector.changeGroup.initInsert(editor, context, Mode.REPLACE) + injector.changeGroup.initInsert(editor, context, com.maddyhome.idea.vim.state.mode.Mode.REPLACE) } diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeVisualAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeVisualAction.kt index 7cfd7b38d..94a1f94a0 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeVisualAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeVisualAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.change +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -22,6 +24,7 @@ import java.util.* /** * @author vlan */ +@CommandOrMotion(keys = ["c", "s"], modes = [Mode.VISUAL]) public class ChangeVisualAction : VisualOperatorActionHandler.ForEachCaret() { override val type: Command.Type = Command.Type.CHANGE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeVisualCharacterAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeVisualCharacterAction.kt index 5785fff47..11d988df3 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeVisualCharacterAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeVisualCharacterAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.change +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -26,6 +28,7 @@ import java.util.* /** * @author vlan */ +@CommandOrMotion(keys = ["r"], modes = [Mode.VISUAL]) public class ChangeVisualCharacterAction : VisualOperatorActionHandler.ForEachCaret() { override val type: Command.Type = Command.Type.CHANGE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeVisualLinesAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeVisualLinesAction.kt index 1a3a99df1..8c29f59dd 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeVisualLinesAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeVisualLinesAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.change +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -29,6 +31,7 @@ import java.util.* /** * @author vlan */ +@CommandOrMotion(keys = ["R", "S"], modes = [Mode.VISUAL]) public class ChangeVisualLinesAction : VisualOperatorActionHandler.ForEachCaret() { override val type: Command.Type = Command.Type.CHANGE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeVisualLinesEndAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeVisualLinesEndAction.kt index 2ac72be76..574fe9fc6 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeVisualLinesEndAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ChangeVisualLinesEndAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.change +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -29,6 +31,7 @@ import java.util.* /** * @author vlan */ +@CommandOrMotion(keys = ["C"], modes = [Mode.VISUAL]) public class ChangeVisualLinesEndAction : VisualOperatorActionHandler.ForEachCaret() { override val type: Command.Type = Command.Type.CHANGE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/FilterMotionAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/FilterMotionAction.kt index 3d3bac334..9eaa73eb0 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/FilterMotionAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/FilterMotionAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.change.change +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -18,6 +20,7 @@ import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.VimActionHandler import com.maddyhome.idea.vim.helper.endOffsetInclusive +@CommandOrMotion(keys = ["!"], modes = [Mode.NORMAL]) public class FilterMotionAction : VimActionHandler.SingleExecution(), DuplicableOperatorAction { override val type: Command.Type = Command.Type.CHANGE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/FilterVisualLinesAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/FilterVisualLinesAction.kt index b9e656498..8f26d7317 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/FilterVisualLinesAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/FilterVisualLinesAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.change +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -21,6 +23,7 @@ import java.util.* /** * @author vlan */ +@CommandOrMotion(keys = ["!"], modes = [Mode.VISUAL]) public class FilterVisualLinesAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.CHANGE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ReformatCodeMotionAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ReformatCodeMotionAction.kt index 06a0a2066..db498318b 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ReformatCodeMotionAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ReformatCodeMotionAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.change +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -17,6 +19,7 @@ import com.maddyhome.idea.vim.command.DuplicableOperatorAction import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.ChangeEditorActionHandler +@CommandOrMotion(keys = ["gq"], modes = [Mode.NORMAL]) public class ReformatCodeMotionAction : ChangeEditorActionHandler.ForEachCaret(), DuplicableOperatorAction { override val type: Command.Type = Command.Type.CHANGE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ReformatCodeVisualAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ReformatCodeVisualAction.kt index 1483dbb15..cf99cd09f 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ReformatCodeVisualAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/ReformatCodeVisualAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.change +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -22,6 +24,7 @@ import java.util.* /** * @author vlan */ +@CommandOrMotion(keys = ["gq"], modes = [Mode.VISUAL]) public class ReformatCodeVisualAction : VisualOperatorActionHandler.ForEachCaret() { override val type: Command.Type = Command.Type.CHANGE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/number/ChangeNumberIncAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/number/ChangeNumberIncAction.kt index 7475268e2..cebf1fe67 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/number/ChangeNumberIncAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/number/ChangeNumberIncAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.change.number +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -30,5 +32,8 @@ public sealed class IncAction(public val inc: Int) : ChangeEditorActionHandler.F } } +@CommandOrMotion(keys = ["<C-A>"], modes = [Mode.NORMAL]) public class ChangeNumberIncAction : IncAction(1) + +@CommandOrMotion(keys = ["<C-X>"], modes = [Mode.NORMAL]) public class ChangeNumberDecAction : IncAction(-1) diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/number/ChangeVisualNumberIncAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/number/ChangeVisualNumberIncAction.kt index 0a472e57c..d1664fbe4 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/number/ChangeVisualNumberIncAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/change/number/ChangeVisualNumberIncAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.change.number +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -35,7 +37,14 @@ public sealed class IncNumber(public val inc: Int, private val avalanche: Boolea } } +@CommandOrMotion(keys = ["<C-A>"], modes = [Mode.VISUAL]) public class ChangeVisualNumberIncAction : IncNumber(1, false) + +@CommandOrMotion(keys = ["<C-X>"], modes = [Mode.VISUAL]) public class ChangeVisualNumberDecAction : IncNumber(-1, false) + +@CommandOrMotion(keys = ["g<C-A>"], modes = [Mode.VISUAL]) public class ChangeVisualNumberAvalancheIncAction : IncNumber(1, true) + +@CommandOrMotion(keys = ["g<C-X>"], modes = [Mode.VISUAL]) public class ChangeVisualNumberAvalancheDecAction : IncNumber(-1, true) diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/delete/DeleteCharacterAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/delete/DeleteCharacterAction.kt index 56e5f3c8d..cac70450e 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/delete/DeleteCharacterAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/delete/DeleteCharacterAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.delete +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -16,8 +18,13 @@ import com.maddyhome.idea.vim.command.Command import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.ChangeEditorActionHandler +@CommandOrMotion(keys = ["<Del>"], modes = [Mode.NORMAL]) public class DeleteCharacterAction : DeleteCharacter({ 1 }) + +@CommandOrMotion(keys = ["X"], modes = [Mode.NORMAL]) public class DeleteCharacterLeftAction : DeleteCharacter({ -it }) + +@CommandOrMotion(keys = ["x"], modes = [Mode.NORMAL]) public class DeleteCharacterRightAction : DeleteCharacter({ it }) public abstract class DeleteCharacter(private val countModifier: (Int) -> Int) : ChangeEditorActionHandler.ForEachCaret() { diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/delete/DeleteEndOfLineAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/delete/DeleteEndOfLineAction.kt index 2e0397693..8bd22c2e8 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/delete/DeleteEndOfLineAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/delete/DeleteEndOfLineAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.delete +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -16,6 +18,7 @@ import com.maddyhome.idea.vim.command.Command import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.ChangeEditorActionHandler +@CommandOrMotion(keys = ["D"], modes = [Mode.NORMAL]) public class DeleteEndOfLineAction : ChangeEditorActionHandler.ForEachCaret() { override val type: Command.Type = Command.Type.DELETE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/delete/DeleteMotionAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/delete/DeleteMotionAction.kt index 439f661ef..bd61d8300 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/delete/DeleteMotionAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/delete/DeleteMotionAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.delete +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -17,6 +19,7 @@ import com.maddyhome.idea.vim.command.DuplicableOperatorAction import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.ChangeEditorActionHandler +@CommandOrMotion(keys = ["d"], modes = [Mode.NORMAL]) public class DeleteMotionAction : ChangeEditorActionHandler.ForEachCaret(), DuplicableOperatorAction { override val type: Command.Type = Command.Type.DELETE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/delete/DeleteVisualAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/delete/DeleteVisualAction.kt index 2f4c4d4cf..536aa96a5 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/delete/DeleteVisualAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/delete/DeleteVisualAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.delete +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -22,6 +24,7 @@ import java.util.* /** * @author vlan */ +@CommandOrMotion(keys = ["d", "x", "<Del>"], modes = [Mode.VISUAL]) public class DeleteVisualAction : VisualOperatorActionHandler.ForEachCaret() { override val type: Command.Type = Command.Type.DELETE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/delete/DeleteVisualLinesAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/delete/DeleteVisualLinesAction.kt index 8baf46926..0a49e4422 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/delete/DeleteVisualLinesAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/delete/DeleteVisualLinesAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.delete +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -26,6 +28,7 @@ import java.util.* /** * @author vlan */ +@CommandOrMotion(keys = ["X"], modes = [Mode.VISUAL]) public class DeleteVisualLinesAction : VisualOperatorActionHandler.ForEachCaret() { override val type: Command.Type = Command.Type.DELETE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/delete/DeleteVisualLinesEndAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/delete/DeleteVisualLinesEndAction.kt index 52070216f..8e2fc0b1d 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/delete/DeleteVisualLinesEndAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/delete/DeleteVisualLinesEndAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.delete +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -26,6 +28,7 @@ import java.util.* /** * @author vlan */ +@CommandOrMotion(keys = ["D"], modes = [Mode.VISUAL]) public class DeleteVisualLinesEndAction : VisualOperatorActionHandler.ForEachCaret() { override val type: Command.Type = Command.Type.DELETE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertAfterCursorAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertAfterCursorAction.kt index 1721681e4..c678e730f 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertAfterCursorAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertAfterCursorAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.insert +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -18,6 +20,7 @@ import com.maddyhome.idea.vim.handler.ChangeEditorActionHandler import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["a"], modes = [Mode.NORMAL]) public class InsertAfterCursorAction : ChangeEditorActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.INSERT diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertAfterLineEndAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertAfterLineEndAction.kt index 96ec58f0f..dbf9b43d4 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertAfterLineEndAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertAfterLineEndAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.insert +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -18,6 +20,7 @@ import com.maddyhome.idea.vim.handler.ChangeEditorActionHandler import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["A"], modes = [Mode.NORMAL]) public class InsertAfterLineEndAction : ChangeEditorActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.INSERT diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertAtPreviousInsertAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertAtPreviousInsertAction.kt index 3ced425f5..af46f7094 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertAtPreviousInsertAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertAtPreviousInsertAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.insert +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.VimMarkService @@ -20,6 +22,7 @@ import com.maddyhome.idea.vim.handler.Motion import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["gi"], modes = [Mode.NORMAL]) public class InsertAtPreviousInsertAction : ChangeEditorActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.INSERT diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertBeforeCursorAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertBeforeCursorAction.kt index 28cc31fd2..e374d93de 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertBeforeCursorAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertBeforeCursorAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.insert +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -19,6 +21,7 @@ import com.maddyhome.idea.vim.helper.enumSetOf import org.jetbrains.annotations.Contract import java.util.* +@CommandOrMotion(keys = ["i", "<Insert>"], modes = [Mode.NORMAL]) public class InsertBeforeCursorAction : ChangeEditorActionHandler.SingleExecution() { @get:Contract(pure = true) override val type: Command.Type = Command.Type.INSERT diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertBeforeFirstNonBlankAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertBeforeFirstNonBlankAction.kt index f730ef8c8..51f1fdcd0 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertBeforeFirstNonBlankAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertBeforeFirstNonBlankAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.insert +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -18,6 +20,7 @@ import com.maddyhome.idea.vim.handler.ChangeEditorActionHandler import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["I"], modes = [Mode.NORMAL]) public class InsertBeforeFirstNonBlankAction : ChangeEditorActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.INSERT diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertCharacterAroundCursorAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertCharacterAroundCursorAction.kt index fa4088bf3..4a9e91bbf 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertCharacterAroundCursorAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertCharacterAroundCursorAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.insert +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.MutableVimEditor import com.maddyhome.idea.vim.api.VimCaret @@ -21,6 +23,7 @@ import com.maddyhome.idea.vim.command.Command import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.ChangeEditorActionHandler +@CommandOrMotion(keys = ["<C-Y>"], modes = [Mode.INSERT]) public class InsertCharacterAboveCursorAction : ChangeEditorActionHandler.ForEachCaret() { override val type: Command.Type = Command.Type.INSERT @@ -39,6 +42,7 @@ public class InsertCharacterAboveCursorAction : ChangeEditorActionHandler.ForEac } } +@CommandOrMotion(keys = ["<C-E>"], modes = [Mode.INSERT]) public class InsertCharacterBelowCursorAction : ChangeEditorActionHandler.ForEachCaret() { override val type: Command.Type = Command.Type.INSERT diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertCompletedDigraphAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertCompletedDigraphAction.kt index dc1831773..00164cee8 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertCompletedDigraphAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertCompletedDigraphAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.change.insert +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.KeyHandler import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor @@ -17,6 +19,7 @@ import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.VimActionHandler import javax.swing.KeyStroke +@CommandOrMotion(keys = ["<C-K>"], modes = [Mode.INSERT, Mode.CMD_LINE]) public class InsertCompletedDigraphAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.INSERT override val argumentType: Argument.Type = Argument.Type.DIGRAPH diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertCompletedLiteralAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertCompletedLiteralAction.kt index 6aac26296..dd74d80be 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertCompletedLiteralAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertCompletedLiteralAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.change.insert +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.KeyHandler import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor @@ -17,6 +19,7 @@ import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.VimActionHandler import javax.swing.KeyStroke +@CommandOrMotion(keys = ["<C-V>", "<C-Q>"], modes = [Mode.INSERT, Mode.CMD_LINE]) public class InsertCompletedLiteralAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.INSERT override val argumentType: Argument.Type = Argument.Type.DIGRAPH diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertDeleteInsertedTextAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertDeleteInsertedTextAction.kt index 24e932169..175aaf13e 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertDeleteInsertedTextAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertDeleteInsertedTextAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.insert +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -22,6 +24,7 @@ import com.maddyhome.idea.vim.handler.ChangeEditorActionHandler import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["<C-U>"], modes = [Mode.INSERT]) public class InsertDeleteInsertedTextAction : ChangeEditorActionHandler.ForEachCaret() { override val type: Command.Type = Command.Type.INSERT diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertDeletePreviousWordAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertDeletePreviousWordAction.kt index eaf423a75..44009b234 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertDeletePreviousWordAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertDeletePreviousWordAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.insert +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -22,6 +24,7 @@ import com.maddyhome.idea.vim.handler.Motion.AbsoluteOffset import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["<C-W>"], modes = [Mode.INSERT]) public class InsertDeletePreviousWordAction : ChangeEditorActionHandler.ForEachCaret() { override val type: Command.Type = Command.Type.INSERT diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertEnterAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertEnterAction.kt index d30c3f7cc..529f143f6 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertEnterAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertEnterAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.insert +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -18,6 +20,7 @@ import com.maddyhome.idea.vim.handler.VimActionHandler import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["<C-M>", "<CR>"], modes = [Mode.INSERT]) public class InsertEnterAction : VimActionHandler.ForEachCaret() { override val type: Command.Type = Command.Type.INSERT diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertExitModeAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertExitModeAction.kt index ffaa68c32..225c70d5d 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertExitModeAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertExitModeAction.kt @@ -7,12 +7,15 @@ */ package com.maddyhome.idea.vim.action.change.insert +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.command.Command import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.VimActionHandler +@CommandOrMotion(keys = ["<C-[>", "<C-C>", "<Esc>"], modes = [Mode.INSERT]) public class InsertExitModeAction : VimActionHandler.SingleExecution() { // Note that hitting Escape can insert text when exiting insert mode after visual block mode. // If the editor is read-only, we'll get a "This view is read-only" tooltip. However, we should only enter insert diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertInsertAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertInsertAction.kt index efd7d0574..224bfbcea 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertInsertAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertInsertAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.insert +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.command.Command @@ -17,6 +19,7 @@ import com.maddyhome.idea.vim.helper.enumSetOf import com.maddyhome.idea.vim.helper.vimStateMachine import java.util.* +@CommandOrMotion(keys = ["<Insert>"], modes = [Mode.INSERT]) public class InsertInsertAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.INSERT diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertLineStartAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertLineStartAction.kt index e3f7e3d7b..598abae53 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertLineStartAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertLineStartAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.insert +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -18,6 +20,7 @@ import com.maddyhome.idea.vim.handler.ChangeEditorActionHandler import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["gI"], modes = [Mode.NORMAL]) public class InsertLineStartAction : ChangeEditorActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.INSERT diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertNewLineBelowAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertNewLineBelowAction.kt index 300ce7f6f..5aafad6cc 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertNewLineBelowAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertNewLineBelowAction.kt @@ -7,6 +7,7 @@ */ package com.maddyhome.idea.vim.action.change.insert +import com.intellij.vim.annotations.CommandOrMotion import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -21,6 +22,7 @@ import com.maddyhome.idea.vim.handler.ChangeEditorActionHandler import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["o"], modes = [com.intellij.vim.annotations.Mode.NORMAL]) public class InsertNewLineBelowAction : ChangeEditorActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.INSERT @@ -38,6 +40,7 @@ public class InsertNewLineBelowAction : ChangeEditorActionHandler.SingleExecutio } } +@CommandOrMotion(keys = ["O"], modes = [com.intellij.vim.annotations.Mode.NORMAL]) public class InsertNewLineAboveAction : ChangeEditorActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.INSERT diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertPreviousInsertAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertPreviousInsertAction.kt index 29470d654..5b4cedf77 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertPreviousInsertAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertPreviousInsertAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.insert +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.action.ComplicatedKeysAction import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor @@ -18,6 +20,7 @@ import com.maddyhome.idea.vim.handler.ChangeEditorActionHandler import java.awt.event.KeyEvent import javax.swing.KeyStroke +@CommandOrMotion(keys = ["<C-A>"], modes = [Mode.INSERT]) public class InsertPreviousInsertAction : ChangeEditorActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.INSERT @@ -32,6 +35,8 @@ public class InsertPreviousInsertAction : ChangeEditorActionHandler.SingleExecut } } +// TODO is C-S-2 needed? +@CommandOrMotion(keys = ["C-@", "<C-S-2>"], modes = [Mode.INSERT]) public class InsertPreviousInsertExitAction : ChangeEditorActionHandler.SingleExecution(), ComplicatedKeysAction { override val keyStrokesSet: Set<List<KeyStroke>> = setOf( listOf(KeyStroke.getKeyStroke(KeyEvent.VK_2, KeyEvent.CTRL_DOWN_MASK or KeyEvent.SHIFT_DOWN_MASK)), diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertRegisterAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertRegisterAction.kt index ca0966be7..415c3d151 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertRegisterAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertRegisterAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.insert +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -21,6 +23,7 @@ import com.maddyhome.idea.vim.put.PutData import com.maddyhome.idea.vim.register.Register import com.maddyhome.idea.vim.vimscript.model.Script +@CommandOrMotion(keys = ["<C-R>"], modes = [Mode.INSERT]) public class InsertRegisterAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_SELF_SYNCHRONIZED diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertSingleCommandAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertSingleCommandAction.kt index dd2fe2527..878ece40e 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertSingleCommandAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/InsertSingleCommandAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.insert +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -17,6 +19,7 @@ import com.maddyhome.idea.vim.handler.VimActionHandler import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["<C-O>"], modes = [Mode.INSERT]) public class InsertSingleCommandAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.INSERT diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/VisualBlockAppendAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/VisualBlockAppendAction.kt index e8168a5e1..8b470cd81 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/VisualBlockAppendAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/VisualBlockAppendAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.insert +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -23,6 +25,7 @@ import java.util.* /** * @author vlan */ +@CommandOrMotion(keys = ["A"], modes = [Mode.VISUAL]) public class VisualBlockAppendAction : VisualOperatorActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.INSERT diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/VisualBlockInsertAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/VisualBlockInsertAction.kt index b968a3414..291c592da 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/VisualBlockInsertAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/insert/VisualBlockInsertAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.insert +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -23,6 +25,7 @@ import java.util.* /** * @author vlan */ +@CommandOrMotion(keys = ["I"], modes = [Mode.VISUAL]) public class VisualBlockInsertAction : VisualOperatorActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.INSERT diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/shift/AutoIndentMotionAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/shift/AutoIndentMotionAction.kt index 64012922d..8b4877403 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/shift/AutoIndentMotionAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/shift/AutoIndentMotionAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.change.shift +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -20,6 +22,7 @@ import com.maddyhome.idea.vim.handler.ChangeEditorActionHandler /** * @author Aleksey Lagoshin */ +@CommandOrMotion(keys = ["="], modes = [Mode.NORMAL]) public class AutoIndentMotionAction : ChangeEditorActionHandler.ForEachCaret(), DuplicableOperatorAction { override val type: Command.Type = Command.Type.CHANGE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/shift/ShiftLeft.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/shift/ShiftLeft.kt index 3dce20b5d..4e2711a3c 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/shift/ShiftLeft.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/shift/ShiftLeft.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.change.shift +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -23,6 +25,7 @@ import com.maddyhome.idea.vim.handler.VisualOperatorActionHandler import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["<C-D>"], modes = [Mode.INSERT]) public class ShiftLeftLinesAction : ChangeEditorActionHandler.ForEachCaret() { override val type: Command.Type = Command.Type.INSERT @@ -42,6 +45,7 @@ public class ShiftLeftLinesAction : ChangeEditorActionHandler.ForEachCaret() { } } +@CommandOrMotion(keys = ["<"], modes = [Mode.NORMAL]) public class ShiftLeftMotionAction : ChangeEditorActionHandler.ForEachCaret(), DuplicableOperatorAction { override val type: Command.Type = Command.Type.CHANGE @@ -63,6 +67,7 @@ public class ShiftLeftMotionAction : ChangeEditorActionHandler.ForEachCaret(), D } } +@CommandOrMotion(keys = ["<"], modes = [Mode.VISUAL]) public class ShiftLeftVisualAction : VisualOperatorActionHandler.ForEachCaret() { override val type: Command.Type = Command.Type.CHANGE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/shift/ShiftRight.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/shift/ShiftRight.kt index 95af217f2..1680e8cc1 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/shift/ShiftRight.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/change/shift/ShiftRight.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.change.shift +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -23,6 +25,7 @@ import com.maddyhome.idea.vim.handler.VisualOperatorActionHandler import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["<C-T>"], modes = [Mode.INSERT]) public class ShiftRightLinesAction : ChangeEditorActionHandler.ForEachCaret() { override val type: Command.Type = Command.Type.INSERT @@ -42,6 +45,7 @@ public class ShiftRightLinesAction : ChangeEditorActionHandler.ForEachCaret() { } } +@CommandOrMotion(keys = [">"], modes = [Mode.NORMAL]) public class ShiftRightMotionAction : ChangeEditorActionHandler.ForEachCaret(), DuplicableOperatorAction { override val type: Command.Type = Command.Type.CHANGE @@ -63,6 +67,7 @@ public class ShiftRightMotionAction : ChangeEditorActionHandler.ForEachCaret(), } } +@CommandOrMotion(keys = [">"], modes = [Mode.VISUAL]) public class ShiftRightVisualAction : VisualOperatorActionHandler.ForEachCaret() { override val type: Command.Type = Command.Type.CHANGE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/copy/PutTextAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/copy/PutTextAction.kt index 74dcc72f7..8c2cd8606 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/copy/PutTextAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/copy/PutTextAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.copy +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -68,11 +70,20 @@ public sealed class PutTextBaseAction( } } +@CommandOrMotion(keys = ["p"], modes = [Mode.NORMAL]) public class PutTextAfterCursorAction : PutTextBaseAction(insertTextBeforeCaret = false, indent = true, caretAfterInsertedText = false) + +@CommandOrMotion(keys = ["gp"], modes = [Mode.NORMAL]) public class PutTextAfterCursorActionMoveCursor : PutTextBaseAction(insertTextBeforeCaret = false, indent = true, caretAfterInsertedText = true) +@CommandOrMotion(keys = ["]p"], modes = [Mode.NORMAL]) public class PutTextAfterCursorNoIndentAction : PutTextBaseAction(insertTextBeforeCaret = false, indent = false, caretAfterInsertedText = false) + +@CommandOrMotion(keys = ["[P", "]P", "[p"], modes = [Mode.NORMAL]) public class PutTextBeforeCursorNoIndentAction : PutTextBaseAction(insertTextBeforeCaret = true, indent = false, caretAfterInsertedText = false) +@CommandOrMotion(keys = ["P"], modes = [Mode.NORMAL]) public class PutTextBeforeCursorAction : PutTextBaseAction(insertTextBeforeCaret = true, indent = true, caretAfterInsertedText = false) + +@CommandOrMotion(keys = ["gP"], modes = [Mode.NORMAL]) public class PutTextBeforeCursorActionMoveCursor : PutTextBaseAction(insertTextBeforeCaret = true, indent = true, caretAfterInsertedText = true) diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/copy/PutVisualTextAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/copy/PutVisualTextAction.kt index 7bfe439eb..0f482db9e 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/copy/PutVisualTextAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/copy/PutVisualTextAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.copy +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -71,11 +73,20 @@ public sealed class PutVisualTextBaseAction( } } +@CommandOrMotion(keys = ["P"], modes = [Mode.VISUAL]) public class PutVisualTextBeforeCursorAction : PutVisualTextBaseAction(insertTextBeforeCaret = true, indent = true, caretAfterInsertedText = false, modifyRegister = false) + +@CommandOrMotion(keys = ["p"], modes = [Mode.VISUAL]) public class PutVisualTextAfterCursorAction : PutVisualTextBaseAction(insertTextBeforeCaret = false, indent = true, caretAfterInsertedText = false) +@CommandOrMotion(keys = ["]P", "[P"], modes = [Mode.VISUAL]) public class PutVisualTextBeforeCursorNoIndentAction : PutVisualTextBaseAction(insertTextBeforeCaret = true, indent = false, caretAfterInsertedText = false) + +@CommandOrMotion(keys = ["[p", "]p"], modes = [Mode.VISUAL]) public class PutVisualTextAfterCursorNoIndentAction : PutVisualTextBaseAction(insertTextBeforeCaret = false, indent = false, caretAfterInsertedText = false) +@CommandOrMotion(keys = ["gP"], modes = [Mode.VISUAL]) public class PutVisualTextBeforeCursorMoveCursorAction : PutVisualTextBaseAction(insertTextBeforeCaret = true, indent = true, caretAfterInsertedText = true) + +@CommandOrMotion(keys = ["gp"], modes = [Mode.VISUAL]) public class PutVisualTextAfterCursorMoveCursorAction : PutVisualTextBaseAction(insertTextBeforeCaret = false, indent = true, caretAfterInsertedText = true) diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/copy/YankLineAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/copy/YankLineAction.kt index 877cdec53..301b476a3 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/copy/YankLineAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/copy/YankLineAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.copy +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -15,6 +17,7 @@ import com.maddyhome.idea.vim.command.Command import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.VimActionHandler +@CommandOrMotion(keys = ["Y"], modes = [Mode.NORMAL]) public class YankLineAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.COPY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/copy/YankMotionAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/copy/YankMotionAction.kt index 6c058582d..20255a4bf 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/copy/YankMotionAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/copy/YankMotionAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.copy +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -16,6 +18,7 @@ import com.maddyhome.idea.vim.command.DuplicableOperatorAction import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.VimActionHandler +@CommandOrMotion(keys = ["y"], modes = [Mode.NORMAL]) public class YankMotionAction : VimActionHandler.SingleExecution(), DuplicableOperatorAction { override val type: Command.Type = Command.Type.COPY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/copy/YankVisualAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/copy/YankVisualAction.kt index 9ad748f96..6befeba31 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/copy/YankVisualAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/copy/YankVisualAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.copy +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -23,6 +25,7 @@ import java.util.* /** * @author vlan */ +@CommandOrMotion(keys = ["y"], modes = [Mode.VISUAL]) public class YankVisualAction : VisualOperatorActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.COPY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/copy/YankVisualLinesAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/copy/YankVisualLinesAction.kt index ffd719655..db4d4da75 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/copy/YankVisualLinesAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/copy/YankVisualLinesAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.copy +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -24,6 +26,7 @@ import java.util.* /** * @author vlan */ +@CommandOrMotion(keys = ["Y"], modes = [Mode.VISUAL]) public class YankVisualLinesAction : VisualOperatorActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.COPY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/file/FileGetAsciiAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/file/FileGetAsciiAction.kt index 1334b250a..f64751ddf 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/file/FileGetAsciiAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/file/FileGetAsciiAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.file +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -14,6 +16,7 @@ import com.maddyhome.idea.vim.command.Command import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.VimActionHandler +@CommandOrMotion(keys = ["ga"], modes = [Mode.NORMAL]) public class FileGetAsciiAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/file/FileGetFileInfoAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/file/FileGetFileInfoAction.kt index d97d710e2..21e8bf245 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/file/FileGetFileInfoAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/file/FileGetFileInfoAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.file +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -14,6 +16,7 @@ import com.maddyhome.idea.vim.command.Command import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.VimActionHandler +@CommandOrMotion(keys = ["<C-G>"], modes = [Mode.NORMAL]) public class FileGetFileInfoAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/file/FileGetHexAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/file/FileGetHexAction.kt index a5bd93720..b50068c86 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/file/FileGetHexAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/file/FileGetHexAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.file +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -14,6 +16,7 @@ import com.maddyhome.idea.vim.command.Command import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.VimActionHandler +@CommandOrMotion(keys = ["g8"], modes = [Mode.NORMAL]) public class FileGetHexAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/file/FileGetLocationInfoAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/file/FileGetLocationInfoAction.kt index c0725c7d5..f74bf2b4b 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/file/FileGetLocationInfoAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/file/FileGetLocationInfoAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.file +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -14,6 +16,7 @@ import com.maddyhome.idea.vim.command.Command import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.VimActionHandler +@CommandOrMotion(keys = ["g<C-G>"], modes = [Mode.NORMAL, Mode.VISUAL]) public class FileGetLocationInfoAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/file/FilePreviousAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/file/FilePreviousAction.kt index 2b69d1766..6a4cbf920 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/file/FilePreviousAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/file/FilePreviousAction.kt @@ -7,6 +7,7 @@ */ package com.maddyhome.idea.vim.action.file +import com.intellij.vim.annotations.CommandOrMotion import com.maddyhome.idea.vim.action.ComplicatedKeysAction import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor @@ -17,6 +18,7 @@ import com.maddyhome.idea.vim.handler.VimActionHandler import java.awt.event.KeyEvent import javax.swing.KeyStroke +@CommandOrMotion(keys = ["<C-^>"], modes = [com.intellij.vim.annotations.Mode.NORMAL]) public class FilePreviousAction : VimActionHandler.SingleExecution(), ComplicatedKeysAction { override val keyStrokesSet: Set<List<KeyStroke>> = setOf( listOf(KeyStroke.getKeyStroke(KeyEvent.VK_6, KeyEvent.CTRL_DOWN_MASK or KeyEvent.SHIFT_DOWN_MASK)), diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/file/FileSaveCloseAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/file/FileSaveCloseAction.kt index 3621d1f35..47115331a 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/file/FileSaveCloseAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/file/FileSaveCloseAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.file +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -14,6 +16,7 @@ import com.maddyhome.idea.vim.command.Command import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.VimActionHandler +@CommandOrMotion(keys = ["ZQ", "ZZ"], modes = [Mode.NORMAL]) public class FileSaveCloseAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_WRITABLE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/fold/FoldActions.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/fold/FoldActions.kt index baf6c21b9..b3428f6c2 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/fold/FoldActions.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/fold/FoldActions.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.fold +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -15,6 +17,7 @@ import com.maddyhome.idea.vim.command.Command import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.VimActionHandler +@CommandOrMotion(keys = ["zM"], modes = [Mode.NORMAL, Mode.VISUAL]) public class VimCollapseAllRegions : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY @@ -30,6 +33,7 @@ public class VimCollapseAllRegions : VimActionHandler.SingleExecution() { } } +@CommandOrMotion(keys = ["zc"], modes = [Mode.NORMAL, Mode.VISUAL]) public class VimCollapseRegion : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY @@ -45,6 +49,7 @@ public class VimCollapseRegion : VimActionHandler.SingleExecution() { } } +@CommandOrMotion(keys = ["zC"], modes = [Mode.NORMAL, Mode.VISUAL]) public class VimCollapseRegionRecursively : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY @@ -59,6 +64,7 @@ public class VimCollapseRegionRecursively : VimActionHandler.SingleExecution() { } } +@CommandOrMotion(keys = ["zR"], modes = [Mode.NORMAL, Mode.VISUAL]) public class VimExpandAllRegions : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY @@ -74,6 +80,7 @@ public class VimExpandAllRegions : VimActionHandler.SingleExecution() { } } +@CommandOrMotion(keys = ["zo"], modes = [Mode.NORMAL, Mode.VISUAL]) public class VimExpandRegion : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY @@ -89,6 +96,7 @@ public class VimExpandRegion : VimActionHandler.SingleExecution() { } } +@CommandOrMotion(keys = ["zO"], modes = [Mode.NORMAL, Mode.VISUAL]) public class VimExpandRegionRecursively : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/macro/PlaybackRegisterAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/macro/PlaybackRegisterAction.kt index fad01a572..c3f2f60ce 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/macro/PlaybackRegisterAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/macro/PlaybackRegisterAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.macro +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -17,6 +19,7 @@ import com.maddyhome.idea.vim.ex.ExException import com.maddyhome.idea.vim.handler.VimActionHandler import com.maddyhome.idea.vim.register.RegisterConstants.LAST_COMMAND_REGISTER +@CommandOrMotion(keys = ["@"], modes = [Mode.NORMAL]) public class PlaybackRegisterAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_SELF_SYNCHRONIZED diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/macro/ToggleRecordingAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/macro/ToggleRecordingAction.kt index e78b74bd2..e5986b385 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/macro/ToggleRecordingAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/macro/ToggleRecordingAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.macro +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -16,6 +18,7 @@ import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.VimActionHandler import com.maddyhome.idea.vim.helper.vimStateMachine +@CommandOrMotion(keys = ["q"], modes = [Mode.NORMAL, Mode.VISUAL]) public class ToggleRecordingAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/gn/GnNextTextObject.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/gn/GnNextTextObject.kt index 3e21c3dd2..6863df341 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/gn/GnNextTextObject.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/gn/GnNextTextObject.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.gn +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -20,6 +22,7 @@ import com.maddyhome.idea.vim.handler.TextObjectActionHandler * @author Alex Plate */ +@CommandOrMotion(keys = ["gn"], modes = [Mode.OP_PENDING]) public class GnNextTextObject : TextObjectActionHandler() { override val visualType: TextObjectVisualType = TextObjectVisualType.CHARACTER_WISE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/gn/GnPreviousTextObject.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/gn/GnPreviousTextObject.kt index b6523b067..9a53f6a83 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/gn/GnPreviousTextObject.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/gn/GnPreviousTextObject.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.gn +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -20,6 +22,7 @@ import com.maddyhome.idea.vim.handler.TextObjectActionHandler * @author Alex Plate */ +@CommandOrMotion(keys = ["gN"], modes = [Mode.OP_PENDING]) public class GnPreviousTextObject : TextObjectActionHandler() { override val visualType: TextObjectVisualType = TextObjectVisualType.CHARACTER_WISE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/gn/VisualSelectSearch.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/gn/VisualSelectSearch.kt index 904721d95..1f38e1372 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/gn/VisualSelectSearch.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/gn/VisualSelectSearch.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.gn +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -23,6 +25,7 @@ import com.maddyhome.idea.vim.helper.noneOfEnum import java.util.* import kotlin.math.max +@CommandOrMotion(keys = ["gn"], modes = [Mode.NORMAL, Mode.VISUAL]) public class VisualSelectNextSearch : MotionActionHandler.SingleExecution() { override val flags: EnumSet<CommandFlags> = noneOfEnum() @@ -38,6 +41,7 @@ public class VisualSelectNextSearch : MotionActionHandler.SingleExecution() { override val motionType: MotionType = MotionType.EXCLUSIVE } +@CommandOrMotion(keys = ["gN"], modes = [Mode.NORMAL, Mode.VISUAL]) public class VisualSelectPreviousSearch : MotionActionHandler.SingleExecution() { override val flags: EnumSet<CommandFlags> = noneOfEnum() diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionArrowLeftAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionArrowLeftAction.kt index a1b7b71d6..fec02db50 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionArrowLeftAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionArrowLeftAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.leftright +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.action.ComplicatedKeysAction import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret @@ -22,6 +24,7 @@ import com.maddyhome.idea.vim.handler.NonShiftedSpecialKeyHandler import java.awt.event.KeyEvent import javax.swing.KeyStroke +@CommandOrMotion(keys = ["<Left>", "<kLeft>"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionArrowLeftAction : NonShiftedSpecialKeyHandler(), ComplicatedKeysAction { override val motionType: MotionType = MotionType.EXCLUSIVE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionArrowRightAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionArrowRightAction.kt index 2cb7cb63e..fdd5204c4 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionArrowRightAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionArrowRightAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.leftright +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.action.ComplicatedKeysAction import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret @@ -24,6 +26,7 @@ import com.maddyhome.idea.vim.helper.usesVirtualSpace import java.awt.event.KeyEvent import javax.swing.KeyStroke +@CommandOrMotion(keys = ["<Right>", "<kRight>"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionArrowRightAction : NonShiftedSpecialKeyHandler(), ComplicatedKeysAction { override val motionType: MotionType = MotionType.EXCLUSIVE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionBackspaceAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionBackspaceAction.kt index 0040a43ba..de61c986f 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionBackspaceAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionBackspaceAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.leftright +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -18,6 +20,7 @@ import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.Motion import com.maddyhome.idea.vim.handler.MotionActionHandler +@CommandOrMotion(keys = ["<BS>", "<C-H>"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionBackspaceAction : MotionActionHandler.ForEachCaret() { override fun getOffset( editor: VimEditor, @@ -33,6 +36,7 @@ public class MotionBackspaceAction : MotionActionHandler.ForEachCaret() { override val motionType: MotionType = MotionType.EXCLUSIVE } +@CommandOrMotion(keys = ["<Space>"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionSpaceAction : MotionActionHandler.ForEachCaret() { override fun getOffset( editor: VimEditor, diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionColumnAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionColumnAction.kt index edbfe31b7..70e4747b3 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionColumnAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionColumnAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.leftright +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -17,6 +19,7 @@ import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.Motion import com.maddyhome.idea.vim.handler.MotionActionHandler +@CommandOrMotion(keys = ["|"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionColumnAction : MotionActionHandler.ForEachCaret() { override val motionType: MotionType = MotionType.EXCLUSIVE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionEndAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionEndAction.kt index 6a8ff87c6..755421be3 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionEndAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionEndAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.leftright +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -23,6 +25,7 @@ import com.maddyhome.idea.vim.state.mode.isInsertionAllowed import com.maddyhome.idea.vim.state.mode.inSelectMode import com.maddyhome.idea.vim.state.mode.inVisualMode +@CommandOrMotion(keys = ["<End>"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.SELECT, Mode.OP_PENDING]) public class MotionEndAction : NonShiftedSpecialKeyHandler() { override val motionType: MotionType = MotionType.INCLUSIVE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionFirstColumnAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionFirstColumnAction.kt index d8944f477..615259734 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionFirstColumnAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionFirstColumnAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.leftright +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -22,6 +24,7 @@ import com.maddyhome.idea.vim.handler.toMotion import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["0"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionFirstColumnAction : MotionActionHandler.ForEachCaret() { override val motionType: MotionType = MotionType.EXCLUSIVE @@ -36,6 +39,8 @@ public class MotionFirstColumnAction : MotionActionHandler.ForEachCaret() { } } +// TODO we have the same command but for NX modes +@CommandOrMotion(keys = ["<Home>"], modes = [Mode.INSERT]) public class MotionFirstColumnInsertModeAction : MotionActionHandler.ForEachCaret() { override val motionType: MotionType = MotionType.EXCLUSIVE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionFirstNonSpaceAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionFirstNonSpaceAction.kt index a15f7165e..628423fc7 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionFirstNonSpaceAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionFirstNonSpaceAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.leftright +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -18,6 +20,7 @@ import com.maddyhome.idea.vim.handler.Motion import com.maddyhome.idea.vim.handler.MotionActionHandler import com.maddyhome.idea.vim.handler.toMotion +@CommandOrMotion(keys = ["^"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionFirstNonSpaceAction : MotionActionHandler.ForEachCaret() { override fun getOffset( editor: VimEditor, diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionFirstScreenColumnAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionFirstScreenColumnAction.kt index 6e3a0a47f..60f0ea8bd 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionFirstScreenColumnAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionFirstScreenColumnAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.leftright +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -17,6 +19,7 @@ import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.Motion import com.maddyhome.idea.vim.handler.MotionActionHandler +@CommandOrMotion(keys = ["g0", "g<Home>"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionFirstScreenColumnAction : MotionActionHandler.ForEachCaret() { override fun getOffset( editor: VimEditor, diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionFirstScreenNonSpaceAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionFirstScreenNonSpaceAction.kt index 9dd97a5b7..8a61432e5 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionFirstScreenNonSpaceAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionFirstScreenNonSpaceAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.leftright +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -18,6 +20,7 @@ import com.maddyhome.idea.vim.handler.Motion import com.maddyhome.idea.vim.handler.MotionActionHandler import com.maddyhome.idea.vim.handler.toMotion +@CommandOrMotion(keys = ["g^"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionFirstScreenNonSpaceAction : MotionActionHandler.ForEachCaret() { override fun getOffset( editor: VimEditor, diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionHomeAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionHomeAction.kt index b56e1109d..16cafe621 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionHomeAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionHomeAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.leftright +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -19,6 +21,7 @@ import com.maddyhome.idea.vim.handler.Motion import com.maddyhome.idea.vim.handler.NonShiftedSpecialKeyHandler import com.maddyhome.idea.vim.handler.toMotionOrError +@CommandOrMotion(keys = ["<Home>"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.SELECT]) public class MotionHomeAction : NonShiftedSpecialKeyHandler() { override val motionType: MotionType = MotionType.EXCLUSIVE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionLastColumnAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionLastColumnAction.kt index cc8fc1e17..c3eab559d 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionLastColumnAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionLastColumnAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.leftright +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -25,10 +27,12 @@ import com.maddyhome.idea.vim.state.mode.inVisualMode import com.maddyhome.idea.vim.helper.isEndAllowed import java.util.* +@CommandOrMotion(keys = ["<End>"], modes = [Mode.INSERT]) public class MotionLastColumnInsertAction : MotionLastColumnAction() { override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_SAVE_STROKE) } +@CommandOrMotion(keys = ["$"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public open class MotionLastColumnAction : MotionActionHandler.ForEachCaret() { override val motionType: MotionType = MotionType.INCLUSIVE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionLastMatchCharAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionLastMatchCharAction.kt index d39903d9b..a7cb0e2e2 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionLastMatchCharAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionLastMatchCharAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.leftright +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -17,7 +19,10 @@ import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.Motion import com.maddyhome.idea.vim.handler.MotionActionHandler +@CommandOrMotion(keys = [";"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionLastMatchCharAction : MotionLastMatchCharActionBase(MotionType.INCLUSIVE, reverse = false) + +@CommandOrMotion(keys = [","], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionLastMatchCharReverseAction : MotionLastMatchCharActionBase(MotionType.EXCLUSIVE, reverse = true) public sealed class MotionLastMatchCharActionBase(defaultMotionType: MotionType, private val reverse: Boolean) : diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionLastNonSpaceAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionLastNonSpaceAction.kt index 29441929f..d84c9fdeb 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionLastNonSpaceAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionLastNonSpaceAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.leftright +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -18,6 +20,7 @@ import com.maddyhome.idea.vim.handler.Motion import com.maddyhome.idea.vim.handler.MotionActionHandler import com.maddyhome.idea.vim.handler.toMotion +@CommandOrMotion(keys = ["g_"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionLastNonSpaceAction : MotionActionHandler.ForEachCaret() { override fun getOffset( editor: VimEditor, diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionLastScreenColumnAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionLastScreenColumnAction.kt index 896ff17da..3a177482e 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionLastScreenColumnAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionLastScreenColumnAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.leftright +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -21,6 +23,7 @@ import com.maddyhome.idea.vim.handler.MotionActionHandler import com.maddyhome.idea.vim.state.mode.isInsertionAllowed import com.maddyhome.idea.vim.state.mode.inVisualMode +@CommandOrMotion(keys = ["g$", "g<End>"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionLastScreenColumnAction : MotionActionHandler.ForEachCaret() { override fun getOffset( editor: VimEditor, diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionLeftAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionLeftAction.kt index dca7405f4..853a50f49 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionLeftAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionLeftAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.leftright +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.action.ComplicatedKeysAction import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret @@ -22,6 +24,7 @@ import com.maddyhome.idea.vim.handler.MotionActionHandler import java.awt.event.KeyEvent import javax.swing.KeyStroke +@CommandOrMotion(keys = ["h"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionLeftAction : MotionActionHandler.ForEachCaret() { override val motionType: MotionType = MotionType.EXCLUSIVE @@ -38,6 +41,7 @@ public class MotionLeftAction : MotionActionHandler.ForEachCaret() { } } +@CommandOrMotion(keys = ["<Left>", "<kLeft>"], modes = [Mode.INSERT]) public class MotionLeftInsertModeAction : MotionActionHandler.ForEachCaret(), ComplicatedKeysAction { override val motionType: MotionType = MotionType.EXCLUSIVE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionMiddleColumnAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionMiddleColumnAction.kt index 188ced08d..6a9849c9b 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionMiddleColumnAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionMiddleColumnAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.leftright +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -17,6 +19,7 @@ import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.Motion import com.maddyhome.idea.vim.handler.MotionActionHandler +@CommandOrMotion(keys = ["gm"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionMiddleColumnAction : MotionActionHandler.ForEachCaret() { override fun getOffset( editor: VimEditor, diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionRightAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionRightAction.kt index db4ead142..59337bd32 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionRightAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionRightAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.leftright +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.action.ComplicatedKeysAction import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret @@ -24,6 +26,7 @@ import com.maddyhome.idea.vim.helper.usesVirtualSpace import java.awt.event.KeyEvent import javax.swing.KeyStroke +@CommandOrMotion(keys = ["l"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionRightAction : MotionActionHandler.ForEachCaret() { override val motionType: MotionType = MotionType.EXCLUSIVE @@ -41,6 +44,7 @@ public class MotionRightAction : MotionActionHandler.ForEachCaret() { } } +@CommandOrMotion(keys = ["<Right>", "<kRight>"], modes = [Mode.INSERT]) public class MotionRightInsertAction : MotionActionHandler.ForEachCaret(), ComplicatedKeysAction { override val motionType: MotionType = MotionType.EXCLUSIVE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionShiftEndAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionShiftEndAction.kt index 4797b464c..8f9aaf54d 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionShiftEndAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionShiftEndAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.leftright +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -20,6 +22,7 @@ import com.maddyhome.idea.vim.state.mode.isInsertionAllowed import com.maddyhome.idea.vim.state.mode.inSelectMode import com.maddyhome.idea.vim.state.mode.inVisualMode +@CommandOrMotion(keys = ["<S-End>"], modes = [Mode.INSERT, Mode.NORMAL, Mode.VISUAL, Mode.SELECT]) public class MotionShiftEndAction : ShiftedSpecialKeyHandler() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionShiftHomeAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionShiftHomeAction.kt index 7195ae701..5ffe2d1c7 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionShiftHomeAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionShiftHomeAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.leftright +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -18,6 +20,7 @@ import com.maddyhome.idea.vim.handler.ShiftedSpecialKeyHandler /** * @author Alex Plate */ +@CommandOrMotion(keys = ["<S-Home>"], modes = [Mode.INSERT, Mode.NORMAL, Mode.VISUAL, Mode.SELECT]) public class MotionShiftHomeAction : ShiftedSpecialKeyHandler() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionShiftLeftAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionShiftLeftAction.kt index 3250fdad0..2dab7d54e 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionShiftLeftAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionShiftLeftAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.leftright +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -20,6 +22,7 @@ import com.maddyhome.idea.vim.handler.ShiftedArrowKeyHandler * @author Alex Plate */ +@CommandOrMotion(keys = ["<S-Left>"], modes = [Mode.INSERT, Mode.NORMAL, Mode.VISUAL, Mode.SELECT]) public class MotionShiftLeftAction : ShiftedArrowKeyHandler(true) { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionShiftRightAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionShiftRightAction.kt index d21d1d60b..ab9fbe537 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionShiftRightAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/MotionShiftRightAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.leftright +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -21,6 +23,7 @@ import com.maddyhome.idea.vim.handler.ShiftedArrowKeyHandler * @author Alex Plate */ +@CommandOrMotion(keys = ["<S-Right>"], modes = [Mode.INSERT, Mode.NORMAL, Mode.VISUAL, Mode.SELECT]) public class MotionShiftRightAction : ShiftedArrowKeyHandler(true) { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/TillCharacterMotion.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/TillCharacterMotion.kt index a9ae43610..17b0ff0af 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/TillCharacterMotion.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/leftright/TillCharacterMotion.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.leftright +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -30,9 +32,16 @@ public enum class TillCharacterMotionType { LAST_SMALL_T, } +@CommandOrMotion(keys = ["F"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionLeftMatchCharAction : TillCharacterMotion(Direction.BACKWARDS, TillCharacterMotionType.LAST_F, false) + +@CommandOrMotion(keys = ["T"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionLeftTillMatchCharAction : TillCharacterMotion(Direction.BACKWARDS, TillCharacterMotionType.LAST_T, true) + +@CommandOrMotion(keys = ["f"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionRightMatchCharAction : TillCharacterMotion(Direction.FORWARDS, TillCharacterMotionType.LAST_SMALL_F, false) + +@CommandOrMotion(keys = ["t"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionRightTillMatchCharAction : TillCharacterMotion(Direction.FORWARDS, TillCharacterMotionType.LAST_SMALL_T, true) diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/mark/MotionGotoFileMarkAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/mark/MotionGotoFileMarkAction.kt index 41e39d0c0..6b6b9e969 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/mark/MotionGotoFileMarkAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/mark/MotionGotoFileMarkAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.mark +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -20,6 +22,7 @@ import com.maddyhome.idea.vim.handler.Motion import com.maddyhome.idea.vim.handler.MotionActionHandler import java.util.* +@CommandOrMotion(keys = ["`"], modes = [Mode.VISUAL, Mode.OP_PENDING]) public class MotionGotoFileMarkAction : MotionActionHandler.ForEachCaret() { override val motionType: MotionType = MotionType.EXCLUSIVE @@ -41,6 +44,7 @@ public class MotionGotoFileMarkAction : MotionActionHandler.ForEachCaret() { } } +@CommandOrMotion(keys = ["g`"], modes = [Mode.VISUAL, Mode.OP_PENDING]) public class MotionGotoFileMarkNoSaveJumpAction : MotionActionHandler.ForEachCaret() { override val motionType: MotionType = MotionType.EXCLUSIVE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/mark/MotionGotoFileMarkLineAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/mark/MotionGotoFileMarkLineAction.kt index faa3ce7f8..ff0b072f3 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/mark/MotionGotoFileMarkLineAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/mark/MotionGotoFileMarkLineAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.mark +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -20,6 +22,7 @@ import com.maddyhome.idea.vim.handler.Motion import com.maddyhome.idea.vim.handler.MotionActionHandler import java.util.* +@CommandOrMotion(keys = ["'"], modes = [Mode.VISUAL, Mode.OP_PENDING]) public class MotionGotoFileMarkLineAction : MotionActionHandler.ForEachCaret() { override val motionType: MotionType = MotionType.LINE_WISE @@ -41,6 +44,7 @@ public class MotionGotoFileMarkLineAction : MotionActionHandler.ForEachCaret() { } } +@CommandOrMotion(keys = ["g'"], modes = [Mode.VISUAL, Mode.OP_PENDING]) public class MotionGotoFileMarkLineNoSaveJumpAction : MotionActionHandler.ForEachCaret() { override val motionType: MotionType = MotionType.LINE_WISE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/mark/MotionGotoMarkAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/mark/MotionGotoMarkAction.kt index 6ffba7bd0..3d8273739 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/mark/MotionGotoMarkAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/mark/MotionGotoMarkAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.mark +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -20,6 +22,7 @@ import com.maddyhome.idea.vim.handler.Motion import com.maddyhome.idea.vim.handler.MotionActionHandler import java.util.* +@CommandOrMotion(keys = ["`"], modes = [Mode.NORMAL]) public class MotionGotoMarkAction : MotionActionHandler.ForEachCaret() { override val motionType: MotionType = MotionType.EXCLUSIVE @@ -41,6 +44,7 @@ public class MotionGotoMarkAction : MotionActionHandler.ForEachCaret() { } } +@CommandOrMotion(keys = ["g`"], modes = [Mode.NORMAL]) public class MotionGotoMarkNoSaveJumpAction : MotionActionHandler.ForEachCaret() { override val motionType: MotionType = MotionType.EXCLUSIVE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/mark/MotionGotoMarkLineAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/mark/MotionGotoMarkLineAction.kt index 724585bd1..e2db55bde 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/mark/MotionGotoMarkLineAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/mark/MotionGotoMarkLineAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.mark +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -20,6 +22,7 @@ import com.maddyhome.idea.vim.handler.Motion import com.maddyhome.idea.vim.handler.MotionActionHandler import java.util.* +@CommandOrMotion(keys = ["'"], modes = [Mode.NORMAL]) public class MotionGotoMarkLineAction : MotionActionHandler.ForEachCaret() { override val motionType: MotionType = MotionType.LINE_WISE @@ -41,6 +44,7 @@ public class MotionGotoMarkLineAction : MotionActionHandler.ForEachCaret() { } } +@CommandOrMotion(keys = ["g'"], modes = [Mode.NORMAL]) public class MotionGotoMarkLineNoSaveJumpAction : MotionActionHandler.ForEachCaret() { override val motionType: MotionType = MotionType.LINE_WISE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/mark/MotionJumpNextAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/mark/MotionJumpNextAction.kt index b5421658d..62dc5c476 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/mark/MotionJumpNextAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/mark/MotionJumpNextAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.mark +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -17,6 +19,7 @@ import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.Motion import com.maddyhome.idea.vim.handler.MotionActionHandler +@CommandOrMotion(keys = ["<C-I>", "<Tab>"], modes = [Mode.NORMAL]) public class MotionJumpNextAction : MotionActionHandler.ForEachCaret() { override fun getOffset( editor: VimEditor, diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/mark/MotionJumpPreviousAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/mark/MotionJumpPreviousAction.kt index 589c68bef..762e9cd9f 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/mark/MotionJumpPreviousAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/mark/MotionJumpPreviousAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.mark +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -17,6 +19,7 @@ import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.Motion import com.maddyhome.idea.vim.handler.MotionActionHandler +@CommandOrMotion(keys = ["<C-O>", "<C-T>"], modes = [Mode.NORMAL]) public class MotionJumpPreviousAction : MotionActionHandler.ForEachCaret() { override fun getOffset( editor: VimEditor, diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/mark/MotionMarkAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/mark/MotionMarkAction.kt index 49ff0d0f2..c52b03b95 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/mark/MotionMarkAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/mark/MotionMarkAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.mark +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -15,6 +17,7 @@ import com.maddyhome.idea.vim.command.Command import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.VimActionHandler +@CommandOrMotion(keys = ["m"], modes = [Mode.NORMAL, Mode.VISUAL]) public class MotionMarkAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/object/MotionAngleAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/object/MotionAngleAction.kt index 1ee6621c7..fbc4b87ff 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/object/MotionAngleAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/object/MotionAngleAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.`object` +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -19,6 +21,7 @@ import com.maddyhome.idea.vim.handler.TextObjectActionHandler import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["i>", "i<lt>"], modes = [Mode.VISUAL, Mode.OP_PENDING]) public class MotionInnerBlockAngleAction : TextObjectActionHandler() { override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_TEXT_BLOCK) @@ -36,6 +39,7 @@ public class MotionInnerBlockAngleAction : TextObjectActionHandler() { } } +@CommandOrMotion(keys = ["iB", "i{", "i}"], modes = [Mode.VISUAL, Mode.OP_PENDING]) public class MotionInnerBlockBraceAction : TextObjectActionHandler() { override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_TEXT_BLOCK) @@ -53,6 +57,7 @@ public class MotionInnerBlockBraceAction : TextObjectActionHandler() { } } +@CommandOrMotion(keys = ["i[", "i]"], modes = [Mode.VISUAL, Mode.OP_PENDING]) public class MotionInnerBlockBracketAction : TextObjectActionHandler() { override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_TEXT_BLOCK) @@ -70,6 +75,7 @@ public class MotionInnerBlockBracketAction : TextObjectActionHandler() { } } +@CommandOrMotion(keys = ["ib", "i(", "i)"], modes = [Mode.VISUAL, Mode.OP_PENDING]) public class MotionInnerBlockParenAction : TextObjectActionHandler() { override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_TEXT_BLOCK) @@ -87,6 +93,7 @@ public class MotionInnerBlockParenAction : TextObjectActionHandler() { } } +@CommandOrMotion(keys = ["a<", "a>"], modes = [Mode.VISUAL, Mode.OP_PENDING]) public class MotionOuterBlockAngleAction : TextObjectActionHandler() { override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_TEXT_BLOCK) @@ -104,6 +111,7 @@ public class MotionOuterBlockAngleAction : TextObjectActionHandler() { } } +@CommandOrMotion(keys = ["aB", "a{", "a}"], modes = [Mode.VISUAL, Mode.OP_PENDING]) public class MotionOuterBlockBraceAction : TextObjectActionHandler() { override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_TEXT_BLOCK) @@ -121,6 +129,7 @@ public class MotionOuterBlockBraceAction : TextObjectActionHandler() { } } +@CommandOrMotion(keys = ["a[", "a]"], modes = [Mode.VISUAL, Mode.OP_PENDING]) public class MotionOuterBlockBracketAction : TextObjectActionHandler() { override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_TEXT_BLOCK) @@ -138,6 +147,7 @@ public class MotionOuterBlockBracketAction : TextObjectActionHandler() { } } +@CommandOrMotion(keys = ["ab", "a(", "a)"], modes = [Mode.VISUAL, Mode.OP_PENDING]) public class MotionOuterBlockParenAction : TextObjectActionHandler() { override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_TEXT_BLOCK) diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/object/MotionBlockTagAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/object/MotionBlockTagAction.kt index b18103d9b..c45eae0ea 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/object/MotionBlockTagAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/object/MotionBlockTagAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.`object` +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -19,6 +21,7 @@ import com.maddyhome.idea.vim.handler.TextObjectActionHandler import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["it"], modes = [Mode.VISUAL, Mode.OP_PENDING]) public class MotionInnerBlockTagAction : TextObjectActionHandler() { override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_TEXT_BLOCK) @@ -36,6 +39,7 @@ public class MotionInnerBlockTagAction : TextObjectActionHandler() { } } +@CommandOrMotion(keys = ["at"], modes = [Mode.VISUAL, Mode.OP_PENDING]) public class MotionOuterBlockTagAction : TextObjectActionHandler() { override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_TEXT_BLOCK) diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/object/MotionParagraphAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/object/MotionParagraphAction.kt index 97503a1e7..11d425447 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/object/MotionParagraphAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/object/MotionParagraphAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.`object` +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -19,6 +21,7 @@ import com.maddyhome.idea.vim.handler.TextObjectActionHandler import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["ap"], modes = [Mode.VISUAL, Mode.OP_PENDING]) public class MotionOuterParagraphAction : TextObjectActionHandler() { override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_TEXT_BLOCK) @@ -36,6 +39,7 @@ public class MotionOuterParagraphAction : TextObjectActionHandler() { } } +@CommandOrMotion(keys = ["ip"], modes = [Mode.VISUAL, Mode.OP_PENDING]) public class MotionInnerParagraphAction : TextObjectActionHandler() { override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_TEXT_BLOCK) diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/object/MotionQuoteAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/object/MotionQuoteAction.kt index b222f3ae4..6c3b68499 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/object/MotionQuoteAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/object/MotionQuoteAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.`object` +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -19,6 +21,7 @@ import com.maddyhome.idea.vim.handler.TextObjectActionHandler import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["i`"], modes = [Mode.VISUAL, Mode.OP_PENDING]) public class MotionInnerBlockBackQuoteAction : TextObjectActionHandler() { override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_TEXT_BLOCK) @@ -36,6 +39,7 @@ public class MotionInnerBlockBackQuoteAction : TextObjectActionHandler() { } } +@CommandOrMotion(keys = ["i\""], modes = [Mode.VISUAL, Mode.OP_PENDING]) public class MotionInnerBlockDoubleQuoteAction : TextObjectActionHandler() { override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_TEXT_BLOCK) @@ -53,6 +57,7 @@ public class MotionInnerBlockDoubleQuoteAction : TextObjectActionHandler() { } } +@CommandOrMotion(keys = ["i'"], modes = [Mode.VISUAL, Mode.OP_PENDING]) public class MotionInnerBlockSingleQuoteAction : TextObjectActionHandler() { override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_TEXT_BLOCK) @@ -70,6 +75,7 @@ public class MotionInnerBlockSingleQuoteAction : TextObjectActionHandler() { } } +@CommandOrMotion(keys = ["a`"], modes = [Mode.VISUAL, Mode.OP_PENDING]) public class MotionOuterBlockBackQuoteAction : TextObjectActionHandler() { override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_TEXT_BLOCK) @@ -87,6 +93,7 @@ public class MotionOuterBlockBackQuoteAction : TextObjectActionHandler() { } } +@CommandOrMotion(keys = ["a\""], modes = [Mode.VISUAL, Mode.OP_PENDING]) public class MotionOuterBlockDoubleQuoteAction : TextObjectActionHandler() { override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_TEXT_BLOCK) @@ -104,6 +111,7 @@ public class MotionOuterBlockDoubleQuoteAction : TextObjectActionHandler() { } } +@CommandOrMotion(keys = ["a'"], modes = [Mode.VISUAL, Mode.OP_PENDING]) public class MotionOuterBlockSingleQuoteAction : TextObjectActionHandler() { override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_TEXT_BLOCK) diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/object/MotionSentenceAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/object/MotionSentenceAction.kt index 342469bdb..300cdca42 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/object/MotionSentenceAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/object/MotionSentenceAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.`object` +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -19,6 +21,7 @@ import com.maddyhome.idea.vim.handler.TextObjectActionHandler import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["is"], modes = [Mode.VISUAL, Mode.OP_PENDING]) public class MotionInnerSentenceAction : TextObjectActionHandler() { override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_TEXT_BLOCK) @@ -36,6 +39,7 @@ public class MotionInnerSentenceAction : TextObjectActionHandler() { } } +@CommandOrMotion(keys = ["as"], modes = [Mode.VISUAL, Mode.OP_PENDING]) public class MotionOuterSentenceAction : TextObjectActionHandler() { override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_TEXT_BLOCK) diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/object/MotionWordAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/object/MotionWordAction.kt index 8c2a133c5..ed312efc9 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/object/MotionWordAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/object/MotionWordAction.kt @@ -8,6 +8,7 @@ package com.maddyhome.idea.vim.action.motion.`object` +import com.intellij.vim.annotations.CommandOrMotion import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -18,6 +19,7 @@ import com.maddyhome.idea.vim.common.TextRange import com.maddyhome.idea.vim.handler.TextObjectActionHandler import com.maddyhome.idea.vim.state.mode.mode +@CommandOrMotion(keys = ["iW"], modes = [com.intellij.vim.annotations.Mode.VISUAL, com.intellij.vim.annotations.Mode.OP_PENDING]) public class MotionInnerBigWordAction : TextObjectActionHandler() { override val visualType: TextObjectVisualType = TextObjectVisualType.CHARACTER_WISE @@ -33,6 +35,7 @@ public class MotionInnerBigWordAction : TextObjectActionHandler() { } } +@CommandOrMotion(keys = ["aW"], modes = [com.intellij.vim.annotations.Mode.VISUAL, com.intellij.vim.annotations.Mode.OP_PENDING]) public class MotionOuterBigWordAction : TextObjectActionHandler() { override val visualType: TextObjectVisualType = TextObjectVisualType.CHARACTER_WISE @@ -48,6 +51,7 @@ public class MotionOuterBigWordAction : TextObjectActionHandler() { } } +@CommandOrMotion(keys = ["iw"], modes = [com.intellij.vim.annotations.Mode.VISUAL, com.intellij.vim.annotations.Mode.OP_PENDING]) public class MotionInnerWordAction : TextObjectActionHandler() { override val visualType: TextObjectVisualType = TextObjectVisualType.CHARACTER_WISE @@ -63,6 +67,7 @@ public class MotionInnerWordAction : TextObjectActionHandler() { } } +@CommandOrMotion(keys = ["aw"], modes = [com.intellij.vim.annotations.Mode.VISUAL, com.intellij.vim.annotations.Mode.OP_PENDING]) public class MotionOuterWordAction : TextObjectActionHandler() { override val visualType: TextObjectVisualType = TextObjectVisualType.CHARACTER_WISE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/screen/MotionFirstScreenLineAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/screen/MotionFirstScreenLineAction.kt index ea101a439..b6669f1de 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/screen/MotionFirstScreenLineAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/screen/MotionFirstScreenLineAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.screen +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -52,5 +54,8 @@ public abstract class MotionFirstScreenLineActionBase(private val operatorPendin } } +@CommandOrMotion(keys = ["H"], modes = [Mode.NORMAL, Mode.VISUAL]) public class MotionFirstScreenLineAction : MotionFirstScreenLineActionBase(false) + +@CommandOrMotion(keys = ["H"], modes = [Mode.OP_PENDING]) public class MotionOpPendingFirstScreenLineAction : MotionFirstScreenLineActionBase(true) diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/screen/MotionLastScreenLineAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/screen/MotionLastScreenLineAction.kt index 695fa83ff..2a891eb14 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/screen/MotionLastScreenLineAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/screen/MotionLastScreenLineAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.screen +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -49,5 +51,8 @@ public abstract class MotionLastScreenLineActionBase(private val operatorPending } } +@CommandOrMotion(keys = ["L"], modes = [Mode.NORMAL, Mode.VISUAL]) public class MotionLastScreenLineAction : MotionLastScreenLineActionBase(false) + +@CommandOrMotion(keys = ["L"], modes = [Mode.OP_PENDING]) public class MotionOpPendingLastScreenLineAction : MotionLastScreenLineActionBase(true) diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/screen/MotionMiddleScreenLineAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/screen/MotionMiddleScreenLineAction.kt index 5059f3d42..49574e7aa 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/screen/MotionMiddleScreenLineAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/screen/MotionMiddleScreenLineAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.screen +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -26,6 +28,7 @@ import java.util.* M To Middle line of window, on the first non-blank character |linewise|. See also 'startofline' option. */ +@CommandOrMotion(keys = ["M"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionMiddleScreenLineAction : MotionActionHandler.ForEachCaret() { override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_SAVE_JUMP) diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/CtrlUpDownAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/CtrlUpDownAction.kt index 26bd8541c..2a2ebf049 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/CtrlUpDownAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/CtrlUpDownAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.scroll +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -19,6 +21,7 @@ import com.maddyhome.idea.vim.handler.VimActionHandler * @author Alex Plate */ // FIXME: 2019-07-05 Workaround to make jump through methods work +@CommandOrMotion(keys = ["<C-Down>"], modes = [Mode.NORMAL]) public class CtrlDownAction : VimActionHandler.SingleExecution() { private val keySet = parseKeysSet("<C-Down>") @@ -40,6 +43,7 @@ public class CtrlDownAction : VimActionHandler.SingleExecution() { } } +@CommandOrMotion(keys = ["<C-Up>"], modes = [Mode.NORMAL]) public class CtrlUpAction : VimActionHandler.SingleExecution() { private val keySet = parseKeysSet("<C-Up>") diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollColumnLeftAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollColumnLeftAction.kt index e326ad7af..70ae97fda 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollColumnLeftAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollColumnLeftAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.scroll +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -17,6 +19,7 @@ import com.maddyhome.idea.vim.handler.VimActionHandler import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["zl", "z<Right>"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionScrollColumnLeftAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollColumnRightAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollColumnRightAction.kt index db967360d..418654726 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollColumnRightAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollColumnRightAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.scroll +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -16,6 +18,7 @@ import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.VimActionHandler import java.util.* +@CommandOrMotion(keys = ["zh", "z<Left>"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionScrollColumnRightAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollFirstScreenColumnAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollFirstScreenColumnAction.kt index 5bb582184..dcf23f3da 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollFirstScreenColumnAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollFirstScreenColumnAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.scroll +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -14,6 +16,7 @@ import com.maddyhome.idea.vim.command.Command import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.VimActionHandler +@CommandOrMotion(keys = ["zs"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionScrollFirstScreenColumnAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollFirstScreenLineAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollFirstScreenLineAction.kt index 3ccfeda20..841814fd7 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollFirstScreenLineAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollFirstScreenLineAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.scroll +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -17,6 +19,7 @@ import com.maddyhome.idea.vim.handler.VimActionHandler import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["zt"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionScrollFirstScreenLineAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollFirstScreenLinePageStartAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollFirstScreenLinePageStartAction.kt index 323804a8c..f775503f7 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollFirstScreenLinePageStartAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollFirstScreenLinePageStartAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.scroll +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -19,6 +21,7 @@ import com.maddyhome.idea.vim.handler.VimActionHandler import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["z+"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionScrollFirstScreenLinePageStartAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollFirstScreenLineStartAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollFirstScreenLineStartAction.kt index baf271637..2b7ab1d7e 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollFirstScreenLineStartAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollFirstScreenLineStartAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.scroll +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -17,6 +19,7 @@ import com.maddyhome.idea.vim.handler.VimActionHandler import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["z<CR>"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionScrollFirstScreenLineStartAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollHalfPageDownAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollHalfPageDownAction.kt index 3daa011b8..56b5243a1 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollHalfPageDownAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollHalfPageDownAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.scroll +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -17,6 +19,7 @@ import com.maddyhome.idea.vim.handler.VimActionHandler import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["<C-D>"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionScrollHalfPageDownAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollHalfPageUpAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollHalfPageUpAction.kt index 96eb1a8a0..caa7334b0 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollHalfPageUpAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollHalfPageUpAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.scroll +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -17,6 +19,7 @@ import com.maddyhome.idea.vim.handler.VimActionHandler import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["<C-U>"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionScrollHalfPageUpAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollHalfWidthLeftAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollHalfWidthLeftAction.kt index 35dd63d3c..bba382f6c 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollHalfWidthLeftAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollHalfWidthLeftAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.scroll +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -31,6 +33,7 @@ zH Move the view on the text half a screenwidth to the [count] is used but undocumented. */ +@CommandOrMotion(keys = ["zL"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionScrollHalfWidthLeftAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollHalfWidthRightAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollHalfWidthRightAction.kt index 4ca382c87..714d336c8 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollHalfWidthRightAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollHalfWidthRightAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.scroll +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -31,6 +33,7 @@ zH Move the view on the text half a screenwidth to the [count] is used but undocumented. */ +@CommandOrMotion(keys = ["zH"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionScrollHalfWidthRightAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollLastScreenColumnAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollLastScreenColumnAction.kt index ed770dfd8..f180328b0 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollLastScreenColumnAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollLastScreenColumnAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.scroll +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -14,6 +16,7 @@ import com.maddyhome.idea.vim.command.Command import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.VimActionHandler +@CommandOrMotion(keys = ["ze"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionScrollLastScreenColumnAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollLastScreenLineAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollLastScreenLineAction.kt index 3c8a122ff..0e0145162 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollLastScreenLineAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollLastScreenLineAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.scroll +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -17,6 +19,7 @@ import com.maddyhome.idea.vim.handler.VimActionHandler import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["zb"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionScrollLastScreenLineAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollLastScreenLinePageStartAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollLastScreenLinePageStartAction.kt index 76545a29b..0a2ba5b25 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollLastScreenLinePageStartAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollLastScreenLinePageStartAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.scroll +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -20,6 +22,7 @@ import com.maddyhome.idea.vim.handler.VimActionHandler import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["z^"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionScrollLastScreenLinePageStartAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollLastScreenLineStartAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollLastScreenLineStartAction.kt index 741369655..94bd036bf 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollLastScreenLineStartAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollLastScreenLineStartAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.scroll +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -17,6 +19,7 @@ import com.maddyhome.idea.vim.handler.VimActionHandler import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["z-"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionScrollLastScreenLineStartAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollLineAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollLineAction.kt index 4b014709a..0fd80958d 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollLineAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollLineAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.scroll +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -17,6 +19,7 @@ import com.maddyhome.idea.vim.handler.VimActionHandler import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["<C-E>"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionScrollLineDownAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY @@ -32,6 +35,7 @@ public class MotionScrollLineDownAction : VimActionHandler.SingleExecution() { } } +@CommandOrMotion(keys = ["<C-Y>"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionScrollLineUpAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollMiddleScreenLineAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollMiddleScreenLineAction.kt index 89a15751f..18482f937 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollMiddleScreenLineAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollMiddleScreenLineAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.scroll +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -17,6 +19,7 @@ import com.maddyhome.idea.vim.handler.VimActionHandler import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["zz"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionScrollMiddleScreenLineAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY @@ -32,6 +35,7 @@ public class MotionScrollMiddleScreenLineAction : VimActionHandler.SingleExecuti } } +@CommandOrMotion(keys = ["z."], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionScrollMiddleScreenLineStartAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollPageDownAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollPageDownAction.kt index 081901371..6f50819c3 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollPageDownAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollPageDownAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.scroll +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.action.ComplicatedKeysAction import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor @@ -23,6 +25,7 @@ import java.awt.event.KeyEvent import java.util.* import javax.swing.KeyStroke +@CommandOrMotion(keys = ["<C-F>", "<PageDown>"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionScrollPageDownAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY @@ -34,6 +37,7 @@ public class MotionScrollPageDownAction : VimActionHandler.SingleExecution() { } } +@CommandOrMotion(keys = ["<PageDown>"], modes = [Mode.INSERT]) public class MotionScrollPageDownInsertModeAction : VimActionHandler.SingleExecution(), ComplicatedKeysAction { override val keyStrokesSet: Set<List<KeyStroke>> = setOf( diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollPageUpAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollPageUpAction.kt index 7dd2e66ab..d71d77a2a 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollPageUpAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/scroll/MotionScrollPageUpAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.scroll +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.action.ComplicatedKeysAction import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor @@ -23,6 +25,7 @@ import java.awt.event.KeyEvent import java.util.* import javax.swing.KeyStroke +@CommandOrMotion(keys = ["<C-B>", "<PageUp>"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionScrollPageUpAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY @@ -34,6 +37,7 @@ public class MotionScrollPageUpAction : VimActionHandler.SingleExecution() { } } +@CommandOrMotion(keys = ["<PageUp>"], modes = [Mode.INSERT]) public class MotionScrollPageUpInsertModeAction : VimActionHandler.SingleExecution(), ComplicatedKeysAction { override val keyStrokesSet: Set<List<KeyStroke>> = setOf( diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/GotoDeclarationAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/GotoDeclarationAction.kt index b71b1e5d8..87c4eaa79 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/GotoDeclarationAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/GotoDeclarationAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.search +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -17,6 +19,7 @@ import com.maddyhome.idea.vim.handler.VimActionHandler import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["gD", "gd", "<C-]>"], modes = [Mode.NORMAL, Mode.VISUAL]) public class GotoDeclarationAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/SearchAgainNextAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/SearchAgainNextAction.kt index a8b1943a4..370382045 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/SearchAgainNextAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/SearchAgainNextAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.search +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -21,6 +23,7 @@ import com.maddyhome.idea.vim.handler.toMotionOrError import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["n"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class SearchAgainNextAction : MotionActionHandler.ForEachCaret() { override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_SAVE_JUMP) diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/SearchAgainPreviousAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/SearchAgainPreviousAction.kt index d857bfaea..167d2896f 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/SearchAgainPreviousAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/SearchAgainPreviousAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.search +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -21,6 +23,7 @@ import com.maddyhome.idea.vim.handler.toMotionOrError import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["N"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class SearchAgainPreviousAction : MotionActionHandler.ForEachCaret() { override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_SAVE_JUMP) diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/SearchEntryFwdAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/SearchEntryFwdAction.kt index b8ee77814..a613e23bf 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/SearchEntryFwdAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/SearchEntryFwdAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.search +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -22,6 +24,7 @@ import com.maddyhome.idea.vim.handler.toMotionOrError import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["/"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class SearchEntryFwdAction : MotionActionHandler.ForEachCaret() { override val argumentType: Argument.Type = Argument.Type.EX_STRING diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/SearchEntryRevAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/SearchEntryRevAction.kt index 4fd6ac6de..75fd33ae0 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/SearchEntryRevAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/SearchEntryRevAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.search +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -22,6 +24,7 @@ import com.maddyhome.idea.vim.handler.toMotionOrError import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["?"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class SearchEntryRevAction : MotionActionHandler.ForEachCaret() { override val argumentType: Argument.Type = Argument.Type.EX_STRING diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/SearchWholeWordBackwardAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/SearchWholeWordBackwardAction.kt index 6043b272b..5d49a70a4 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/SearchWholeWordBackwardAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/SearchWholeWordBackwardAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.search +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -22,6 +24,7 @@ import com.maddyhome.idea.vim.handler.toMotionOrNoMotion import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["#"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class SearchWholeWordBackwardAction : MotionActionHandler.ForEachCaret() { override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_SAVE_JUMP) diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/SearchWholeWordForwardAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/SearchWholeWordForwardAction.kt index 2d14b4b71..aaaa388ed 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/SearchWholeWordForwardAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/SearchWholeWordForwardAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.search +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -22,6 +24,7 @@ import com.maddyhome.idea.vim.handler.toMotionOrNoMotion import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["*"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class SearchWholeWordForwardAction : MotionActionHandler.ForEachCaret() { override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_SAVE_JUMP) diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/SearchWordBackwardAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/SearchWordBackwardAction.kt index de44fb10b..bb87be159 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/SearchWordBackwardAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/SearchWordBackwardAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.search +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -22,6 +24,7 @@ import com.maddyhome.idea.vim.handler.toMotionOrError import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["g#"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class SearchWordBackwardAction : MotionActionHandler.ForEachCaret() { override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_SAVE_JUMP) diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/SearchWordForwardAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/SearchWordForwardAction.kt index ff3d31625..bd2ef0d09 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/SearchWordForwardAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/SearchWordForwardAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.search +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -22,6 +24,7 @@ import com.maddyhome.idea.vim.handler.toMotionOrError import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["g*"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class SearchWordForwardAction : MotionActionHandler.ForEachCaret() { override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_SAVE_JUMP) diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/select/SelectDeleteAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/select/SelectDeleteAction.kt index b82557d49..3aca1b76f 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/select/SelectDeleteAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/select/SelectDeleteAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.select +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -21,6 +23,7 @@ import javax.swing.KeyStroke * @author Alex Plate */ +@CommandOrMotion(keys = ["<BS>", "<DEL>"], modes = [Mode.SELECT]) public class SelectDeleteAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.INSERT diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/select/SelectEnableBlockModeAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/select/SelectEnableBlockModeAction.kt index 7435f8c2c..57d7dcb43 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/select/SelectEnableBlockModeAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/select/SelectEnableBlockModeAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.select +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.getLineEndForOffset @@ -22,6 +24,7 @@ import com.maddyhome.idea.vim.handler.VimActionHandler * @author Alex Plate */ +@CommandOrMotion(keys = ["g<C-h>"], modes = [Mode.NORMAL]) public class SelectEnableBlockModeAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/select/SelectEnableCharacterModeAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/select/SelectEnableCharacterModeAction.kt index 2ef4ab393..7d96c7787 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/select/SelectEnableCharacterModeAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/select/SelectEnableCharacterModeAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.select +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.getLineEndForOffset @@ -22,6 +24,7 @@ import com.maddyhome.idea.vim.handler.VimActionHandler * @author Alex Plate */ +@CommandOrMotion(keys = ["gh"], modes = [Mode.NORMAL]) public class SelectEnableCharacterModeAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/select/SelectEnableLineModeAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/select/SelectEnableLineModeAction.kt index 158266589..66a4bdf2d 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/select/SelectEnableLineModeAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/select/SelectEnableLineModeAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.select +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.getLineEndForOffset @@ -23,6 +25,7 @@ import com.maddyhome.idea.vim.handler.VimActionHandler * @author Alex Plate */ +@CommandOrMotion(keys = ["gH"], modes = [Mode.NORMAL]) public class SelectEnableLineModeAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/select/SelectEnterAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/select/SelectEnterAction.kt index e419ff3ef..30143ec9a 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/select/SelectEnterAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/select/SelectEnterAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.select +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -20,6 +22,7 @@ import com.maddyhome.idea.vim.handler.VimActionHandler * @author Alex Plate */ +@CommandOrMotion(keys = ["<Enter>"], modes = [Mode.SELECT]) public class SelectEnterAction : VimActionHandler.ForEachCaret() { override val type: Command.Type = Command.Type.INSERT diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/select/SelectEscapeAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/select/SelectEscapeAction.kt index fee612013..b3805b7d9 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/select/SelectEscapeAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/select/SelectEscapeAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.select +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.command.Command @@ -15,6 +17,7 @@ import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.VimActionHandler import com.maddyhome.idea.vim.state.mode.inBlockSelection +@CommandOrMotion(keys = ["<Esc>"], modes = [Mode.SELECT]) public class SelectEscapeAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/select/SelectToggleVisualMode.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/select/SelectToggleVisualMode.kt index 317cf9b24..1fa68a8e7 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/select/SelectToggleVisualMode.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/select/SelectToggleVisualMode.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.select +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -17,13 +19,13 @@ import com.maddyhome.idea.vim.handler.VimActionHandler import com.maddyhome.idea.vim.helper.pushVisualMode import com.maddyhome.idea.vim.helper.setSelectMode import com.maddyhome.idea.vim.helper.vimStateMachine -import com.maddyhome.idea.vim.state.mode.Mode import com.maddyhome.idea.vim.state.mode.SelectionType /** * @author Alex Plate */ +@CommandOrMotion(keys = ["<C-G>"], modes = [Mode.VISUAL, Mode.SELECT]) public class SelectToggleVisualMode : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY @@ -42,7 +44,7 @@ public class SelectToggleVisualMode : VimActionHandler.SingleExecution() { public fun toggleMode(editor: VimEditor) { val commandState = editor.vimStateMachine val myMode = commandState.mode - if (myMode is Mode.VISUAL) { + if (myMode is com.maddyhome.idea.vim.state.mode.Mode.VISUAL) { commandState.setSelectMode(myMode.selectionType) if (myMode.selectionType != SelectionType.LINE_WISE) { editor.nativeCarets().forEach { @@ -51,7 +53,7 @@ public class SelectToggleVisualMode : VimActionHandler.SingleExecution() { } } } - } else if (myMode is Mode.SELECT) { + } else if (myMode is com.maddyhome.idea.vim.state.mode.Mode.SELECT) { commandState.pushVisualMode(myMode.selectionType) if (myMode.selectionType != SelectionType.LINE_WISE) { editor.nativeCarets().forEach { diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/select/motion/SelectMotionLeftAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/select/motion/SelectMotionLeftAction.kt index d6540b6f7..446d3554f 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/select/motion/SelectMotionLeftAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/select/motion/SelectMotionLeftAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.select.motion +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -25,6 +27,7 @@ import com.maddyhome.idea.vim.options.OptionConstants * @author Alex Plate */ +@CommandOrMotion(keys = ["<Left>"], modes = [Mode.SELECT]) public class SelectMotionLeftAction : MotionActionHandler.ForEachCaret() { override val motionType: MotionType = MotionType.EXCLUSIVE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/select/motion/SelectMotionRightAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/select/motion/SelectMotionRightAction.kt index 17136bf9a..9d1e79796 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/select/motion/SelectMotionRightAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/select/motion/SelectMotionRightAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.select.motion +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -25,6 +27,7 @@ import com.maddyhome.idea.vim.options.OptionConstants * @author Alex Plate */ +@CommandOrMotion(keys = ["<Right>"], modes = [Mode.SELECT]) public class SelectMotionRightAction : MotionActionHandler.ForEachCaret() { override val motionType: MotionType = MotionType.EXCLUSIVE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionBigWordEndLeftAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionBigWordEndLeftAction.kt index 43dc56857..5fbb14354 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionBigWordEndLeftAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionBigWordEndLeftAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.text +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -19,9 +21,16 @@ import com.maddyhome.idea.vim.handler.Motion import com.maddyhome.idea.vim.handler.Motion.AbsoluteOffset import com.maddyhome.idea.vim.handler.MotionActionHandler +@CommandOrMotion(keys = ["gE"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionBigWordEndLeftAction : WordEndAction(Direction.BACKWARDS, true) + +@CommandOrMotion(keys = ["E"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionBigWordEndRightAction : WordEndAction(Direction.FORWARDS, true) + +@CommandOrMotion(keys = ["ge"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionWordEndLeftAction : WordEndAction(Direction.BACKWARDS, false) + +@CommandOrMotion(keys = ["e"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionWordEndRightAction : WordEndAction(Direction.FORWARDS, false) public sealed class WordEndAction(public val direction: Direction, public val bigWord: Boolean) : MotionActionHandler.ForEachCaret() { diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionBigWordLeftAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionBigWordLeftAction.kt index 3908c5347..c9896038f 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionBigWordLeftAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionBigWordLeftAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.text +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -17,6 +19,7 @@ import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.Motion import com.maddyhome.idea.vim.handler.MotionActionHandler +@CommandOrMotion(keys = ["B", "<C-Left>"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionBigWordLeftAction : MotionActionHandler.ForEachCaret() { override fun getOffset( editor: VimEditor, diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionBigWordRightAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionBigWordRightAction.kt index 3ace0964b..be3425cfb 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionBigWordRightAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionBigWordRightAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.text +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -17,6 +19,7 @@ import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.Motion import com.maddyhome.idea.vim.handler.MotionActionHandler +@CommandOrMotion(keys = ["W", "<C-Right>"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionBigWordRightAction : MotionActionHandler.ForEachCaret() { override fun getOffset( editor: VimEditor, diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionCamelEndAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionCamelEndAction.kt index aa3f4040a..ff6e6238d 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionCamelEndAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionCamelEndAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.text +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -18,6 +20,7 @@ import com.maddyhome.idea.vim.handler.Motion import com.maddyhome.idea.vim.handler.MotionActionHandler import com.maddyhome.idea.vim.handler.toMotionOrError +@CommandOrMotion(keys = ["]b"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionCamelEndLeftAction : MotionActionHandler.ForEachCaret() { override val motionType: MotionType = MotionType.INCLUSIVE @@ -33,6 +36,7 @@ public class MotionCamelEndLeftAction : MotionActionHandler.ForEachCaret() { } } +@CommandOrMotion(keys = ["]w"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionCamelEndRightAction : MotionActionHandler.ForEachCaret() { override val motionType: MotionType = MotionType.INCLUSIVE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionCamelLeftAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionCamelLeftAction.kt index c3d048927..78fc14251 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionCamelLeftAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionCamelLeftAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.text +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -18,6 +20,7 @@ import com.maddyhome.idea.vim.handler.Motion import com.maddyhome.idea.vim.handler.MotionActionHandler import com.maddyhome.idea.vim.handler.toMotionOrError +@CommandOrMotion(keys = ["[b"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionCamelLeftAction : MotionActionHandler.ForEachCaret() { override val motionType: MotionType = MotionType.EXCLUSIVE @@ -33,6 +36,7 @@ public class MotionCamelLeftAction : MotionActionHandler.ForEachCaret() { } } +@CommandOrMotion(keys = ["[w"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionCamelRightAction : MotionActionHandler.ForEachCaret() { override val motionType: MotionType = MotionType.EXCLUSIVE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionMethodEndAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionMethodEndAction.kt index 7bbfec70c..8e5098b5f 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionMethodEndAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionMethodEndAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.text +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -21,6 +23,7 @@ import com.maddyhome.idea.vim.handler.toMotionOrError import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["]M"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionMethodNextEndAction : MotionActionHandler.ForEachCaret() { override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_SAVE_JUMP) @@ -37,6 +40,7 @@ public class MotionMethodNextEndAction : MotionActionHandler.ForEachCaret() { override val motionType: MotionType = MotionType.EXCLUSIVE } +@CommandOrMotion(keys = ["[M"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionMethodPreviousEndAction : MotionActionHandler.ForEachCaret() { override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_SAVE_JUMP) diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionMethodStartAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionMethodStartAction.kt index d272179f5..1b4077fd5 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionMethodStartAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionMethodStartAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.text +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -21,6 +23,7 @@ import com.maddyhome.idea.vim.handler.toMotionOrError import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["]m"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionMethodNextStartAction : MotionActionHandler.ForEachCaret() { override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_SAVE_JUMP) @@ -37,6 +40,7 @@ public class MotionMethodNextStartAction : MotionActionHandler.ForEachCaret() { override val motionType: MotionType = MotionType.EXCLUSIVE } +@CommandOrMotion(keys = ["[m"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionMethodPreviousStartAction : MotionActionHandler.ForEachCaret() { override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_SAVE_JUMP) diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionNthCharacterAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionNthCharacterAction.kt index fe225b666..8c1948371 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionNthCharacterAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionNthCharacterAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.text +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -22,6 +24,7 @@ import java.util.* import kotlin.math.max import kotlin.math.min +@CommandOrMotion(keys = ["go"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionNthCharacterAction : MotionActionHandler.ForEachCaret() { override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_SAVE_JUMP) diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionParagraphAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionParagraphAction.kt index b063dcda4..a80d68a79 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionParagraphAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionParagraphAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.text +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -39,7 +41,10 @@ public sealed class MotionParagraphAction(public val direction: Direction) : Mot override val motionType: MotionType = MotionType.EXCLUSIVE } +@CommandOrMotion(keys = ["}"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionParagraphNextAction : MotionParagraphAction(Direction.FORWARDS) + +@CommandOrMotion(keys = ["{"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionParagraphPreviousAction : MotionParagraphAction(Direction.BACKWARDS) private fun moveCaretToNextParagraph(editor: VimEditor, caret: ImmutableVimCaret, count: Int): Motion { diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionSectionAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionSectionAction.kt index 2e41fb485..423d06915 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionSectionAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionSectionAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.text +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -23,9 +25,16 @@ import com.maddyhome.idea.vim.handler.toMotionOrError import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["[]"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionSectionBackwardEndAction : MotionSectionAction('}', Direction.BACKWARDS) + +@CommandOrMotion(keys = ["[["], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionSectionBackwardStartAction : MotionSectionAction('{', Direction.BACKWARDS) + +@CommandOrMotion(keys = ["]["], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionSectionForwardEndAction : MotionSectionAction('}', Direction.FORWARDS) + +@CommandOrMotion(keys = ["]]"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionSectionForwardStartAction : MotionSectionAction('{', Direction.FORWARDS) public sealed class MotionSectionAction(private val charType: Char, public val direction: Direction) : MotionActionHandler.ForEachCaret() { diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionSentenceNextEndAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionSentenceNextEndAction.kt index 6ecf80484..9b2c9bac3 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionSentenceNextEndAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionSentenceNextEndAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.text +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -23,7 +25,10 @@ import com.maddyhome.idea.vim.handler.toMotionOrError import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["g)"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionSentenceNextEndAction : MotionSentenceEndAction(Direction.FORWARDS) + +@CommandOrMotion(keys = ["g("], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionSentencePreviousEndAction : MotionSentenceEndAction(Direction.BACKWARDS) public sealed class MotionSentenceEndAction(public val direction: Direction) : MotionActionHandler.ForEachCaret() { diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionSentenceStartAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionSentenceStartAction.kt index 998e794a6..6a5c4e693 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionSentenceStartAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionSentenceStartAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.text +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -22,6 +24,7 @@ import com.maddyhome.idea.vim.handler.toMotionOrError import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = [")"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionSentenceNextStartAction : MotionActionHandler.ForEachCaret() { override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_SAVE_JUMP) @@ -38,6 +41,7 @@ public class MotionSentenceNextStartAction : MotionActionHandler.ForEachCaret() override val motionType: MotionType = MotionType.EXCLUSIVE } +@CommandOrMotion(keys = ["("], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionSentencePreviousStartAction : MotionActionHandler.ForEachCaret() { override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_SAVE_JUMP) diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionUnmatchedAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionUnmatchedAction.kt index 177c4ff8b..be75ace36 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionUnmatchedAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionUnmatchedAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.text +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -39,9 +41,16 @@ public sealed class MotionUnmatchedAction(private val motionChar: Char) : Motion } } +@CommandOrMotion(keys = ["]}"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionUnmatchedBraceCloseAction : MotionUnmatchedAction('}') + +@CommandOrMotion(keys = ["[{"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionUnmatchedBraceOpenAction : MotionUnmatchedAction('{') + +@CommandOrMotion(keys = ["])"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionUnmatchedParenCloseAction : MotionUnmatchedAction(')') + +@CommandOrMotion(keys = ["[("], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionUnmatchedParenOpenAction : MotionUnmatchedAction('(') private fun moveCaretToUnmatchedBlock(editor: VimEditor, caret: ImmutableVimCaret, count: Int, type: Char): Int { diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionWordLeftAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionWordLeftAction.kt index 6a1aa4f47..f0e03d44d 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionWordLeftAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionWordLeftAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.text +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.action.ComplicatedKeysAction import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret @@ -24,6 +26,7 @@ import java.awt.event.KeyEvent import java.util.* import javax.swing.KeyStroke +@CommandOrMotion(keys = ["b"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionWordLeftAction : MotionActionHandler.ForEachCaret() { override val motionType: MotionType = MotionType.EXCLUSIVE @@ -39,6 +42,7 @@ public class MotionWordLeftAction : MotionActionHandler.ForEachCaret() { } } +@CommandOrMotion(keys = ["<C-Left>", "<C-kLeft>"], modes = [Mode.INSERT]) public class MotionWordLeftInsertAction : MotionActionHandler.ForEachCaret(), ComplicatedKeysAction { override val motionType: MotionType = MotionType.EXCLUSIVE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionWordRightAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionWordRightAction.kt index 4ddfc700d..d1bbe6204 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionWordRightAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/text/MotionWordRightAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.text +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.action.ComplicatedKeysAction import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret @@ -24,6 +26,7 @@ import java.awt.event.KeyEvent import java.util.* import javax.swing.KeyStroke +@CommandOrMotion(keys = ["w"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionWordRightAction : MotionActionHandler.ForEachCaret() { override val motionType: MotionType = MotionType.EXCLUSIVE @@ -39,6 +42,7 @@ public class MotionWordRightAction : MotionActionHandler.ForEachCaret() { } } +@CommandOrMotion(keys = ["<C-Right>", "<C-kRight>"], modes = [Mode.INSERT]) public class MotionWordRightInsertAction : MotionActionHandler.ForEachCaret(), ComplicatedKeysAction { override val motionType: MotionType = MotionType.EXCLUSIVE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionArrowDownAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionArrowDownAction.kt index 9d1310f20..69966fdb9 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionArrowDownAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionArrowDownAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.updown +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.action.ComplicatedKeysAction import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret @@ -21,6 +23,7 @@ import com.maddyhome.idea.vim.handler.NonShiftedSpecialKeyHandler import java.awt.event.KeyEvent import javax.swing.KeyStroke +@CommandOrMotion(keys = ["<Down>", "<kDown>"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.SELECT, Mode.OP_PENDING]) public class MotionArrowDownAction : NonShiftedSpecialKeyHandler(), ComplicatedKeysAction { override val motionType: MotionType = MotionType.LINE_WISE override val keepFold: Boolean = true diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionArrowUpAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionArrowUpAction.kt index 6eb51f11f..5ed9c70a0 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionArrowUpAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionArrowUpAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.updown +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.action.ComplicatedKeysAction import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret @@ -21,6 +23,7 @@ import com.maddyhome.idea.vim.handler.NonShiftedSpecialKeyHandler import java.awt.event.KeyEvent import javax.swing.KeyStroke +@CommandOrMotion(keys = ["<Up>", "k<Up>"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.SELECT, Mode.OP_PENDING]) public class MotionArrowUpAction : NonShiftedSpecialKeyHandler(), ComplicatedKeysAction { override val motionType: MotionType = MotionType.LINE_WISE override val keepFold: Boolean = true diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionDownActions.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionDownActions.kt index a587ee1dc..25b2b6941 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionDownActions.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionDownActions.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.updown +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -19,6 +21,7 @@ import com.maddyhome.idea.vim.handler.Motion import com.maddyhome.idea.vim.handler.MotionActionHandler import com.maddyhome.idea.vim.handler.toMotion +@CommandOrMotion(keys = ["j"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public open class MotionDownAction : MotionActionHandler.ForEachCaret() { override val motionType: MotionType = MotionType.LINE_WISE override val keepFold: Boolean = true @@ -34,6 +37,7 @@ public open class MotionDownAction : MotionActionHandler.ForEachCaret() { } } +@CommandOrMotion(keys = ["<C-N>"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionDownCtrlNAction : MotionDownAction() { override fun getOffset( editor: VimEditor, @@ -55,6 +59,7 @@ public class MotionDownCtrlNAction : MotionDownAction() { } } +@CommandOrMotion(keys = ["gj", "g<Down>"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionDownNotLineWiseAction : MotionActionHandler.ForEachCaret() { override val motionType: MotionType = MotionType.EXCLUSIVE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionDownFirstNonSpaceAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionDownFirstNonSpaceAction.kt index a08258419..e9beb1af4 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionDownFirstNonSpaceAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionDownFirstNonSpaceAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.updown +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -19,6 +21,7 @@ import com.maddyhome.idea.vim.handler.Motion import com.maddyhome.idea.vim.handler.MotionActionHandler import com.maddyhome.idea.vim.handler.toMotion +@CommandOrMotion(keys = ["+", "<C-M>"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionDownFirstNonSpaceAction : MotionActionHandler.ForEachCaret() { override val motionType: MotionType = MotionType.LINE_WISE @@ -33,6 +36,8 @@ public class MotionDownFirstNonSpaceAction : MotionActionHandler.ForEachCaret() } } +// FIXME I should not exist (see class above) +@CommandOrMotion(keys = ["<CR>"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class EnterNormalAction : MotionActionHandler.ForEachCaret() { override val motionType: MotionType = MotionType.LINE_WISE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionDownLess1FirstNonSpaceAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionDownLess1FirstNonSpaceAction.kt index bda622368..f42ec87e9 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionDownLess1FirstNonSpaceAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionDownLess1FirstNonSpaceAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.updown +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -18,6 +20,7 @@ import com.maddyhome.idea.vim.handler.Motion import com.maddyhome.idea.vim.handler.MotionActionHandler import com.maddyhome.idea.vim.handler.toMotion +@CommandOrMotion(keys = ["_"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionDownLess1FirstNonSpaceAction : MotionActionHandler.ForEachCaret() { override val motionType: MotionType = MotionType.LINE_WISE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionGotoLineFirstAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionGotoLineFirstAction.kt index 91fc546f7..a9db48f72 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionGotoLineFirstAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionGotoLineFirstAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.updown +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -23,6 +25,7 @@ import com.maddyhome.idea.vim.handler.toMotion import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["gg", "<C-Home>"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionGotoLineFirstAction : MotionActionHandler.ForEachCaret() { override val motionType: MotionType = MotionType.LINE_WISE override val keepFold: Boolean = true @@ -41,6 +44,7 @@ public class MotionGotoLineFirstAction : MotionActionHandler.ForEachCaret() { } } +@CommandOrMotion(keys = ["<C-Home>"], modes = [Mode.INSERT]) public class MotionGotoLineFirstInsertAction : MotionActionHandler.ForEachCaret() { override val motionType: MotionType = MotionType.EXCLUSIVE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionGotoLineLastAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionGotoLineLastAction.kt index 835da95c7..855707dbf 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionGotoLineLastAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionGotoLineLastAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.updown +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -22,6 +24,7 @@ import com.maddyhome.idea.vim.handler.toMotion import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["G"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionGotoLineLastAction : MotionActionHandler.ForEachCaret() { override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_SAVE_JUMP) diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionGotoLineLastEndAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionGotoLineLastEndAction.kt index 2f81a2725..2dddefbd3 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionGotoLineLastEndAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionGotoLineLastEndAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.updown +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -26,6 +28,7 @@ import com.maddyhome.idea.vim.state.mode.isInsertionAllowed import com.maddyhome.idea.vim.state.mode.inVisualMode import java.util.* +@CommandOrMotion(keys = ["<C-End>"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionGotoLineLastEndAction : MotionActionHandler.ForEachCaret() { override val motionType: MotionType = MotionType.LINE_WISE @@ -49,6 +52,7 @@ public class MotionGotoLineLastEndAction : MotionActionHandler.ForEachCaret() { } } +@CommandOrMotion(keys = ["<C-End>"], modes = [Mode.INSERT]) public class MotionGotoLineLastEndInsertAction : MotionActionHandler.ForEachCaret() { override val motionType: MotionType = MotionType.EXCLUSIVE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionPercentOrMatchAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionPercentOrMatchAction.kt index 6e512ab1e..4d6413ecf 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionPercentOrMatchAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionPercentOrMatchAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.updown +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -22,6 +24,7 @@ import com.maddyhome.idea.vim.handler.toMotion import com.maddyhome.idea.vim.helper.enumSetOf import java.util.* +@CommandOrMotion(keys = ["%"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionPercentOrMatchAction : MotionActionHandler.ForEachCaret() { override val flags: EnumSet<CommandFlags> = enumSetOf(CommandFlags.FLAG_SAVE_JUMP) diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionShiftDownAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionShiftDownAction.kt index 1c6a3eb77..a4e9a9590 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionShiftDownAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionShiftDownAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.updown +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -20,6 +22,7 @@ import com.maddyhome.idea.vim.handler.ShiftedArrowKeyHandler * @author Alex Plate */ +@CommandOrMotion(keys = ["<S-Down>"], modes = [Mode.INSERT, Mode.NORMAL, Mode.VISUAL, Mode.SELECT]) public class MotionShiftDownAction : ShiftedArrowKeyHandler(false) { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionShiftUpAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionShiftUpAction.kt index 1f33c6a51..7f11db247 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionShiftUpAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionShiftUpAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.updown +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -20,6 +22,7 @@ import com.maddyhome.idea.vim.handler.ShiftedArrowKeyHandler * @author Alex Plate */ +@CommandOrMotion(keys = ["<S-Up>"], modes = [Mode.INSERT, Mode.NORMAL, Mode.VISUAL, Mode.SELECT]) public class MotionShiftUpAction : ShiftedArrowKeyHandler(false) { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionUpActions.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionUpActions.kt index be5a96e7f..755c3d1b0 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionUpActions.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionUpActions.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.updown +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -19,6 +21,7 @@ import com.maddyhome.idea.vim.handler.Motion import com.maddyhome.idea.vim.handler.MotionActionHandler import com.maddyhome.idea.vim.handler.toMotion +@CommandOrMotion(keys = ["k"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public open class MotionUpAction : MotionActionHandler.ForEachCaret() { override val motionType: MotionType = MotionType.LINE_WISE override val keepFold: Boolean = true @@ -34,6 +37,7 @@ public open class MotionUpAction : MotionActionHandler.ForEachCaret() { } } +@CommandOrMotion(keys = ["<C-P>"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionUpCtrlPAction : MotionUpAction() { override fun getOffset( editor: VimEditor, @@ -55,6 +59,7 @@ public class MotionUpCtrlPAction : MotionUpAction() { } } +@CommandOrMotion(keys = ["gk", "g<Up>"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionUpNotLineWiseAction : MotionActionHandler.ForEachCaret() { override val motionType: MotionType = MotionType.EXCLUSIVE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionUpFirstNonSpaceAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionUpFirstNonSpaceAction.kt index d08a924a2..f5ac6ade5 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionUpFirstNonSpaceAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/updown/MotionUpFirstNonSpaceAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.updown +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -18,6 +20,7 @@ import com.maddyhome.idea.vim.handler.Motion import com.maddyhome.idea.vim.handler.MotionActionHandler import com.maddyhome.idea.vim.handler.toMotion +@CommandOrMotion(keys = ["-"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class MotionUpFirstNonSpaceAction : MotionActionHandler.ForEachCaret() { override val motionType: MotionType = MotionType.LINE_WISE diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/visual/VisualExitModeAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/visual/VisualExitModeAction.kt index 885275230..65e4a1b52 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/visual/VisualExitModeAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/visual/VisualExitModeAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.visual +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -21,6 +23,7 @@ import com.maddyhome.idea.vim.helper.exitVisualMode /** * @author vlan */ +@CommandOrMotion(keys = ["<Esc>", "<C-[>", "<C-C>"], modes = [Mode.VISUAL]) public class VisualExitModeAction : VimActionHandler.ConditionalMulticaret() { override val type: Command.Type = Command.Type.OTHER_READONLY override fun runAsMulticaret( diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/visual/VisualSelectPreviousAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/visual/VisualSelectPreviousAction.kt index 1d9fda3a1..a1e2aa9b3 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/visual/VisualSelectPreviousAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/visual/VisualSelectPreviousAction.kt @@ -7,11 +7,12 @@ */ package com.maddyhome.idea.vim.action.motion.visual +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector import com.maddyhome.idea.vim.command.Command -import com.maddyhome.idea.vim.state.mode.Mode import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.group.visual.vimSetSelection import com.maddyhome.idea.vim.handler.VimActionHandler @@ -20,6 +21,7 @@ import com.maddyhome.idea.vim.helper.vimStateMachine /** * @author vlan */ +@CommandOrMotion(keys = ["gv"], modes = [Mode.NORMAL]) public class VisualSelectPreviousAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY @@ -35,7 +37,7 @@ public class VisualSelectPreviousAction : VimActionHandler.SingleExecution() { if (caretToSelectionInfo.any { it.second.start == null || it.second.end == null }) return false - editor.vimStateMachine.mode = Mode.VISUAL(selectionType) + editor.vimStateMachine.mode = com.maddyhome.idea.vim.state.mode.Mode.VISUAL(selectionType) for ((caret, selectionInfo) in caretToSelectionInfo) { val startOffset = editor.bufferPositionToOffset(selectionInfo.start!!) diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/visual/VisualSwapEndsAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/visual/VisualSwapEndsAction.kt index 773cc4754..1d7213a8c 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/visual/VisualSwapEndsAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/visual/VisualSwapEndsAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.visual +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -20,6 +22,7 @@ import com.maddyhome.idea.vim.state.mode.inBlockSelection /** * @author vlan */ +@CommandOrMotion(keys = ["o"], modes = [Mode.VISUAL]) public class VisualSwapEndsAction : VimActionHandler.ForEachCaret() { override val type: Command.Type = Command.Type.OTHER_READONLY @@ -36,6 +39,7 @@ public class VisualSwapEndsAction : VimActionHandler.ForEachCaret() { /** * @author vlan */ +@CommandOrMotion(keys = ["O"], modes = [Mode.VISUAL]) public class VisualSwapEndsBlockAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/visual/VisualSwapSelectionsAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/visual/VisualSwapSelectionsAction.kt index 173a48e04..54cd42c34 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/visual/VisualSwapSelectionsAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/visual/VisualSwapSelectionsAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.visual +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -17,12 +19,12 @@ import com.maddyhome.idea.vim.common.TextRange import com.maddyhome.idea.vim.group.visual.vimSetSelection import com.maddyhome.idea.vim.handler.VimActionHandler import com.maddyhome.idea.vim.helper.vimStateMachine -import com.maddyhome.idea.vim.state.mode.Mode import com.maddyhome.idea.vim.state.mode.mode /** * @author vlan */ +@CommandOrMotion(keys = ["gv"], modes = [Mode.VISUAL]) public class VisualSwapSelectionsAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY @@ -39,7 +41,7 @@ public class VisualSwapSelectionsAction : VimActionHandler.SingleExecution() { private fun swapVisualSelections(editor: VimEditor): Boolean { val mode = editor.mode - check(mode is Mode.VISUAL) + check(mode is com.maddyhome.idea.vim.state.mode.Mode.VISUAL) val lastSelectionType = editor.vimLastSelectionType ?: return false diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/visual/VisualToggleBlockModeAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/visual/VisualToggleBlockModeAction.kt index 526d14a6c..ca17bf6ea 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/visual/VisualToggleBlockModeAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/visual/VisualToggleBlockModeAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.visual +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -17,6 +19,7 @@ import com.maddyhome.idea.vim.state.mode.SelectionType import com.maddyhome.idea.vim.handler.VimActionHandler import com.maddyhome.idea.vim.options.OptionConstants +@CommandOrMotion(keys = ["<C-q>", "<C-v>"], modes = [Mode.NORMAL, Mode.VISUAL]) public class VisualToggleBlockModeAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/visual/VisualToggleCharacterModeAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/visual/VisualToggleCharacterModeAction.kt index a748ba7c5..198e94eae 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/visual/VisualToggleCharacterModeAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/visual/VisualToggleCharacterModeAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.motion.visual +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -17,6 +19,7 @@ import com.maddyhome.idea.vim.state.mode.SelectionType import com.maddyhome.idea.vim.handler.VimActionHandler import com.maddyhome.idea.vim.options.OptionConstants +@CommandOrMotion(keys = ["v"], modes = [Mode.NORMAL, Mode.VISUAL]) public class VisualToggleCharacterModeAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/visual/VisualToggleLineModeAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/visual/VisualToggleLineModeAction.kt index e69045a62..45e54b8ee 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/visual/VisualToggleLineModeAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/visual/VisualToggleLineModeAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.motion.visual +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor @@ -20,6 +22,7 @@ import com.maddyhome.idea.vim.group.visual.vimSetSelection import com.maddyhome.idea.vim.handler.VimActionHandler import com.maddyhome.idea.vim.options.OptionConstants +@CommandOrMotion(keys = ["V"], modes = [Mode.NORMAL, Mode.VISUAL]) public class VisualToggleLineModeAction : VimActionHandler.ConditionalMulticaret() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/CloseWindowAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/CloseWindowAction.kt index a6bb8eff3..8162f85ca 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/CloseWindowAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/CloseWindowAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.window +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -17,6 +19,7 @@ import com.maddyhome.idea.vim.handler.VimActionHandler /** * @author rasendubi */ +@CommandOrMotion(keys = ["<C-W>c"], modes = [Mode.NORMAL]) public class CloseWindowAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/HorizontalSplitAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/HorizontalSplitAction.kt index 5cc830fbf..06205524b 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/HorizontalSplitAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/HorizontalSplitAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.window +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -17,6 +19,7 @@ import com.maddyhome.idea.vim.handler.VimActionHandler /** * @author rasendubi */ +@CommandOrMotion(keys = ["<C-W>s", "<C-W>S", "<C-W><C-S>"], modes = [Mode.NORMAL]) public class HorizontalSplitAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/LookupDownAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/LookupDownAction.kt index 64cbddfac..f45f51d30 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/LookupDownAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/LookupDownAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.window +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -18,6 +20,7 @@ import com.maddyhome.idea.vim.handler.VimActionHandler /** * @author Alex Plate */ +@CommandOrMotion(keys = ["<C-N>"], modes = [Mode.INSERT]) public class LookupDownAction : VimActionHandler.SingleExecution() { private val keySet = parseKeysSet("<C-N>") diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/LookupUpAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/LookupUpAction.kt index 0ac0a9ecc..f150c5740 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/LookupUpAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/LookupUpAction.kt @@ -8,6 +8,8 @@ package com.maddyhome.idea.vim.action.window +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -18,6 +20,7 @@ import com.maddyhome.idea.vim.handler.VimActionHandler /** * @author Alex Plate */ +@CommandOrMotion(keys = ["<C-P>"], modes = [Mode.INSERT]) public class LookupUpAction : VimActionHandler.SingleExecution() { private val keySet = setOf(injector.parser.parseKeys("<C-P>")) diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/VerticalSplitAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/VerticalSplitAction.kt index c42c698a8..971900904 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/VerticalSplitAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/VerticalSplitAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.window +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -17,6 +19,7 @@ import com.maddyhome.idea.vim.handler.VimActionHandler /** * @author rasendubi */ +@CommandOrMotion(keys = ["<C-W>v", "<C-W><C-V>"], modes = [Mode.NORMAL]) public class VerticalSplitAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/WindowAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/WindowAction.kt index c711ebad0..ff683bc68 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/WindowAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/WindowAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.window +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -17,6 +19,7 @@ import com.maddyhome.idea.vim.handler.VimActionHandler /** * @author vlan */ +@CommandOrMotion(keys = ["<C-W>j", "<C-W><C-J>", "<C-W><Down>"], modes = [Mode.NORMAL]) public class WindowDownAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY @@ -34,6 +37,7 @@ public class WindowDownAction : VimActionHandler.SingleExecution() { /** * @author vlan */ +@CommandOrMotion(keys = ["<C-W>h", "<C-W><C-H>", "<C-W><Left>"], modes = [Mode.NORMAL]) public class WindowLeftAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY @@ -51,6 +55,7 @@ public class WindowLeftAction : VimActionHandler.SingleExecution() { /** * @author vlan */ +@CommandOrMotion(keys = ["<C-W>l", "<C-W><C-L>", "<C-W><Right>"], modes = [Mode.NORMAL]) public class WindowRightAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY @@ -68,6 +73,7 @@ public class WindowRightAction : VimActionHandler.SingleExecution() { /** * @author vlan */ +@CommandOrMotion(keys = ["<C-W>k", "<C-W><C-K>", "<C-W><Up>"], modes = [Mode.NORMAL]) public class WindowUpAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/WindowNextAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/WindowNextAction.kt index 1045af6fd..a903f75de 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/WindowNextAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/WindowNextAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.window +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -17,6 +19,7 @@ import com.maddyhome.idea.vim.handler.VimActionHandler /** * @author rasendubi */ +@CommandOrMotion(keys = ["<C-W>w", "<C-W><C-W>"], modes = [Mode.NORMAL]) public class WindowNextAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY @@ -35,6 +38,7 @@ public class WindowNextAction : VimActionHandler.SingleExecution() { } } +@CommandOrMotion(keys = ["<C-W>W"], modes = [Mode.NORMAL]) public class WindowPrevAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/WindowOnlyAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/WindowOnlyAction.kt index 5dcb6fb05..8e625b8c7 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/WindowOnlyAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/WindowOnlyAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.window +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -17,6 +19,7 @@ import com.maddyhome.idea.vim.handler.VimActionHandler /** * @author rasendubi */ +@CommandOrMotion(keys = ["<C-W>o", "<C-W><C-O>"], modes = [Mode.NORMAL]) public class WindowOnlyAction : VimActionHandler.SingleExecution() { override val type: Command.Type = Command.Type.OTHER_READONLY diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/tabs/NextTabAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/tabs/NextTabAction.kt index 186eb47f0..de4b53c21 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/tabs/NextTabAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/tabs/NextTabAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.window.tabs +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -14,6 +16,7 @@ import com.maddyhome.idea.vim.command.Command import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.VimActionHandler +@CommandOrMotion(keys = ["gt"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class NextTabAction : VimActionHandler.SingleExecution() { override fun execute( editor: VimEditor, diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/tabs/PreviousTabAction.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/tabs/PreviousTabAction.kt index ffbd2a25a..3e774dd70 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/tabs/PreviousTabAction.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/window/tabs/PreviousTabAction.kt @@ -7,6 +7,8 @@ */ package com.maddyhome.idea.vim.action.window.tabs +import com.intellij.vim.annotations.CommandOrMotion +import com.intellij.vim.annotations.Mode import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor import com.maddyhome.idea.vim.api.injector @@ -14,6 +16,7 @@ import com.maddyhome.idea.vim.command.Command import com.maddyhome.idea.vim.command.OperatorArguments import com.maddyhome.idea.vim.handler.VimActionHandler +@CommandOrMotion(keys = ["gT"], modes = [Mode.NORMAL, Mode.VISUAL, Mode.OP_PENDING]) public class PreviousTabAction : VimActionHandler.SingleExecution() { override fun execute( editor: VimEditor,