From ae4b88a06b385cb32b96cd7ce846a12a9e509687 Mon Sep 17 00:00:00 2001 From: Filipp Vakhitov <filipp.vakhitov@jetbrains.com> Date: Fri, 31 May 2024 22:27:41 +0300 Subject: [PATCH] Remove ExEntryPanel and move its method to VimCommandLine --- .../idea/vim/newapi/IjExEntryPanel.kt | 19 ------------------- .../idea/vim/newapi/IjVimInjector.kt | 3 --- .../idea/vim/ui/ex/ExEntryPanel.java | 10 ++++++++++ .../maddyhome/idea/vim/ui/ex/ExTextField.java | 2 +- .../maddyhome/idea/vim/api/ExEntryPanel.kt | 14 -------------- .../maddyhome/idea/vim/api/VimCommandLine.kt | 3 +++ .../com/maddyhome/idea/vim/api/VimInjector.kt | 3 --- .../idea/vim/key/consumers/DigraphConsumer.kt | 4 ++-- 8 files changed, 16 insertions(+), 42 deletions(-) delete mode 100644 src/main/java/com/maddyhome/idea/vim/newapi/IjExEntryPanel.kt delete mode 100644 vim-engine/src/main/kotlin/com/maddyhome/idea/vim/api/ExEntryPanel.kt diff --git a/src/main/java/com/maddyhome/idea/vim/newapi/IjExEntryPanel.kt b/src/main/java/com/maddyhome/idea/vim/newapi/IjExEntryPanel.kt deleted file mode 100644 index 25bc3db4d..000000000 --- a/src/main/java/com/maddyhome/idea/vim/newapi/IjExEntryPanel.kt +++ /dev/null @@ -1,19 +0,0 @@ -/* - * 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.maddyhome.idea.vim.newapi - -import com.intellij.openapi.components.Service -import com.maddyhome.idea.vim.api.ExEntryPanel - -@Service -internal class IjExEntryPanel : ExEntryPanel { - override fun clearCurrentAction() { - com.maddyhome.idea.vim.ui.ex.ExEntryPanel.getInstance().entry.clearCurrentAction() - } -} diff --git a/src/main/java/com/maddyhome/idea/vim/newapi/IjVimInjector.kt b/src/main/java/com/maddyhome/idea/vim/newapi/IjVimInjector.kt index a240ea895..2471e1c47 100644 --- a/src/main/java/com/maddyhome/idea/vim/newapi/IjVimInjector.kt +++ b/src/main/java/com/maddyhome/idea/vim/newapi/IjVimInjector.kt @@ -14,7 +14,6 @@ import com.intellij.openapi.diagnostic.Logger import com.intellij.openapi.editor.Editor import com.intellij.openapi.editor.textarea.TextComponentEditorImpl import com.maddyhome.idea.vim.api.EngineEditorHelper -import com.maddyhome.idea.vim.api.ExEntryPanel import com.maddyhome.idea.vim.api.ExecutionContextManager import com.maddyhome.idea.vim.api.LocalOptionInitialisationScenario import com.maddyhome.idea.vim.api.NativeActionManager @@ -107,8 +106,6 @@ internal class IjVimInjector : VimInjectorBase() { override val actionExecutor: VimActionExecutor get() = service<IjActionExecutor>() - override val exEntryPanel: ExEntryPanel - get() = service<IjExEntryPanel>() override val exOutputPanel: VimExOutputPanelService get() = object : VimExOutputPanelService { override fun getPanel(editor: VimEditor): VimExOutputPanel { diff --git a/src/main/java/com/maddyhome/idea/vim/ui/ex/ExEntryPanel.java b/src/main/java/com/maddyhome/idea/vim/ui/ex/ExEntryPanel.java index c0b468ed9..705ed2869 100644 --- a/src/main/java/com/maddyhome/idea/vim/ui/ex/ExEntryPanel.java +++ b/src/main/java/com/maddyhome/idea/vim/ui/ex/ExEntryPanel.java @@ -492,6 +492,16 @@ public class ExEntryPanel extends JPanel implements VimCommandLine { entry.updateText(string); } + @Override + public void clearPromptCharacter() { + entry.clearCurrentActionPromptCharacter(); + } + + @Override + public void clearCurrentAction() { + entry.clearCurrentAction(); + } + public static class LafListener implements LafManagerListener { @Override public void lookAndFeelChanged(@NotNull LafManager source) { diff --git a/src/main/java/com/maddyhome/idea/vim/ui/ex/ExTextField.java b/src/main/java/com/maddyhome/idea/vim/ui/ex/ExTextField.java index a795d2774..0d42d05c0 100644 --- a/src/main/java/com/maddyhome/idea/vim/ui/ex/ExTextField.java +++ b/src/main/java/com/maddyhome/idea/vim/ui/ex/ExTextField.java @@ -333,7 +333,7 @@ public class ExTextField extends JTextField { setCaretPosition(currentActionPromptCharacterOffset); } - private void clearCurrentActionPromptCharacter() { + void clearCurrentActionPromptCharacter() { final int offset = getCaretPosition(); final String text = removePromptCharacter(); updateText(text); diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/api/ExEntryPanel.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/api/ExEntryPanel.kt deleted file mode 100644 index 6bf076ce8..000000000 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/api/ExEntryPanel.kt +++ /dev/null @@ -1,14 +0,0 @@ -/* - * 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.maddyhome.idea.vim.api - -public interface ExEntryPanel { - @Deprecated("Remove it after completely removing Swing TextActions") - public fun clearCurrentAction() -} diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/api/VimCommandLine.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/api/VimCommandLine.kt index cf5f4bc98..6fed61d72 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/api/VimCommandLine.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/api/VimCommandLine.kt @@ -33,4 +33,7 @@ public interface VimCommandLine { public fun deactivate(refocusOwningEditor: Boolean, resetCaret: Boolean) public fun setPromptCharacter(char: Char) + public fun clearPromptCharacter() + + public fun clearCurrentAction() } \ No newline at end of file diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/api/VimInjector.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/api/VimInjector.kt index aef07498e..c5959361a 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/api/VimInjector.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/api/VimInjector.kt @@ -108,9 +108,6 @@ public interface VimInjector { // Can't be fully moved to vim-engine. public val actionExecutor: VimActionExecutor - // Can't be fully moved to vim-engine. - public val exEntryPanel: ExEntryPanel - // Can't be fully moved to vim-engine. public val exOutputPanel: VimExOutputPanelService diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/key/consumers/DigraphConsumer.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/key/consumers/DigraphConsumer.kt index 715219fef..43bdf0c05 100644 --- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/key/consumers/DigraphConsumer.kt +++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/key/consumers/DigraphConsumer.kt @@ -72,7 +72,7 @@ public class DigraphConsumer : KeyConsumer { return false } else { keyProcessResultBuilder.addExecutionStep { _, _, _ -> - injector.exEntryPanel.clearCurrentAction() + commandLine.clearCurrentAction() } } } @@ -96,7 +96,7 @@ public class DigraphConsumer : KeyConsumer { return false } else { keyProcessResultBuilder.addExecutionStep { _, _, _ -> - injector.exEntryPanel.clearCurrentAction() + commandLine.clearCurrentAction() } } }