1
0
mirror of https://github.com/chylex/IntelliJ-IdeaVim.git synced 2025-05-03 04:34:03 +02:00

Use the property to change the state of the octopus handler

This commit is contained in:
Alex Plate 2024-02-23 15:32:35 +02:00
parent 6d01b5be77
commit 247aaed188
No known key found for this signature in database
GPG Key ID: 0B97153C8FFEC09F
14 changed files with 23 additions and 33 deletions
.github/workflows
build.gradle.kts
src
main/java/com/maddyhome/idea/vim
test/java/org/jetbrains/plugins/ideavim/action/change/insert
tests/ui-ij-tests/src/test/kotlin/ui
vim-engine/src/main/kotlin/com/maddyhome/idea/vim

View File

@ -9,9 +9,6 @@ jobs:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Apply Patch
run: |
git apply tests/ui-ij-tests/src/test/kotlin/ui/octopus.patch
- name: Setup Java
uses: actions/setup-java@v4
with:
@ -30,7 +27,7 @@ jobs:
- name: Run Idea
run: |
mkdir -p build/reports
gradle runIdeForUiTests > build/reports/idea.log &
gradle runIdeForUiTests -Doctopus.handler=false > build/reports/idea.log &
- name: Wait for Idea started
uses: jtalk/url-health-check-action@v3
with:

View File

@ -206,6 +206,11 @@ tasks {
systemProperty("jb.privacy.policy.text", "<!--999.999-->")
systemProperty("jb.consents.confirmation.enabled", "false")
systemProperty("ide.show.tips.on.startup.default.value", "false")
systemProperty("octopus.handler", System.getProperty("octopus.handler") ?: true)
}
runIde {
systemProperty("octopus.handler", System.getProperty("octopus.handler") ?: true)
}
}

View File

