mirror of
https://github.com/chylex/IntelliJ-IdeaVim.git
synced 2025-05-02 19:34:04 +02:00
Fix(VIM-3825): Proper processing of enter for Rider & similar IDEs
This commit is contained in:
parent
46f9aa4df2
commit
abdb6cb906
src/main/java/com/maddyhome/idea/vim
@ -25,7 +25,6 @@ import com.intellij.openapi.fileEditor.FileDocumentManager
|
|||||||
import com.intellij.openapi.util.Key
|
import com.intellij.openapi.util.Key
|
||||||
import com.intellij.openapi.util.UserDataHolder
|
import com.intellij.openapi.util.UserDataHolder
|
||||||
import com.intellij.openapi.util.removeUserData
|
import com.intellij.openapi.util.removeUserData
|
||||||
import com.intellij.util.PlatformUtils
|
|
||||||
import com.maddyhome.idea.vim.KeyHandler
|
import com.maddyhome.idea.vim.KeyHandler
|
||||||
import com.maddyhome.idea.vim.VimPlugin
|
import com.maddyhome.idea.vim.VimPlugin
|
||||||
import com.maddyhome.idea.vim.api.injector
|
import com.maddyhome.idea.vim.api.injector
|
||||||
@ -36,8 +35,6 @@ import com.maddyhome.idea.vim.helper.IjActionExecutor
|
|||||||
import com.maddyhome.idea.vim.helper.inNormalMode
|
import com.maddyhome.idea.vim.helper.inNormalMode
|
||||||
import com.maddyhome.idea.vim.helper.isPrimaryEditor
|
import com.maddyhome.idea.vim.helper.isPrimaryEditor
|
||||||
import com.maddyhome.idea.vim.helper.updateCaretsVisualAttributes
|
import com.maddyhome.idea.vim.helper.updateCaretsVisualAttributes
|
||||||
import com.maddyhome.idea.vim.ide.isClionNova
|
|
||||||
import com.maddyhome.idea.vim.ide.isRider
|
|
||||||
import com.maddyhome.idea.vim.newapi.actionStartedFromVim
|
import com.maddyhome.idea.vim.newapi.actionStartedFromVim
|
||||||
import com.maddyhome.idea.vim.newapi.globalIjOptions
|
import com.maddyhome.idea.vim.newapi.globalIjOptions
|
||||||
import com.maddyhome.idea.vim.newapi.vim
|
import com.maddyhome.idea.vim.newapi.vim
|
||||||
@ -365,8 +362,6 @@ internal fun isOctopusEnabled(s: KeyStroke, editor: Editor): Boolean {
|
|||||||
// CMD line has a different processing mechanizm: the processing actions are registered
|
// CMD line has a different processing mechanizm: the processing actions are registered
|
||||||
// for the input field component. These keys are not dispatched via the octopus handler.
|
// for the input field component. These keys are not dispatched via the octopus handler.
|
||||||
if (editor.vim.mode is Mode.CMD_LINE) return false
|
if (editor.vim.mode is Mode.CMD_LINE) return false
|
||||||
// Turn off octopus for some IDEs. They have issues with ENTER and ESC on the octopus like VIM-3815
|
|
||||||
if (isRider() || PlatformUtils.isJetBrainsClient() || isClionNova()) return false
|
|
||||||
when {
|
when {
|
||||||
s.keyCode == KeyEvent.VK_ENTER && s.modifiers == 0 -> return true
|
s.keyCode == KeyEvent.VK_ENTER && s.modifiers == 0 -> return true
|
||||||
s.keyCode == KeyEvent.VK_ESCAPE && s.modifiers == 0 -> return true
|
s.keyCode == KeyEvent.VK_ESCAPE && s.modifiers == 0 -> return true
|
||||||
|
@ -13,9 +13,12 @@ import com.intellij.openapi.application.ModalityState
|
|||||||
import com.intellij.openapi.components.Service
|
import com.intellij.openapi.components.Service
|
||||||
import com.intellij.openapi.util.Computable
|
import com.intellij.openapi.util.Computable
|
||||||
import com.intellij.util.ExceptionUtil
|
import com.intellij.util.ExceptionUtil
|
||||||
|
import com.intellij.util.PlatformUtils
|
||||||
import com.maddyhome.idea.vim.api.VimApplicationBase
|
import com.maddyhome.idea.vim.api.VimApplicationBase
|
||||||
import com.maddyhome.idea.vim.api.VimEditor
|
import com.maddyhome.idea.vim.api.VimEditor
|
||||||
import com.maddyhome.idea.vim.diagnostic.vimLogger
|
import com.maddyhome.idea.vim.diagnostic.vimLogger
|
||||||
|
import com.maddyhome.idea.vim.ide.isClionNova
|
||||||
|
import com.maddyhome.idea.vim.ide.isRider
|
||||||
import java.awt.Component
|
import java.awt.Component
|
||||||
import java.awt.Toolkit
|
import java.awt.Toolkit
|
||||||
import java.awt.Window
|
import java.awt.Window
|
||||||
@ -74,6 +77,8 @@ internal class IjVimApplication : VimApplicationBase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun isOctopusEnabled(): Boolean {
|
override fun isOctopusEnabled(): Boolean {
|
||||||
|
// Turn off octopus for some IDEs. They have issues with ENTER and ESC on the octopus like VIM-3815
|
||||||
|
if (isRider() || PlatformUtils.isJetBrainsClient() || isClionNova()) return false
|
||||||
val property = System.getProperty("octopus.handler") ?: "true"
|
val property = System.getProperty("octopus.handler") ?: "true"
|
||||||
if (property.isBlank()) return true
|
if (property.isBlank()) return true
|
||||||
return property.toBoolean()
|
return property.toBoolean()
|
||||||
|
Loading…
Reference in New Issue
Block a user