Commit Graph
10448 Commits
Author SHA1 Message Date
Alex PlateandClaude Opus 4.8 df38f3b31e Migrate EAP release actions script to TypeScript
Replace the scripts:eapReleaseActions Gradle/Kotlin task with a tsx
implementation wired into the EAP release pipeline as a script step.
Behavior is unchanged: Ready To Release tickets not yet tagged as
released in EAP get the tag plus the EAP-availability comment.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-02 17:51:04 +03:00
Alex Plate ce372eada8 Fix(VIM-3459): smartcase should not affect star search highlighting
findAll silently ignored its ignoreCase parameter and re-derived case
sensitivity from the global smartcase/ignorecase options. As a result,
using * on a capitalized word with 'smartcase' enabled performed a
case-insensitive search but highlighted only the case-sensitive matches.

findAll now honors an explicit ignoreCase request: smartcase is skipped
and ignorecase is forced when the caller has already resolved case
handling. Behavior is unchanged when ignoreCase is false, so existing
callers are unaffected.

Cherry-picked from #1466 by davidot.
2026-06-02 17:30:31 +03:00
1grzyb1 643b76e069 VIM-1984 Implement CamelCaseMotion plugin 2026-06-02 09:48:32 +00:00
1grzyb1 da60924404 VIM-1362 add :Abolish command to abolish plugin 2026-06-01 09:21:27 +00:00
1grzyb1 2107442040 Fix(VIM-4245): Batch caret events in block-visual to unfreeze split mode
In split mode every per-caret event drove PatchEngineEditorSynchronizer, which walks all carets to build a model and ships an RD-protocol message per event — block-visual motion fires N caret events × O(N) per event = O(N²) per keystroke on the host, freezing the EDT.

Bulk caret-mutating sites (block-visual setVisualSelection, exitVisualMode's secondary-caret removal, repeatInsert's row-by-row replay) now run inside caretModel.runForEachCaret so beforeAllCaretsAction/afterAllCaretsAction fire and the synchronizer batches per-event sends into one end-of-op snapshot; a new CaretVisualAttributesListenerSuppressor gates IdeaVim's own EditorCaretHandler.updateCaretsVisualAttributes to drop the same O(N²) walk on the local side.
2026-05-29 13:22:05 +00:00
1grzyb1 55aadff3cb VIM-2078 recursion guard test 2026-05-29 08:25:40 +00:00
1grzyb1 145e05d76f VIM-2078 ! in abbrev listing 2026-05-29 08:25:40 +00:00
1grzyb1 d7d9d9c7a5 VIM-2078 Use iskeyword option in abbrev 2026-05-29 08:25:40 +00:00
1grzyb1 1b0e39899d VIM-2078 Added <expr> in abbreviation parsing and handling 2026-05-29 08:25:40 +00:00
1grzyb1 5c2f1e7301 VIM-2078 added buffer scoped abbreviations 2026-05-29 08:25:40 +00:00
1grzyb1 c06640fe71 VIM-2078 invalidate abbreviation session when caret moves 2026-05-29 08:25:40 +00:00
1grzyb1 3bbc5a0c9e VIM-2078 command line abbreviations 2026-05-29 08:25:40 +00:00
1grzyb1 1857b1a1bf VIM-2078 Added clearing abbreviations 2026-05-29 08:25:40 +00:00
1grzyb1 0fa82885bb VIM-2078 Adding new abbreviations and expanding them on trigger 2026-05-29 08:25:40 +00:00
claude[bot]andClaude Sonnet 4.6 cc49079b48 Update changelog: Fix macro editor tracking (VIM-4238)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 06:40:43 +00:00
dependabot[bot] 29b7c862c0 Bump org.junit.jupiter:junit-jupiter from 6.0.3 to 6.1.0
Bumps [org.junit.jupiter:junit-jupiter](https://github.com/junit-team/junit-framework) from 6.0.3 to 6.1.0.
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r6.0.3...r6.1.0)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter
  dependency-version: 6.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-27 18:14:53 +00:00
