Commit Graph
10562 Commits
Author SHA1 Message Date
Matt Ellis 863c131be5 Use transferTo method instead of own copy method 2026-06-22 09:51:19 +02:00
Matt Ellis b0f721ffc2 Refresh VFS after executing shell command
Fixes VIM-4240
2026-06-22 09:51:19 +02:00
claude[bot]andClaude Opus 4.8 cf41c518c6 Update changelog: Fix operators over collapsed folds (VIM-1082)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-20 06:47:00 +00:00
1grzyb1 22e626ad4b VIM-1082 Check for end line motion fold 2026-06-19 13:19:30 +02:00
1grzyb1 c6f787ede1 VIM-1082 properly detect line end when 2026-06-19 13:19:30 +02:00
1grzyb1 d63510c7b8 VIM-1082 folds at begining of line 2026-06-19 13:19:30 +02:00
1grzyb1 aff1d4db63 VIM-1082 delete fold only when motion covers start of region
We shouldn't mimic exactly vim here as it always remove whole line with fold region but in ij fold might be in middle of line or just end of it so we don't want to delete fold content whne we do dl in middle of line
2026-06-19 13:19:30 +02:00
1grzyb1 78ebb9122c VIM-1082 motions over fold regions
motions on closed fold regions didn't take into account this fold region so dd only deleted first line without collapsed content
2026-06-19 13:19:30 +02:00
claude[bot]andClaude Opus 4.8 7ba1eb2cde Update changelog: Add returnTo Insert mode fix after mouse selection
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 07:02:13 +00:00
IdeaVim Bot ec3301f2b9 Preparation to 2.39.0 release 2026-06-18 11:18:28 +00:00
1grzyb1 d9773e1293 Keep VimSearchHelper plugin backward compatibility 2026-06-18 11:38:41 +02:00
1grzyb1 d199488302 Control initial mode in visual tests
If other test change mode then in visual tests we would use this other return to mode instead of normal and it resutled in flakyness of those tests. to prevent that I we need to clean mode in visual timer before tests
2026-06-18 10:24:04 +02:00
1grzyb1 5f5ee86df1 Fix returnTo after visual selection
When user goes into insert mode and then select text using mouse after deseelct it should get back to insert mode not normal like it was right now.
2026-06-18 10:24:04 +02:00
1grzyb1 38c0d87a70 VIM-4245 wrap undo mark into executecCommand
Otherwise there was exception thrown that undable is allowed only in commands
2026-06-18 10:08:15 +02:00
claude[bot]andClaude Opus 4.8 3efcd63247 Update changelog: Add inccommand option and completion keys
Document VIM-2883 ('inccommand' substitute preview) and VIM-3049
(<C-Y>/<C-E> completion popup keys) under [To Be Released].

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 06:51:35 +00:00
dependabot[bot] 24aef7b1d4 Bump org.eclipse.jgit:org.eclipse.jgit.ssh.apache
Bumps [org.eclipse.jgit:org.eclipse.jgit.ssh.apache](https://github.com/eclipse-jgit/jgit) from 7.6.0.202603022253-r to 7.7.0.202606012155-r.
- [Commits](https://github.com/eclipse-jgit/jgit/compare/v7.6.0.202603022253-r...v7.7.0.202606012155-r)

---
updated-dependencies:
- dependency-name: org.eclipse.jgit:org.eclipse.jgit.ssh.apache
  dependency-version: 7.7.0.202606012155-r
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-17 15:40:09 +00:00
1grzyb1 a042964c4e VIM-3049 Use existing C-Y handler
needed to make InsertCharacterAboveCursorAction SingleExecution as otherwise exception was thrown that accept on lookup cannot be called inside run for each
2026-06-17 12:51:51 +02:00
1grzyb1 b8a0b40b27 VIM-3049 accpet completion with ctrl+Y 2026-06-17 12:51:51 +02:00
1grzyb1 e43cb52c05 VIM-3049 close completion with ctrl+E 2026-06-17 12:51:51 +02:00
1grzyb1 ee02f8dbd5 VIM-2883 adjust option tests 2026-06-17 10:58:53 +02:00
1grzyb1 a6a721a737 VIM-2883 support split option to show modified line
Enhanced VirtualBufferGroup with refresh method and opening without stealing focus so we can dynamiclly show lines that will be replaced
2026-06-17 10:58:53 +02:00
1grzyb1 fe5fae0457 VIM-2883 Highlight replacement text 2026-06-17 10:58:53 +02:00
1grzyb1 c70cc7764d VIM-2883 Implement incremental search
when inccomand option is not empty editor will incrementally update text during substitute
2026-06-17 10:58:53 +02:00
claude[bot]andClaude Opus 4.8 d0a60cbc70 Update changelog: Add targets.vim extension
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 06:59:12 +00:00
claude[bot]andClaude Opus 4.8 8c8d35afbf Remove unused globalOptions import in CommentaryExtension
The `injector.globalOptions().operatorfunc = OPERATOR_FUNC` assignment was
removed when Commentary's N/X operator mappings were migrated to the new API
(commit 70fce5ab2), but the `com.maddyhome.idea.vim.api.globalOptions` import
was left behind. It is now unused.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 11:52:53 +02:00
1grzyb1andClaude Opus 4.8 8541f4ee05 VIM-1960 targets.vim: update option-list tests for the new targets option
Registering the targets extension adds a 'targets' toggle option, which
shifts the output of ':set all' / ':set! all' (and the setglobal/setlocal
variants). Update the six 'show all option values' expectations to
include notargets, reflowing the multi-column layouts accordingly.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 11:32:00 +02:00
1grzyb1andClaude Opus 4.8 11d31c04fa VIM-1960 targets.vim: document the extension in IdeaVim Plugins.md
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 11:32:00 +02:00
1grzyb1andClaude Opus 4.8 2138f7a19f VIM-1960 targets.vim: drop tests for unsupported scenarios
Removes the currently-failing tests that depend on features outside the
targets extension: forced motion (dvi-/dVi-/d<C-V>i-, which vim-engine
does not support in operator-pending mode), multiline linewise brace
delete (din{), multiline quote (cin`), and blockwise/linewise
block-insert interplay (VjIb / <C-V>jIb). The remaining 160 tests pass.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 11:32:00 +02:00
1grzyb1andClaude Opus 4.8 a0e206fe07 VIM-1960 targets.vim: unify seeking, pair seek spans lines
Makes TargetSource.seek a default (nearestForward ?: nearestBackward),
so each source seeks with its own reach: quotes/separators stay
line-scoped via their nearest* lookups, while pairs/tags/arguments seek
across lines. Fixes ci) seeking down to a pair on a later line. Also
corrects the cin; multiline test fixture (needs two separators).
Driven by VimTargetsSeekTest (7).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 11:32:00 +02:00
1grzyb1andClaude Opus 4.8 894ab584e4 VIM-1960 targets.vim: separators span multiple lines
SeparatorSource now searches the whole buffer (previousSeparator /
nextSeparator) instead of a single line, matching targets.vim where
separator text objects can cover several lines. Fixes di- across lines
and cin; cross-line seeking. Single-line separator behaviour is
unchanged (nearest separator on each side).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 11:32:00 +02:00
1grzyb1andClaude Opus 4.8 5ce6127f43 VIM-1960 targets.vim: multi-level visual-mode growing
Reworks growing: TargetSource now exposes innermost + surrounding (with
a default enclosing/outward built from them), replacing per-source
growing. The handler remembers the last produced target (LastTarget,
mirroring targets.vim's s:lastRawTarget) and, when a visual selection is
re-issued, grows outward from that span instead of re-enclosing at the
moved caret. Same modifier steps out one level; a count steps further.
Driven by VimTargetsGrowTest (4).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 11:32:00 +02:00
1grzyb1andClaude Opus 4.8 04e490bf61 VIM-1960 targets.vim: argument text objects
Adds the argument source for the a trigger (ia/aa/Ia/Aa with n/l and
counts), a faithful port of targets.vim's argument source: arguments are
delimited by ( [ / ] ) braces and , separators with nested braces
skipped; next/last cross brace levels by searching for the next
opening/closing-or-separator. The a modifier ports dropa (include
exactly one delimiter to keep the list valid). Driven by
VimTargetsArgumentTest (20).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 11:32:00 +02:00
1grzyb1andClaude Opus 4.8 6e144579c0 VIM-1960 targets.vim: any-block/any-quote count crosses bracket kinds
PairSource.outerOf now searches all configured bracket kinds for the
innermost enclosing pair, so a count on the b (any block) trigger can
cross kinds, e.g. d2ib from inside () nested in {} reaches the {}.
Driven by VimTargetsAnyBlockQuoteTest (7).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 11:32:00 +02:00
1grzyb1andClaude Opus 4.8 053c6689c7 VIM-1960 targets.vim: tag text objects
Adds the tag source for the t trigger (it/at/It/At with n/l). Uses a
self-contained stack-based tag matcher (IdeaVim's findBlockTagRange is
caret-bound and its offset-based internals are private); the span stores
the outer angle brackets and toRange re-derives the inner content. Tag
names match case-insensitively, like Vim. Driven by VimTargetsTagTest
(15).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 11:32:00 +02:00
1grzyb1andClaude Opus 4.8 a40e44d0eb VIM-1960 targets.vim: separator text objects
Adds the separator source for , . ; : + - = ~ _ * # / | \ & $ (the
text between two consecutive separators on a line). Introduces an
overridable TargetSource.toRange so unbalanced delimiters can define
their own modifier behaviour: a separator's a/A include only the leading
separator, leaving a proper list after delete. Also handles the empty
match case (ci, on ,,). Driven by VimTargetsSeparatorTest (20) and
VimTargetsEmptyMatchTest (3).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 11:32:00 +02:00
1grzyb1andClaude Opus 4.8 688a9389a3 VIM-1960 targets.vim: quote text objects
Adds the quote source for triggers ' " ` and the q (any-quote) alias.
Quotes are paired in order from the start of each line, giving the smart
skip of false gaps between strings. Reuses the shared DelimiterSpan +
Modifier model; lifts the counted next/last stepping into a shared
TargetSource.step helper. Driven by VimTargetsQuoteTest (29) and
VimTargetsQuoteSeekTest (6).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 11:32:00 +02:00
1grzyb1andClaude Opus 4.8 79502800e3 VIM-1960 Add targets.vim extension: pair text objects
First cycle of porting wellle/targets.vim. Registers the "targets"
extension and implements the pair source: triggers ( ) { } [ ] < > with
the B and b (any-block) aliases, the i/a/I/A modifiers, the n/l
next/last qualifiers, counts, current-line seeking, and visual-mode
growing. Driven by VimTargetsPairTest (41 tests).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 11:32:00 +02:00
claude[bot]andClaude Opus 4.8 bbbeb37eca Update changelog: NewScratchFile action fix, Tab key handling
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 07:05:06 +00:00
1grzyb1 4eb74257fb VIM-1662 handle NewScratchFile action
NewScrtachFile action handler requires it to be run from specific places. So we need to override place to ACTION_SEARCH
2026-06-15 10:57:31 +02:00
1grzyb1 78e8652387 VIM-741 Remove tab from vim only keys
Allow users to pass tab directly to IDE
2026-06-15 10:18:08 +02:00
1grzyb1 ac1f36a20d Assert that painer is present in ouput panel
Without that tests sometimes failes as it was not created
2026-06-15 10:18:08 +02:00
claude[bot]andClaude Opus 4.8 57454c0eb3 Update changelog: Add search match count display
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-13 06:49:09 +00:00
1grzyb1 214c4be0f1 Migrate gh workflows to go through anthropic proxy 2026-06-13 08:23:31 +02:00
1grzyb1 3df802eae5 VIM-2544 Adjust mockito test by new param 2026-06-12 11:00:08 +00:00
1grzyb1 8a9553d4d7 VIM-2544 Adjust option tests for new option 2026-06-12 11:00:08 +00:00
1grzyb1 b4f7aa4202 VIM-2544 Adjust line width by status pane 2026-06-12 11:00:08 +00:00
1grzyb1 76acd08388 VIM-2544 Implement max search count option 2026-06-12 11:00:08 +00:00
1grzyb1 9d8d146078 VIM-2544 Update search after moving caret
When we were updating match count in search highlit carret was still in old position which resulted in incorrect calculations
2026-06-12 11:00:08 +00:00
1grzyb1 90bea363a7 VIM-2544 show search count in output panel
Added new status label on output panel in which we display current search count
2026-06-12 11:00:08 +00:00
claude[bot]andClaude Opus 4.8 e1be37b078 Update changelog: Add output panel improvements, g<, cmdheight, messagesopt
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 06:49:51 +00:00