diff --git a/src/main/java/com/maddyhome/idea/vim/listener/RiderSpecifics.kt b/src/main/java/com/maddyhome/idea/vim/listener/RiderSpecifics.kt index 883a8abfb..e860be3d6 100644 --- a/src/main/java/com/maddyhome/idea/vim/listener/RiderSpecifics.kt +++ b/src/main/java/com/maddyhome/idea/vim/listener/RiderSpecifics.kt @@ -22,6 +22,7 @@ import com.maddyhome.idea.vim.VimPlugin import com.maddyhome.idea.vim.group.visual.IdeaSelectionControl import com.maddyhome.idea.vim.group.visual.moveCaretOneCharLeftFromSelectionEnd import com.maddyhome.idea.vim.helper.getTopLevelEditor +import com.maddyhome.idea.vim.helper.isIdeaVimDisabledHere internal class RiderActionListener : AnActionListener { @@ -45,9 +46,11 @@ internal class RiderActionListener : AnActionListener { editor?.caretModel?.addCaretListener(object : CaretListener { override fun caretPositionChanged(event: CaretEvent) { val eventEditor = event.editor.getTopLevelEditor() - val predictedMode = - IdeaSelectionControl.predictMode(eventEditor, VimListenerManager.SelectionSource.OTHER) - moveCaretOneCharLeftFromSelectionEnd(eventEditor, predictedMode) + if (!eventEditor.isIdeaVimDisabledHere) { + val predictedMode = + IdeaSelectionControl.predictMode(eventEditor, VimListenerManager.SelectionSource.OTHER) + moveCaretOneCharLeftFromSelectionEnd(eventEditor, predictedMode) + } eventEditor.caretModel.removeCaretListener(this) } }) diff --git a/src/main/java/com/maddyhome/idea/vim/listener/VimListenerManager.kt b/src/main/java/com/maddyhome/idea/vim/listener/VimListenerManager.kt index c8cee2f56..07fd5a2b6 100644 --- a/src/main/java/com/maddyhome/idea/vim/listener/VimListenerManager.kt +++ b/src/main/java/com/maddyhome/idea/vim/listener/VimListenerManager.kt @@ -87,6 +87,7 @@ import com.maddyhome.idea.vim.helper.exitVisualMode import com.maddyhome.idea.vim.helper.forceBarCursor import com.maddyhome.idea.vim.helper.inVisualMode import com.maddyhome.idea.vim.helper.isEndAllowed +import com.maddyhome.idea.vim.helper.isIdeaVimDisabledHere import com.maddyhome.idea.vim.helper.moveToInlayAwareOffset import com.maddyhome.idea.vim.helper.resetVimLastColumn import com.maddyhome.idea.vim.helper.updateCaretsVisualAttributes @@ -642,7 +643,9 @@ internal object VimListenerManager { private var cutOffFixed = false override fun mouseDragged(e: EditorMouseEvent) { - val caret = e.editor.caretModel.primaryCaret + val editor = e.editor + if (editor.isIdeaVimDisabledHere) return + val caret = editor.caretModel.primaryCaret clearFirstSelectionEvents(e) @@ -734,6 +737,7 @@ internal object VimListenerManager { } override fun mousePressed(event: EditorMouseEvent) { + if (event.editor.isIdeaVimDisabledHere) return MouseEventsDataHolder.dragEventCount = MouseEventsDataHolder.allowedSkippedDragEvents SelectionVimListenerSuppressor.reset() } @@ -745,6 +749,7 @@ internal object VimListenerManager { * - Click-hold and switch editor (ctrl-tab) */ override fun mouseReleased(event: EditorMouseEvent) { + if (event.editor.isIdeaVimDisabledHere) return SelectionVimListenerSuppressor.unlock() clearFirstSelectionEvents(event) @@ -768,6 +773,7 @@ internal object VimListenerManager { } override fun mouseClicked(event: EditorMouseEvent) { + if (event.editor.isIdeaVimDisabledHere) return logger.debug("Mouse clicked") if (event.area == EditorMouseEventArea.EDITING_AREA) { @@ -829,6 +835,7 @@ internal object VimListenerManager { override fun mousePressed(e: MouseEvent?) { val editor = (e?.component as? EditorComponentImpl)?.editor ?: return + if (editor.isIdeaVimDisabledHere) return val predictedMode = IdeaSelectionControl.predictMode(editor, SelectionSource.MOUSE) when (e.clickCount) { 1 -> {