Commit Graph
10562 Commits
Author SHA1 Message Date
1grzyb1 2961707664 VIM-1025 Syntax highlighting in control chars editor 2026-06-10 08:13:15 +00:00
1grzyb1 1370b8820d VIM-1025 Notify about control chars editor 2026-06-10 08:13:15 +00:00
1grzyb1 c74e767159 VIM-1025 Add control chars editor
It adds new action that opens special kind of editor where user can paste and yank control cahrachters like ^M ^[.
Normally IDE doesn't allow showing them especially ^M is always turned into \n s othere was no way of editing macros.
2026-06-10 08:13:15 +00:00
claude[bot]andClaude Sonnet 4.6 6c6ac9518e Update changelog: Add abbreviations, CamelCaseMotion, window resize, YouCompleteMe
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-10 06:49:35 +00:00
1grzyb1 990d75af55 VIM-1617 YouCompleteMe plugin support
Add plugin that allows to cycle through completion using tab instead of arrow keys
2026-06-09 09:02:59 +00:00
1grzyb1 e1a19a869f VIM-2431 use count to repeat mapped action 2026-06-08 08:31:50 +00:00
1grzyb1 f1d8813628 VIM-3301 adjust cursor offset by sticky panel height
Adjust in cursor scroll calculation for sticky panel height so it doesn't hide under sticky panel when scrolloff=0
2026-06-08 07:39:20 +00:00
1grzyb1 b20a38f19a VIM-2501 Apply inlayAwareMinHeightFudge to all centering decisions
Guard height-based centering checks when block inlays make the visible line count unreliable.
2026-06-05 10:10:55 +00:00
1grzyb1 f2916c5564 VIM-2501 Refactor scrollCaretIntoViewVertically for readability
Extract nested if blocks into named methods with early returns, without changing scroll behavior.
2026-06-05 10:10:55 +00:00
1grzyb1 915df3498d VIM-2529 Don' scroll after incremental search finish
Scroll during enter on inc search was triggered twice. One from search itself and once from exiting ex panel. Disable scroll in exit seach panel when it's executign incsearch
2026-06-05 08:23:04 +00:00
1grzyb1 13cd78e9b4 VIM-1638 equalize windows proportions 2026-06-03 09:34:36 +00:00
1grzyb1 84ce9f7879 VIM-1638 Resize windows width 2026-06-03 09:34:36 +00:00
1grzyb1 3768d3af09 VIM-1638 Resize windows height 2026-06-03 09:34:36 +00:00
1grzyb1 d2a4e20537 Fix release pipeline
generating changelog was triggered twice once from ts script and second one from plugin
2026-06-03 06:48:19 +00:00
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