dependabot[bot] 7ac369c630 Bump org.kodein.di:kodein-di-jvm from 7.31.0 to 7.32.0
Bumps [org.kodein.di:kodein-di-jvm](https://github.com/kosi-libs/Kodein) from 7.31.0 to 7.32.0.
- [Release notes](https://github.com/kosi-libs/Kodein/releases)
- [Changelog](https://github.com/kosi-libs/Kodein/blob/main/CHANGELOG.md)
- [Commits](https://github.com/kosi-libs/Kodein/compare/v7.31.0...v7.32.0)

---
updated-dependencies:
- dependency-name: org.kodein.di:kodein-di-jvm
  dependency-version: 7.32.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-27 18:13:33 +00:00
1grzyb1 7520863dd1 VIM-4238 Track current editor in macro
In search window editor was chagned but macro group was using previous one so we had to change way of tracking if editor has chagne during macro execution
2026-05-27 08:45:00 +00:00
claude[bot]andClaude Sonnet 4.6 1d6f16794e Clean up dead code and unnecessary verbosity in MultiVisitor
- Remove dead if/else in visitRange: both branches returned the same
  Multi.RangeMulti value, making the condition a no-op
- Simplify `?: run { 0 }` to `?: 0` in limited lookbehind visitors;
  a run block with a single constant expression adds no value

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 15:58:50 +03:00
claude[bot]andClaude Sonnet 4.6 5786cb7bf7 Fix incomplete KDoc comment on PatternVisitor.hasUpperCase
The comment "Determines whether the visited tree contains" was missing
what the tree contains; it now reads "contains uppercase characters".

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 15:58:50 +03:00
Alex Plate 46c07a251b Update changelog for 2.36.0 release 2026-05-22 17:03:15 +03:00
Alex Plate e1eff60d31 Migrate TeamCity build number script to TypeScript 2026-05-22 16:49:43 +03:00
Alex Plate 93da94e052 Remove fake Kotlin script configuration 2026-05-22 16:38:22 +03:00
Alex Plate e66731216b chore: update package lock 2026-05-22 16:37:53 +03:00
Alex PlateandClaude Opus 4.7 60a0d67c0f Drop manual changeNotes sync from changelog skill and PR-review prompt
`build.gradle.kts` `changeNotes` is now auto-derived from CHANGES.md at
build time via the org.jetbrains.changelog plugin, so the skill and the
claude-code-review workflow note no longer need to mention syncing it
by hand.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 14:51:42 +03:00
Alex PlateandClaude Opus 4.7 e4c8bb636b Wire pluginConfiguration.changeNotes to read from CHANGES.md
Replaces the 30-line hardcoded HTML block with a provider that renders
the matching section from CHANGES.md via the org.jetbrains.changelog
plugin (already configured). Falls back to the latest released section
during dev / SNAPSHOT builds, so patchPluginXml always produces sensible
output.

After this lands, releases no longer need a manual sync of changeNotes
against CHANGES.md — the TS promoter that runs earlier in the pipeline
is the single source of truth.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 14:47:56 +03:00
Alex PlateandClaude Opus 4.7 d824f37c19 Delete superseded Kotlin changelog promoter and commit-changes scripts
These were disabled in TeamCity since well before 2.29.0 and the TS
promoter wired in the previous commit takes over their responsibilities.

JGit stays as a dependency — still used by addReleaseTag.kt,
selectBranch.kt, calculateNewDevVersion.kt, and util.kt.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 14:39:04 +03:00
Alex PlateandClaude Opus 4.7 618bd5b185 Wire TypeScript changelog promoter into release pipeline
Replaces the long-disabled Kotlin changelogUpdateUnreleased/commitChanges
gradle steps with a new TS CLI (scripts-ts/src/promoteChangelog.ts) plus
two TC script steps:

* "Update change log" + "Commit preparation changes" — run on the
  release branch before tagging, so the release tag points at the
  promoted CHANGES.md commit.
* "Sync changelog to master" — runs after publish to mirror the
  promotion on master. Master push is soft-fail so an upstream race
  with the daily cron doesn't sink the marketplace release.

The promoter is a pure function (replace `## [To Be Released]` →
`## X.Y.Z, YYYY-MM-DD` for major/minor; no-op for patch releases per
the project convention that patches roll into the parent minor). Ten
vitest tests cover the behavior. CLI wrapper handles the TC entrypoint.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 14:35:40 +03:00
Alex PlateandClaude Opus 4.7 007c6ef155 Drop ScriptsToolingProbe TeamCity build
The probe served its diagnostic purpose: confirmed Node 22.18.0 / npm
10.9.3 / npx are available on the release-class Linux agent via nvm.
With that question answered, the build type is no longer useful.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 14:35:28 +03:00
Alex PlateandClaude Opus 4.7 847ae7343d Add TeamCity probe to check node/npm on release-class agent
One-shot diagnostic build before wiring scripts-ts CLIs (the new
promoteChangelog.ts) into the release pipeline. Runs on the same
agent requirements as ReleasePlugin (Linux, MEDIUM CPU) and prints
node/npm/npx availability and PATH. No triggers — run manually.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 13:42:18 +03:00
Alex PlateandClaude Opus 4.7 15ef84eed5 Split CHANGES.md "To Be Released" into 2.29.0–2.35.0 sections
The "To Be Released" section had accumulated everything from 2.29.0
through 2.35.x because the release pipeline's promoter step was
disabled in TC and the YouTrack ticket update step was broken (fixed
in 13b6a9ff9). Bucketed each entry to the release that first shipped
the change, using PR merge commits and git tag containment.

Per the project convention, patch releases roll into their parent
minor; 2.31.x is folded into 2.32.0 since 2.31.0 was unlisted on the
marketplace. 2.34.0 gets its own section noting it is a re-release
of 2.33.0 (same commit). VIM-3948 (Full IDE integration epic) is
excluded per the changelog skill's Vim Everywhere rule.

build.gradle.kts changeNotes synced to the 2.35.0 section.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 13:42:17 +03:00
Alex PlateandClaude Opus 4.7 dc28fdb273 Fix double URL-encoding in release YouTrack queries
Commit a1e5b6788 switched getYoutrackTicketsByQuery to ktor's
parameter() helper, which URL-encodes its value. The two release
call sites still passed pre-encoded queries, so they were encoded
again and YouTrack searched for the literal "%23{Ready To Release}…",
returning 0 tickets. Result: every minor/major release since 2.29.0
logged "No tickets to update statuses" and skipped state transitions,
version creation, and Fix-versions assignment.

Pass plain text from the call sites so parameter() encodes exactly once.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 13:36:59 +03:00
1grzyb1 14e7cfe0e7 VIM-4245 Fix repeat-insert undo grouping so one u reverts one logical change
Wrap the undo-mark only when there's actual replay work (count > 1,  block insert, or dot-repeat) — otherwise the always-fired wrap on plain `iHi<Esc>` emitted an empty mark group that swallowed the first `u`.
2026-05-22 09:41:25 +00:00
1grzyb1 95128f407b VIM-4235 use native saveFile action in :w
using FilerometeApi didn't trigger reformat on save action in splitmode/rider so I chagned it to native action execution in on save
2026-05-22 08:42:52 +00:00
1grzyb1 224156324d VIM-4245 group repeatInsert and insertPreviousInsert into single undo 2026-05-22 07:30:54 +00:00
1grzyb1andClaude Opus 4.7 6366fa23db VIM-4234 Restore IntelliJ 2026.1 for split-mode tests
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>
2026-05-22 06:39:44 +00:00
claude[bot]andClaude Sonnet 4.6 cba0f9c003 Update changelog: Add abolish plugin (VIM-1362)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-21 06:43:59 +00:00
dependabot[bot] 36c9cab683 Bump org.junit:junit-bom from 6.0.3 to 6.1.0
Bumps [org.junit:junit-bom](https://github.com/junit-team/junit-framework) from 6.0.3 to 6.1.0.
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r6.0.3...r6.1.0)

---
updated-dependencies:
- dependency-name: org.junit:junit-bom
  dependency-version: 6.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-20 20:51:14 +00:00
dependabot[bot] 9a59af217d Bump io.ktor:ktor-serialization-kotlinx-json from 3.4.3 to 3.5.0
Bumps [io.ktor:ktor-serialization-kotlinx-json](https://github.com/ktorio/ktor) from 3.4.3 to 3.5.0.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/3.4.3...3.5.0)

---
updated-dependencies:
- dependency-name: io.ktor:ktor-serialization-kotlinx-json
  dependency-version: 3.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-20 20:50:44 +00:00
dependabot[bot] 004602e59b Bump org.junit.vintage:junit-vintage-engine from 6.0.3 to 6.1.0
Bumps [org.junit.vintage:junit-vintage-engine](https://github.com/junit-team/junit-framework) from 6.0.3 to 6.1.0.
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r6.0.3...r6.1.0)

---
updated-dependencies:
- dependency-name: org.junit.vintage:junit-vintage-engine
  dependency-version: 6.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-20 20:50:20 +00:00
1grzyb1 4cf7d6d4dc VIM-1362 Add abolish search 2026-05-20 10:40:45 +00:00
1grzyb1 6c7da4c183 VIM-1362 refactor abolish plugin to walk through substitiute command
This is the way real plugin does that, and it gives us all flags for free
2026-05-20 10:40:45 +00:00
1grzyb1 a7dcf36522 VIM-1362 Add user-defined coercion through g:abolish_coercions variable 2026-05-20 10:40:45 +00:00
1grzyb1 660753fdcd VIM-1362 Add missing coercion mappings 2026-05-20 10:40:45 +00:00
1grzyb1 3aedcceb13 VIM-1362 Add count to recase action 2026-05-20 10:40:45 +00:00
1grzyb1 6662525333 VIM-1362 Visual mode coercions 2026-05-20 10:40:45 +00:00
1grzyb1 2f0b72f933 VIM-1362 operator pending coersion mapping 2026-05-20 10:40:45 +00:00
1grzyb1 f57dbb4fa9 VIM-1362 add missing gap between original abolish plugin 2026-05-20 10:40:45 +00:00
1grzyb1 c7c82fa580 VIM-1362 Implement vim abolish plugin 2026-05-20 10:40:45 +00:00
1grzyb1 b82640018a Fix split mode tests 2026-05-20 10:23:29 +00:00