@ -228,7 +228,7 @@ public class KeyGroup extends VimKeyGroupBase implements PersistentStateComponen
private void registerRequiredShortcut(@NotNull List<KeyStroke> keys, MappingOwner owner) {
for (KeyStroke key : keys) {
if (key.getKeyChar() == KeyEvent.CHAR_UNDEFINED) {
if (!injector.getOptionGroup().getGlobalOptions().getOctopushandler() ||
if (!injector.getApplication().isOctopusEnabled() ||
!(key.getKeyCode() == KeyEvent.VK_ESCAPE && key.getModifiers() == 0) &&
!(key.getKeyCode() == KeyEvent.VK_ENTER && key.getModifiers() == 0)) {
getRequiredShortcutKeys().add(new RequiredShortcut(key, owner));

View File

@ -27,7 +27,6 @@ import com.intellij.openapi.util.UserDataHolder
import com.intellij.openapi.util.removeUserData
import com.maddyhome.idea.vim.KeyHandler
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.key
import com.maddyhome.idea.vim.group.IjOptionConstants
@ -362,4 +361,4 @@ internal fun isOctopusEnabled(s: KeyStroke, editor: Editor): Boolean {
}
internal val enableOctopus: Boolean
get() = injector.globalOptions().octopushandler
get() = injector.application.isOctopusEnabled()

View File

@ -86,6 +86,12 @@ internal class IjVimApplication : VimApplicationBase() {
com.maddyhome.idea.vim.helper.runAfterGotFocus(runnable)
}
override fun isOctopusEnabled(): Boolean {
val property = System.getProperty("octopus.handler") ?: "true"
if (property.isBlank()) return true
return property.toBoolean()
}
private fun createKeyEvent(stroke: KeyStroke, component: Component): KeyEvent {
return KeyEvent(
component,

View File

@ -17,7 +17,6 @@ import com.intellij.openapi.editor.actionSystem.EditorActionHandlerBean
import com.intellij.openapi.extensions.ExtensionPointName
import com.intellij.testFramework.ExtensionTestUtil
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.state.mode.Mode
import org.jetbrains.plugins.ideavim.SkipNeovimReason
@ -47,7 +46,7 @@ class InsertEnterActionTest : VimTestCase() {
forEachBean.action = "EditorEnter"
forEachBean.setPluginDescriptor(PluginManagerCore.getPlugin(VimPlugin.getPluginId())!!)
if (injector.globalOptions().octopushandler) {
if (injector.application.isOctopusEnabled()) {
if (repetitionInfo.currentRepetition == 1) {
ExtensionTestUtil.maskExtensions(
ExtensionPointName("com.intellij.editorActionHandler"),

View File

@ -1,17 +0,0 @@
Index: vim-engine/src/main/kotlin/com/maddyhome/idea/vim/api/Options.kt
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/api/Options.kt b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/api/Options.kt
--- a/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/api/Options.kt (revision 2cc7ce5b316be5665406dcf8d3e41116ccbfb0b0)
+++ b/vim-engine/src/main/kotlin/com/maddyhome/idea/vim/api/Options.kt (date 1706273373741)
@@ -302,7 +302,7 @@
public val ideaglobalmode: ToggleOption = addOption(ToggleOption("ideaglobalmode", GLOBAL, "ideaglobalmode", false))
public val ideastrictmode: ToggleOption = addOption(ToggleOption("ideastrictmode", GLOBAL, "ideastrictmode", false))
public val ideatracetime: ToggleOption = addOption(ToggleOption("ideatracetime", GLOBAL, "ideatracetime", false))
- public val octopushandler: ToggleOption = addOption(ToggleOption("octopushandler", GLOBAL, "octopushandler", true))
+ public val octopushandler: ToggleOption = addOption(ToggleOption("octopushandler", GLOBAL, "octopushandler", false))
}
private class MultikeyMap(vararg entries: Option<VimDataType>) {

View File

@ -11,7 +11,6 @@ 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.globalOptions
import com.maddyhome.idea.vim.api.injector
import com.maddyhome.idea.vim.command.Command
import com.maddyhome.idea.vim.command.CommandFlags
@ -32,7 +31,7 @@ public class InsertEnterAction : VimActionHandler.SingleExecution() {
cmd: Command,
operatorArguments: OperatorArguments,
): Boolean {
if (injector.globalOptions().octopushandler) {
if (injector.application.isOctopusEnabled()) {
if (editor.isInForEachCaretScope()) {
editor.removeSecondaryCarets()
injector.changeGroup.processEnter(editor, editor.primaryCaret(), context)

View File

@ -12,7 +12,6 @@ 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.globalOptions
import com.maddyhome.idea.vim.api.injector
import com.maddyhome.idea.vim.command.Command
import com.maddyhome.idea.vim.command.OperatorArguments
@ -33,7 +32,7 @@ public class SelectEnterAction : VimActionHandler.SingleExecution() {
cmd: Command,
operatorArguments: OperatorArguments,
): Boolean {
if (injector.globalOptions().octopushandler) {
if (injector.application.isOctopusEnabled()) {
if (editor.isInForEachCaretScope()) {
editor.removeSecondaryCarets()
injector.changeGroup.processEnter(editor, editor.primaryCaret(), context)

View File

@ -58,7 +58,6 @@ public open class GlobalOptions(scope: OptionAccessScope): OptionsPropertiesBase
// Temporary flags for work-in-progress behaviour. Hidden from the output of `:set all`
public var ideastrictmode: Boolean by optionProperty(Options.ideastrictmode)
public var ideatracetime: Boolean by optionProperty(Options.ideatracetime)
public var octopushandler: Boolean by optionProperty(Options.octopushandler)
}
/**

View File

@ -322,7 +322,6 @@ public object Options {
// Temporary feature flags for work-in-progress behaviour, diagnostic switches, etc. Hidden from the output of `:set all`
public val ideastrictmode: ToggleOption = addOption(ToggleOption("ideastrictmode", GLOBAL, "ideastrictmode", false, isHidden = true))
public val ideatracetime: ToggleOption = addOption(ToggleOption("ideatracetime", GLOBAL, "ideatracetime", false, isHidden = true))
public val octopushandler: ToggleOption = addOption(ToggleOption("octopushandler", GLOBAL, "octopushandler", true, isHidden = true))
}
private class MultikeyMap(vararg entries: Option<VimDataType>) {

View File

@ -28,4 +28,5 @@ public interface VimApplication {
public fun currentStackTrace(): String
public fun runAfterGotFocus(runnable: Runnable)
public fun isOctopusEnabled(): Boolean
}

View File

@ -169,7 +169,7 @@ public abstract class VimKeyGroupBase : VimKeyGroup {
for (key in fromKeys) {
if (key.keyChar == KeyEvent.CHAR_UNDEFINED) {
if (
!injector.globalOptions().octopushandler ||
!injector.application.isOctopusEnabled() ||
!(key.keyCode == KeyEvent.VK_ESCAPE && key.modifiers == 0) &&
!(key.keyCode == KeyEvent.VK_ENTER && key.modifiers == 0)
) {

View File

@ -69,4 +69,8 @@ public class VimApplicationStub : VimApplicationBase() {
override fun runAfterGotFocus(runnable: Runnable) {
TODO("Not yet implemented")
}
override fun isOctopusEnabled(): Boolean {
TODO("Not yet implemented")
}
}