1
0
mirror of https://github.com/chylex/IntelliJ-IdeaVim.git synced 2026-06-15 01:16:32 +02:00

Compare commits

..

26 Commits

Author SHA1 Message Date
898f37796e Set plugin version to chylex-53 2026-03-29 07:13:29 +02:00
69abc60e9a Preserve visual mode after executing IDE action 2026-03-29 07:13:29 +02:00
6aca28e8b2 Make g0/g^/g$ work with soft wraps 2026-03-29 07:13:29 +02:00
5fe6f44515 Make gj/gk jump over soft wraps 2026-03-29 07:13:29 +02:00
8ef7a16a80 Make camelCase motions adjust based on direction of visual selection 2026-03-29 07:13:29 +02:00
aec753ba5d Make search highlights temporary 2026-03-29 07:13:28 +02:00
c261b7e74d Exit insert mode after refactoring 2026-03-29 07:13:28 +02:00
01027e2f7c Add action to run last macro in all opened files 2026-03-29 07:13:28 +02:00
0fec45bce7 Stop macro execution after a failed search 2026-03-29 07:13:28 +02:00
43e962515e Revert per-caret registers 2026-03-29 07:13:28 +02:00
10e43fe8f9 Apply scrolloff after executing native IDEA actions 2026-03-29 07:13:28 +02:00
13e5af970b Automatically add unambiguous imports after running a macro 2026-03-29 07:13:28 +02:00
92954b913d Fix(VIM-3986): Exception when pasting register contents containing new line 2026-03-29 07:13:28 +02:00
9da511dfe8 Fix(VIM-3179): Respect virtual space below editor (imperfectly) 2026-03-29 07:13:28 +02:00
fbe9d1c6ef Fix(VIM-3178): Workaround to support "Jump to Source" action mapping 2026-03-29 07:13:28 +02:00
aee84e2700 Update search register when using f/t 2026-03-29 07:13:28 +02:00
ad9d493fc7 Add support for count for visual and line motion surround 2026-03-29 07:13:28 +02:00
484b135e83 Fix vim-surround not working with multiple cursors
Fixes multiple cursors with vim-surround commands `cs, ds, S` (but not `ys`).
2026-03-29 07:13:28 +02:00
0d284d443d Fix(VIM-696): Restore visual mode after undo/redo, and disable incompatible actions 2026-03-29 07:13:27 +02:00
22aeb5b963 Respect count with <Action> mappings 2026-03-29 07:13:27 +02:00
83f883e874 Change matchit plugin to use HTML patterns in unrecognized files 2026-03-29 07:13:27 +02:00
791ea56407 Fix ex command panel causing Undock tool window to hide 2026-03-29 07:13:27 +02:00
0a09c1e1c3 Reset insert mode when switching active editor 2026-03-29 07:13:27 +02:00
8a793d6cac Remove notifications about configuration options 2026-03-29 07:13:27 +02:00
00d3315a4e Remove AI 2026-03-29 07:13:27 +02:00
c2826e4a11 Set custom plugin version 2026-03-29 07:13:27 +02:00
4 changed files with 32 additions and 3 deletions

View File

@@ -303,6 +303,11 @@ tasks {
} }
}) })
} }
buildPlugin {
dependsOn(sourcesJar)
from(sourcesJar) { into("lib/src") }
}
} }
java { java {
@@ -375,7 +380,13 @@ intellijPlatform {
) )
ideaVersion { ideaVersion {
sinceBuild.set("253") // Let the Gradle plugin set the since-build version. It defaults to the version of the IDE we're building against
// specified as two components, `{branch}.{build}` (e.g., "241.15989"). There is no third component specified.
// The until-build version defaults to `{branch}.*`, but we want to support _all_ future versions, so we set it
// with a null provider (the provider is important).
// By letting the Gradle plugin handle this, the Plugin DevKit IntelliJ plugin cannot help us with the "Usage of
// IntelliJ API not available in older IDEs" inspection. However, since our since-build is the version we compile
// against, we can never get an API that's newer - it would be an unresolved symbol.
untilBuild.set(provider { null }) untilBuild.set(provider { null })
} }
} }

View File

@@ -20,7 +20,7 @@ ideaVersion=2026.1
# Values for type: https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html#intellij-extension-type # Values for type: https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html#intellij-extension-type
ideaType=IU ideaType=IU
instrumentPluginCode=true instrumentPluginCode=true
version=chylex-54 version=chylex-53
javaVersion=21 javaVersion=21
remoteRobotVersion=0.11.23 remoteRobotVersion=0.11.23
antlrVersion=4.10.1 antlrVersion=4.10.1

View File

@@ -49,6 +49,7 @@ import com.maddyhome.idea.vim.group.NotificationService
import com.maddyhome.idea.vim.group.visual.IdeaSelectionControl import com.maddyhome.idea.vim.group.visual.IdeaSelectionControl
import com.maddyhome.idea.vim.helper.exitSelectMode import com.maddyhome.idea.vim.helper.exitSelectMode
import com.maddyhome.idea.vim.helper.exitVisualMode import com.maddyhome.idea.vim.helper.exitVisualMode
import com.maddyhome.idea.vim.helper.hasVisualSelection
import com.maddyhome.idea.vim.helper.isIdeaVimDisabledHere import com.maddyhome.idea.vim.helper.isIdeaVimDisabledHere
import com.maddyhome.idea.vim.newapi.globalIjOptions import com.maddyhome.idea.vim.newapi.globalIjOptions
import com.maddyhome.idea.vim.newapi.initInjector import com.maddyhome.idea.vim.newapi.initInjector
@@ -332,6 +333,23 @@ internal object IdeaSpecifics {
vimEditor.exitMode() vimEditor.exitMode()
vimEditor.mode = Mode.NORMAL() vimEditor.mode = Mode.NORMAL()
} }
} else {
// IdeaSelectionControl will not be called if we're moving to a new variable with no change in selection.
// And if we're moving to the end of the template, the change in selection will reset us to Normal because
// IdeaSelectionControl will be called when the template is no longer active.
if ((!editor.selectionModel.hasSelection() && !vimEditor.mode.hasVisualSelection) || newIndex == -1) {
if (vimEditor.isIdeaRefactorModeSelect) {
if (vimEditor.mode !is Mode.INSERT) {
vimEditor.exitMode()
injector.application.runReadAction {
val context = injector.executionContextManager.getEditorExecutionContext(editor.vim)
VimPlugin.getChange().insertBeforeCaret(editor.vim, context)
}
}
} else {
vimEditor.mode = Mode.NORMAL()
}
}
} }
} }
} }

View File

@@ -20,5 +20,5 @@ import com.maddyhome.idea.vim.vimscript.model.functions.BuiltinFunctionHandler
@VimscriptFunction(name = "pumvisible") @VimscriptFunction(name = "pumvisible")
internal class PopupMenuVisibleFunctionHandler : BuiltinFunctionHandler<VimInt>() { internal class PopupMenuVisibleFunctionHandler : BuiltinFunctionHandler<VimInt>() {
override fun doFunction(arguments: Arguments, editor: VimEditor, context: ExecutionContext, vimContext: VimLContext) = override fun doFunction(arguments: Arguments, editor: VimEditor, context: ExecutionContext, vimContext: VimLContext) =
(CompletionService.getCompletionService().currentCompletion != null).asVimInt() (CompletionService.getCompletionService().currentCompletion == null).asVimInt()
} }