The VIM-4234 rollback dropped both Java 25→21 *and* ideaVersion 2026.1→2025.3
because Java 25 was incompatible with the platform. The Java rollback was the
necessary fix; the IDE-version rollback was a side change that broke 3
split-mode tests due to 2025.3 JBC regressions in speculative undo and
`IdeDocumentHistoryImpl.RecentPlacesListener.isChanged`.
Java 21 + IntelliJ 2026.1 is the prior known-working combination
(`Ideavim_IdeaVimTests_2026_1` build config has been green on master), so
restoring it here gets all 24 split-mode tests passing again. Verified
locally and on TeamCity personal build #16791.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The 262 EAP refactored ide-starter (commit aa3d516047 in
intellij-community, "AT-2967 Compile time dependency on dedicated
IDE info"): IdeProductProvider was removed, and per-IDE info now
lives in dedicated modules accessed via IdeInfo.Companion.IdeaUltimate.
Constructing IdeInfo directly is the only form that compiles on
both 261 (default ideaVersion=2026.1) and 262 (LATEST-EAP-SNAPSHOT),
since the IdeInfo data-class signature is unchanged across the
refactor. Values mirror DefaultIdeaUltimate from the new
intellij.tools.ide.starter.product.idea.ultimate module.
This unblocks :tests:split-mode-tests:compileTestKotlin on the
Latest EAP TeamCity build, which was failing with "Unresolved
reference 'IdeProductProvider'".
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The latest IntelliJ EAP ships module-descriptors.xml with new
namespace and visibility attributes (e.g. namespace="jetbrains",
namespace="$legacy_jps_library") that 2.11.0's strict xmlutil
deserializer rejects with UnknownXmlFieldException, blocking
:intellijPlatformTestClasspath resolution and preventing :test
from being scheduled at all on the Latest EAP TeamCity build.
2.12 accepted namespace/visibility, 2.15 introduced a tolerant
parser for the 262.* IDE format, 2.16 added $legacy_jps_module
namespace handling. The positional 3-arg create(type, version,
Boolean) overload was dropped in 2.15, so property-tests is
switched to the lambda form already used by every other module.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Implements g; and g, to walk through the per-buffer change list, mirroring Neovim's b_changelist semantics. The list is fed by the backend's RecentPlacesListener over an RPC topic (the same pattern as the existing jump service), so it works in both monolith and split mode.
normally space is added by rider/clion backend which we cannot directlly execute as it is not running on JVM. Workaround is to specify space flag for comment handler
in split mode/clion/ rider, after the comment action runs on rpc, it happens after removing selection. To fix that, we execute handler directly in synchronous way
Formatting was broken in split mode and also in monolith mode cursor position restoring didn't match vim actual behaviour. refactored it to work in same way as commenting works