diff --git a/src/main/java/com/maddyhome/idea/vim/VimTypedActionHandler.kt b/src/main/java/com/maddyhome/idea/vim/VimTypedActionHandler.kt index fc499c402..76bbf073a 100644 --- a/src/main/java/com/maddyhome/idea/vim/VimTypedActionHandler.kt +++ b/src/main/java/com/maddyhome/idea/vim/VimTypedActionHandler.kt @@ -16,7 +16,6 @@ import com.intellij.openapi.editor.actionSystem.TypedActionHandlerEx import com.intellij.openapi.progress.ProcessCanceledException import com.maddyhome.idea.vim.api.globalOptions import com.maddyhome.idea.vim.api.injector -import com.maddyhome.idea.vim.helper.EditorDataContext import com.maddyhome.idea.vim.helper.inInsertMode import com.maddyhome.idea.vim.helper.isIdeaVimDisabledHere import com.maddyhome.idea.vim.key.KeyHandlerKeeper @@ -76,7 +75,7 @@ class VimTypedActionHandler(origHandler: TypedActionHandler) : TypedActionHandle val modifiers = if (charTyped == ' ' && VimKeyListener.isSpaceShift) KeyEvent.SHIFT_DOWN_MASK else 0 val keyStroke = KeyStroke.getKeyStroke(charTyped, modifiers) val startTime = if (traceTime) System.currentTimeMillis() else null - handler.handleKey(editor.vim, keyStroke, EditorDataContext.init(editor, context).vim) + handler.handleKey(editor.vim, keyStroke, injector.executionContextManager.onEditor(editor.vim, context.vim)) if (startTime != null) { val duration = System.currentTimeMillis() - startTime LOG.info("VimTypedAction '$charTyped': $duration ms") diff --git a/src/main/java/com/maddyhome/idea/vim/action/VimShortcutKeyAction.kt b/src/main/java/com/maddyhome/idea/vim/action/VimShortcutKeyAction.kt index 5863ed5a8..3df3cc94a 100644 --- a/src/main/java/com/maddyhome/idea/vim/action/VimShortcutKeyAction.kt +++ b/src/main/java/com/maddyhome/idea/vim/action/VimShortcutKeyAction.kt @@ -28,7 +28,6 @@ import com.maddyhome.idea.vim.VimPlugin import com.maddyhome.idea.vim.api.globalOptions import com.maddyhome.idea.vim.api.injector import com.maddyhome.idea.vim.api.options -import com.maddyhome.idea.vim.helper.EditorDataContext import com.maddyhome.idea.vim.helper.EditorHelper import com.maddyhome.idea.vim.helper.HandlerInjector import com.maddyhome.idea.vim.helper.inInsertMode @@ -69,7 +68,11 @@ class VimShortcutKeyAction : AnAction(), DumbAware/*, LightEditCompatible*/ { // Should we use HelperKt.getTopLevelEditor(editor) here, as we did in former EditorKeyHandler? try { val start = if (traceTime) System.currentTimeMillis() else null - KeyHandler.getInstance().handleKey(editor.vim, keyStroke, EditorDataContext.init(editor, e.dataContext).vim) + KeyHandler.getInstance().handleKey( + editor.vim, + keyStroke, + injector.executionContextManager.onEditor(editor.vim, e.dataContext.vim) + ) if (start != null) { val duration = System.currentTimeMillis() - start LOG.info("VimShortcut update '$keyStroke': $duration ms") diff --git a/src/main/java/com/maddyhome/idea/vim/extension/VimExtensionFacade.kt b/src/main/java/com/maddyhome/idea/vim/extension/VimExtensionFacade.kt index 94201fbfc..79f0c9b4b 100644 --- a/src/main/java/com/maddyhome/idea/vim/extension/VimExtensionFacade.kt +++ b/src/main/java/com/maddyhome/idea/vim/extension/VimExtensionFacade.kt @@ -15,12 +15,12 @@ import com.maddyhome.idea.vim.VimPlugin import com.maddyhome.idea.vim.action.change.Extension import com.maddyhome.idea.vim.api.ImmutableVimCaret import com.maddyhome.idea.vim.api.VimCaret +import com.maddyhome.idea.vim.api.injector import com.maddyhome.idea.vim.command.MappingMode import com.maddyhome.idea.vim.command.SelectionType import com.maddyhome.idea.vim.common.CommandAlias import com.maddyhome.idea.vim.common.CommandAliasHandler import com.maddyhome.idea.vim.helper.CommandLineHelper -import com.maddyhome.idea.vim.helper.EditorDataContext import com.maddyhome.idea.vim.helper.TestInputModel import com.maddyhome.idea.vim.helper.vimStateMachine import com.maddyhome.idea.vim.key.MappingOwner @@ -130,8 +130,8 @@ object VimExtensionFacade { */ @JvmStatic fun executeNormalWithoutMapping(keys: List<KeyStroke>, editor: Editor) { - val context = EditorDataContext.init(editor) - keys.forEach { KeyHandler.getInstance().handleKey(editor.vim, it, context.vim, false, false) } + val context = injector.executionContextManager.onEditor(editor.vim) + keys.forEach { KeyHandler.getInstance().handleKey(editor.vim, it, context, false, false) } } /** Returns a single key stroke from the user input similar to 'getchar()'. */ diff --git a/src/main/java/com/maddyhome/idea/vim/extension/replacewithregister/ReplaceWithRegister.kt b/src/main/java/com/maddyhome/idea/vim/extension/replacewithregister/ReplaceWithRegister.kt index f39e66b39..55f0da4b6 100644 --- a/src/main/java/com/maddyhome/idea/vim/extension/replacewithregister/ReplaceWithRegister.kt +++ b/src/main/java/com/maddyhome/idea/vim/extension/replacewithregister/ReplaceWithRegister.kt @@ -28,7 +28,6 @@ import com.maddyhome.idea.vim.extension.VimExtensionFacade.executeNormalWithoutM import com.maddyhome.idea.vim.extension.VimExtensionFacade.putKeyMappingIfMissing import com.maddyhome.idea.vim.extension.VimExtensionFacade.setOperatorFunction import com.maddyhome.idea.vim.group.visual.VimSelection -import com.maddyhome.idea.vim.helper.EditorDataContext import com.maddyhome.idea.vim.helper.editorMode import com.maddyhome.idea.vim.helper.exitVisualMode import com.maddyhome.idea.vim.helper.mode @@ -169,7 +168,7 @@ class ReplaceWithRegister : VimExtension { ClipboardOptionHelper.IdeaputDisabler().use { VimPlugin.getPut().putText( IjVimEditor(editor), - IjEditorExecutionContext(EditorDataContext.init(editor)), + injector.executionContextManager.onEditor(editor.vim), putData, operatorArguments = OperatorArguments( editor.vimStateMachine?.isOperatorPending ?: false, diff --git a/src/main/java/com/maddyhome/idea/vim/group/EditorGroup.java b/src/main/java/com/maddyhome/idea/vim/group/EditorGroup.java index 8a2567cc1..ccf16e291 100644 --- a/src/main/java/com/maddyhome/idea/vim/group/EditorGroup.java +++ b/src/main/java/com/maddyhome/idea/vim/group/EditorGroup.java @@ -13,17 +13,20 @@ import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.components.PersistentStateComponent; import com.intellij.openapi.components.State; import com.intellij.openapi.components.Storage; -import com.intellij.openapi.editor.*; +import com.intellij.openapi.editor.Editor; +import com.intellij.openapi.editor.EditorGutter; +import com.intellij.openapi.editor.EditorSettings; +import com.intellij.openapi.editor.LineNumberConverter; import com.intellij.openapi.editor.event.CaretEvent; import com.intellij.openapi.editor.event.CaretListener; import com.intellij.openapi.editor.ex.EditorGutterComponentEx; import com.intellij.openapi.project.Project; import com.maddyhome.idea.vim.KeyHandler; import com.maddyhome.idea.vim.VimPlugin; +import com.maddyhome.idea.vim.api.ExecutionContext; import com.maddyhome.idea.vim.api.VimEditor; import com.maddyhome.idea.vim.api.VimEditorGroup; import com.maddyhome.idea.vim.helper.*; -import com.maddyhome.idea.vim.newapi.IjEditorExecutionContext; import com.maddyhome.idea.vim.newapi.IjVimEditor; import com.maddyhome.idea.vim.options.LocalOptionChangeListener; import com.maddyhome.idea.vim.options.OptionConstants; @@ -214,7 +217,8 @@ public class EditorGroup implements PersistentStateComponent<Element>, VimEditor if (!EditorHelper.isFileEditor(editor) && editor.getDocument().isWritable() && !CommandStateHelper.inInsertMode(editor)) { - VimPlugin.getChange().insertBeforeCursor(new IjVimEditor(editor), new IjEditorExecutionContext(EditorDataContext.init(editor, null))); + ExecutionContext.Editor context = injector.getExecutionContextManager().onEditor(new IjVimEditor(editor), null); + VimPlugin.getChange().insertBeforeCursor(new IjVimEditor(editor), context); KeyHandler.getInstance().reset(new IjVimEditor(editor)); } updateCaretsVisualAttributes(editor); diff --git a/src/main/java/com/maddyhome/idea/vim/group/SearchGroup.java b/src/main/java/com/maddyhome/idea/vim/group/SearchGroup.java index b2ccab533..23adc127f 100644 --- a/src/main/java/com/maddyhome/idea/vim/group/SearchGroup.java +++ b/src/main/java/com/maddyhome/idea/vim/group/SearchGroup.java @@ -803,7 +803,7 @@ public class SearchGroup extends VimSearchGroupBase implements PersistentStateCo if (expression != null) { try { match = expression - .evaluate(editor, new IjEditorExecutionContext(EditorDataContext.init(((IjVimEditor) editor).getEditor(), null)), parent) + .evaluate(editor, injector.getExecutionContextManager().onEditor(editor, null), parent) .toInsertableString(); } catch (Exception e) { exceptions.add((ExException) e); @@ -979,7 +979,8 @@ public class SearchGroup extends VimSearchGroupBase implements PersistentStateCo else { // XXX: The Ex entry panel is used only for UI here, its logic might be inappropriate for this method final ExEntryPanel exEntryPanel = ExEntryPanel.getInstanceWithoutShortcuts(); - exEntryPanel.activate(editor, EditorDataContext.init(editor, null), MessageHelper.message("replace.with.0", match), "", 1); + ExecutionContext.Editor context = injector.getExecutionContextManager().onEditor(new IjVimEditor(editor), null); + exEntryPanel.activate(editor, ((IjEditorExecutionContext)context).getContext(), MessageHelper.message("replace.with.0", match), "", 1); new IjVimCaret(caret).moveToOffset(startoff); ModalEntry.INSTANCE.activate(new IjVimEditor(editor), keyStrokeProcessor); exEntryPanel.deactivate(true, false); diff --git a/src/main/java/com/maddyhome/idea/vim/group/visual/IdeaSelectionControl.kt b/src/main/java/com/maddyhome/idea/vim/group/visual/IdeaSelectionControl.kt index bf1df6341..eab2e379c 100644 --- a/src/main/java/com/maddyhome/idea/vim/group/visual/IdeaSelectionControl.kt +++ b/src/main/java/com/maddyhome/idea/vim/group/visual/IdeaSelectionControl.kt @@ -116,7 +116,7 @@ object IdeaSelectionControl { .enterSelectMode(editor.vim, VimPlugin.getVisualMotion().autodetectVisualSubmode(editor.vim)) VimStateMachine.Mode.INSERT -> VimPlugin.getChange().insertBeforeCursor( editor.vim, - EditorDataContext.init(editor).vim + injector.executionContextManager.onEditor(editor.vim) ) VimStateMachine.Mode.COMMAND -> Unit else -> error("Unexpected mode: $mode") diff --git a/src/main/java/com/maddyhome/idea/vim/helper/CommandLineHelper.kt b/src/main/java/com/maddyhome/idea/vim/helper/CommandLineHelper.kt index 974cdc264..1c8432c30 100644 --- a/src/main/java/com/maddyhome/idea/vim/helper/CommandLineHelper.kt +++ b/src/main/java/com/maddyhome/idea/vim/helper/CommandLineHelper.kt @@ -12,6 +12,7 @@ import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.components.Service import com.maddyhome.idea.vim.action.change.Extension import com.maddyhome.idea.vim.api.VimEditor +import com.maddyhome.idea.vim.api.injector import com.maddyhome.idea.vim.newapi.ij import com.maddyhome.idea.vim.newapi.vim import com.maddyhome.idea.vim.ui.ModalEntry @@ -52,7 +53,7 @@ class CommandLineHelper : VimCommandLineHelper { var text: String? = null // XXX: The Ex entry panel is used only for UI here, its logic might be inappropriate for input() val exEntryPanel = ExEntryPanel.getInstanceWithoutShortcuts() - exEntryPanel.activate(editor, EditorDataContext.init(editor), prompt.ifEmpty { " " }, "", 1) + exEntryPanel.activate(editor, injector.executionContextManager.onEditor(editor.vim).ij, prompt.ifEmpty { " " }, "", 1) ModalEntry.activate(editor.vim) { key: KeyStroke -> return@activate when { key.isCloseKeyStroke() -> { diff --git a/src/main/java/com/maddyhome/idea/vim/listener/IdeaSpecifics.kt b/src/main/java/com/maddyhome/idea/vim/listener/IdeaSpecifics.kt index bec960e25..12e0d9bc0 100644 --- a/src/main/java/com/maddyhome/idea/vim/listener/IdeaSpecifics.kt +++ b/src/main/java/com/maddyhome/idea/vim/listener/IdeaSpecifics.kt @@ -34,7 +34,6 @@ import com.maddyhome.idea.vim.api.globalOptions import com.maddyhome.idea.vim.api.injector import com.maddyhome.idea.vim.command.VimStateMachine import com.maddyhome.idea.vim.group.NotificationService -import com.maddyhome.idea.vim.helper.EditorDataContext import com.maddyhome.idea.vim.helper.inNormalMode import com.maddyhome.idea.vim.helper.isIdeaVimDisabledHere import com.maddyhome.idea.vim.helper.vimStateMachine @@ -163,7 +162,10 @@ object IdeaSpecifics { // Enable insert mode if there is no selection in template // Template with selection is handled by [com.maddyhome.idea.vim.group.visual.VisualMotionGroup.controlNonVimSelectionChange] if (editor.inNormalMode) { - VimPlugin.getChange().insertBeforeCursor(editor.vim, EditorDataContext.init(editor).vim) + VimPlugin.getChange().insertBeforeCursor( + editor.vim, + injector.executionContextManager.onEditor(editor.vim) + ) KeyHandler.getInstance().reset(editor.vim) } } diff --git a/src/main/java/com/maddyhome/idea/vim/newapi/IjEditorExecutionContext.kt b/src/main/java/com/maddyhome/idea/vim/newapi/IjEditorExecutionContext.kt index f7ccae6b2..1acd561ed 100644 --- a/src/main/java/com/maddyhome/idea/vim/newapi/IjEditorExecutionContext.kt +++ b/src/main/java/com/maddyhome/idea/vim/newapi/IjEditorExecutionContext.kt @@ -11,11 +11,11 @@ package com.maddyhome.idea.vim.newapi import com.intellij.openapi.actionSystem.DataContext import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.VimEditor -import com.maddyhome.idea.vim.helper.EditorDataContext +import com.maddyhome.idea.vim.api.injector open class IjEditorExecutionContext(override val context: DataContext) : ExecutionContext.Editor { override fun updateEditor(editor: VimEditor): ExecutionContext { - return IjEditorExecutionContext(EditorDataContext.init((editor as IjVimEditor).editor, context)) + return IjEditorExecutionContext(injector.executionContextManager.onEditor(editor, context.vim).ij) } } diff --git a/src/main/java/com/maddyhome/idea/vim/newapi/IjExecutionContextManager.kt b/src/main/java/com/maddyhome/idea/vim/newapi/IjExecutionContextManager.kt index b1040dbe6..9c3f19757 100644 --- a/src/main/java/com/maddyhome/idea/vim/newapi/IjExecutionContextManager.kt +++ b/src/main/java/com/maddyhome/idea/vim/newapi/IjExecutionContextManager.kt @@ -14,6 +14,7 @@ import com.maddyhome.idea.vim.api.ExecutionContext import com.maddyhome.idea.vim.api.ExecutionContextManagerBase import com.maddyhome.idea.vim.api.VimCaret import com.maddyhome.idea.vim.api.VimEditor +import com.maddyhome.idea.vim.api.injector import com.maddyhome.idea.vim.helper.EditorDataContext import com.maddyhome.idea.vim.options.helpers.StrictMode @@ -21,8 +22,6 @@ import com.maddyhome.idea.vim.options.helpers.StrictMode class IjExecutionContextManager : ExecutionContextManagerBase() { override fun onEditor(editor: VimEditor, prevContext: ExecutionContext?): ExecutionContext.Editor { if (prevContext is ExecutionContext.CaretAndEditor) { - StrictMode.fail("You should not create context on editor from the context on caret and editor") - prevContext.updateEditor(editor) return prevContext } return IjEditorExecutionContext(EditorDataContext.init((editor as IjVimEditor).editor, prevContext?.ij)) diff --git a/src/main/java/com/maddyhome/idea/vim/ui/ExOutputPanel.java b/src/main/java/com/maddyhome/idea/vim/ui/ExOutputPanel.java index 8bc5ac3bf..308ef4040 100644 --- a/src/main/java/com/maddyhome/idea/vim/ui/ExOutputPanel.java +++ b/src/main/java/com/maddyhome/idea/vim/ui/ExOutputPanel.java @@ -17,8 +17,11 @@ import com.intellij.ui.components.JBScrollPane; import com.intellij.util.IJSwingUtilities; import com.maddyhome.idea.vim.KeyHandler; import com.maddyhome.idea.vim.VimPlugin; -import com.maddyhome.idea.vim.helper.*; -import com.maddyhome.idea.vim.newapi.IjEditorExecutionContext; +import com.maddyhome.idea.vim.api.ExecutionContext; +import com.maddyhome.idea.vim.helper.HelperKt; +import com.maddyhome.idea.vim.helper.MessageHelper; +import com.maddyhome.idea.vim.helper.UiHelper; +import com.maddyhome.idea.vim.helper.UserDataManager; import com.maddyhome.idea.vim.newapi.IjVimEditor; import com.maddyhome.idea.vim.options.OptionConstants; import org.jetbrains.annotations.Nls; @@ -296,8 +299,8 @@ public class ExOutputPanel extends JPanel { final List<KeyStroke> keys = new ArrayList<>(1); keys.add(key); KeyHandler.getInstance().getKeyStack().addKeys(keys); - VimPlugin.getMacro().playbackKeys(new IjVimEditor(myEditor), new IjEditorExecutionContext(EditorDataContext.init(myEditor, null)), - 1); + ExecutionContext.Editor context = injector.getExecutionContextManager().onEditor(new IjVimEditor(myEditor), null); + VimPlugin.getMacro().playbackKeys(new IjVimEditor(myEditor), context, 1); } }); } diff --git a/src/main/java/com/maddyhome/idea/vim/ui/ex/ExEditorKit.kt b/src/main/java/com/maddyhome/idea/vim/ui/ex/ExEditorKit.kt index a6f10d8c9..32a3f1bbb 100644 --- a/src/main/java/com/maddyhome/idea/vim/ui/ex/ExEditorKit.kt +++ b/src/main/java/com/maddyhome/idea/vim/ui/ex/ExEditorKit.kt @@ -10,7 +10,7 @@ package com.maddyhome.idea.vim.ui.ex import com.intellij.openapi.diagnostic.debug import com.intellij.openapi.diagnostic.logger import com.maddyhome.idea.vim.KeyHandler -import com.maddyhome.idea.vim.helper.EditorDataContext +import com.maddyhome.idea.vim.api.injector import com.maddyhome.idea.vim.newapi.vim import org.jetbrains.annotations.NonNls import java.awt.event.ActionEvent @@ -125,7 +125,11 @@ object ExEditorKit : DefaultEditorKit() { if (target.useHandleKeyFromEx) { val entry = ExEntryPanel.getInstance().entry val editor = entry.editor - KeyHandler.getInstance().handleKey(editor.vim, key, EditorDataContext.init(editor, entry.context).vim) + KeyHandler.getInstance().handleKey( + editor.vim, + key, + injector.executionContextManager.onEditor(editor.vim, entry.context.vim) + ) } else { val event = ActionEvent(e.source, e.id, c.toString(), e.getWhen(), e.modifiers) super.actionPerformed(event) diff --git a/src/main/java/com/maddyhome/idea/vim/ui/ex/ExShortcutKeyAction.kt b/src/main/java/com/maddyhome/idea/vim/ui/ex/ExShortcutKeyAction.kt index 212d24616..eaf769ccf 100644 --- a/src/main/java/com/maddyhome/idea/vim/ui/ex/ExShortcutKeyAction.kt +++ b/src/main/java/com/maddyhome/idea/vim/ui/ex/ExShortcutKeyAction.kt @@ -13,7 +13,7 @@ import com.intellij.openapi.actionSystem.AnActionEvent import com.intellij.openapi.actionSystem.KeyboardShortcut import com.intellij.openapi.project.DumbAwareAction import com.maddyhome.idea.vim.KeyHandler -import com.maddyhome.idea.vim.helper.EditorDataContext +import com.maddyhome.idea.vim.api.injector import com.maddyhome.idea.vim.newapi.vim import java.awt.event.KeyEvent import javax.swing.KeyStroke @@ -36,7 +36,11 @@ class ExShortcutKeyAction(private val exEntryPanel: ExEntryPanel) : DumbAwareAct val keyStroke = getKeyStroke(e) if (keyStroke != null) { val editor = exEntryPanel.entry.editor - KeyHandler.getInstance().handleKey(editor.vim, keyStroke, EditorDataContext.init(editor, e.dataContext).vim) + KeyHandler.getInstance().handleKey( + editor.vim, + keyStroke, + injector.executionContextManager.onEditor(editor.vim, e.dataContext.vim) + ) } } diff --git a/src/test/java/org/jetbrains/plugins/ideavim/VimTestCase.kt b/src/test/java/org/jetbrains/plugins/ideavim/VimTestCase.kt index a308fc910..d83f555a2 100644 --- a/src/test/java/org/jetbrains/plugins/ideavim/VimTestCase.kt +++ b/src/test/java/org/jetbrains/plugins/ideavim/VimTestCase.kt @@ -46,7 +46,6 @@ import com.maddyhome.idea.vim.command.VimStateMachine.SubMode import com.maddyhome.idea.vim.ex.ExException import com.maddyhome.idea.vim.ex.ExOutputModel.Companion.getInstance import com.maddyhome.idea.vim.group.visual.VimVisualTimer.swingTimer -import com.maddyhome.idea.vim.helper.EditorDataContext import com.maddyhome.idea.vim.helper.EditorHelper import com.maddyhome.idea.vim.helper.GuicursorChangeListener import com.maddyhome.idea.vim.helper.RunnableHelper.runWriteCommand @@ -59,6 +58,7 @@ import com.maddyhome.idea.vim.key.MappingOwner import com.maddyhome.idea.vim.key.ToKeysMappingInfo import com.maddyhome.idea.vim.listener.SelectionVimListenerSuppressor import com.maddyhome.idea.vim.newapi.IjVimEditor +import com.maddyhome.idea.vim.newapi.ij import com.maddyhome.idea.vim.newapi.vim import com.maddyhome.idea.vim.options.OptionConstants import com.maddyhome.idea.vim.options.OptionScope @@ -645,7 +645,7 @@ abstract class VimTestCase : UsefulTestCase() { val e = AnActionEvent( event, - EditorDataContext.init(editor), + injector.executionContextManager.onEditor(editor.vim).ij, ActionPlaces.KEYBOARD_SHORTCUT, VimShortcutKeyAction.instance.templatePresentation.clone(), ActionManager.getInstance(), @@ -666,7 +666,7 @@ abstract class VimTestCase : UsefulTestCase() { fun typeText(keys: List<KeyStroke?>, editor: Editor, project: Project?) { val keyHandler = KeyHandler.getInstance() - val dataContext = EditorDataContext.init(editor) + val dataContext = injector.executionContextManager.onEditor(editor.vim) TestInputModel.getInstance(editor).setKeyStrokes(keys.filterNotNull()) runWriteCommand( project, @@ -674,7 +674,7 @@ abstract class VimTestCase : UsefulTestCase() { val inputModel = TestInputModel.getInstance(editor) var key = inputModel.nextKeyStroke() while (key != null) { - keyHandler.handleKey(editor.vim, key, dataContext.vim) + keyHandler.handleKey(editor.vim, key, dataContext) key = inputModel.nextKeyStroke() } }, diff --git a/src/test/java/org/jetbrains/plugins/ideavim/helper/CaretVisualAttributesHelperTest.kt b/src/test/java/org/jetbrains/plugins/ideavim/helper/CaretVisualAttributesHelperTest.kt index b49a24728..aa262734b 100644 --- a/src/test/java/org/jetbrains/plugins/ideavim/helper/CaretVisualAttributesHelperTest.kt +++ b/src/test/java/org/jetbrains/plugins/ideavim/helper/CaretVisualAttributesHelperTest.kt @@ -14,7 +14,6 @@ import com.intellij.openapi.editor.VisualPosition import com.intellij.openapi.editor.ex.EditorSettingsExternalizable import com.maddyhome.idea.vim.VimPlugin import com.maddyhome.idea.vim.api.injector -import com.maddyhome.idea.vim.helper.EditorDataContext import com.maddyhome.idea.vim.helper.VimBehaviorDiffers import com.maddyhome.idea.vim.newapi.vim import junit.framework.TestCase @@ -286,7 +285,10 @@ class CaretVisualAttributesHelperTest : VimTestCase() { |all rocks and lavender and tufted grass, """.trimMargin() ) - injector.actionExecutor.executeAction("EditorCloneCaretBelow", EditorDataContext.init(myFixture.editor).vim) + injector.actionExecutor.executeAction( + "EditorCloneCaretBelow", + injector.executionContextManager.onEditor(myFixture.editor.vim) + ) TestCase.assertEquals(2, myFixture.editor.caretModel.caretCount) assertCaretVisualAttributes(CaretVisualAttributes.Shape.BLOCK, 0f) }