Commit Graph
10430 Commits
Author SHA1 Message Date
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
Matt Ellis cdc943620b Add extra border around output and ex panels 2026-06-12 06:24:51 +00:00
Matt Ellis 154be17456 Match Vim behaviour with long output
Keys for scrolling down should do nothing when scrolling is enabled for long output. Also adds some notes about 'nomore' behaviour and 'messagesopt' missing "hit-enter" (which can't be tested due to the async timeout).
2026-06-12 06:24:51 +00:00
Matt Ellis 6f67fdbe11 CTRL-C closes message area 2026-06-12 06:24:51 +00:00
Matt Ellis f0c22272ff Implement g< action to show last output 2026-06-12 06:24:51 +00:00
Matt Ellis 7c78f1a51e Show hit-enter prompt for external commands 2026-06-12 06:24:51 +00:00
Matt Ellis 93040783a7 Accept : to start a new command during output 2026-06-12 06:24:51 +00:00
Matt Ellis f21ebe046a Support modeless selection and copy to clipboard
In both output panel and ex entry panel
2026-06-12 06:24:51 +00:00
Matt Ellis cf2ea108ca Extract common glass pane handling 2026-06-12 06:24:51 +00:00
Matt Ellis c11eff4b16 Update the cursor while showing the output panel 2026-06-12 06:24:51 +00:00
Matt Ellis e76c3bb792 Handle empty and blank text
Address VIM-4240
2026-06-12 06:24:51 +00:00
Matt Ellis 90b8e005ae Support 'cmdheight' option for "single-line" output 2026-06-12 06:24:51 +00:00
Matt Ellis ed3c84c610 Force text pane size to ensure lines are wrapped
Otherwise, on first use with 'nomore', wrapped lines are not calculated when we need to scroll to the end
2026-06-12 06:24:51 +00:00
Matt Ellis 4698576a63 Implement per-character line break 2026-06-12 06:24:51 +00:00
Matt Ellis cbea98b0b8 Count wrapped lines 2026-06-12 06:24:51 +00:00
Matt Ellis fbe9f0884d Update prompt when scrolling with mouse 2026-06-12 06:24:51 +00:00
Matt Ellis 742f25bd1c Animate scrolling in output panel 2026-06-12 06:24:51 +00:00
Matt Ellis d6d5fdefd4 Skip IDE shortcut handling when panel is active
Important or the IDE will try to dispatch shortcuts such as `<BS>` while the panel is active
2026-06-12 06:24:51 +00:00
Matt Ellis 856ad4ff86 Update more prompt to match Vim text and behaviour 2026-06-12 06:24:51 +00:00
Matt Ellis 40064654e5 Remove unsupported left+right motions in pager
These don't appear to be Vim shortcuts at all
2026-06-12 06:24:51 +00:00
Matt Ellis efeb6ec0f2 Do not reuse escape key when closing output panel
Unable to test, unfortunately
2026-06-12 06:24:51 +00:00
Matt Ellis 3c998a8da3 Do not reuse space key when closing output panel 2026-06-12 06:24:51 +00:00
Matt Ellis 7e3c745d38 Add helper functions for scrolling up 2026-06-12 06:24:51 +00:00
Matt Ellis 88efb6d4db Simplify key handling
Also fixes incorrect behaviour passing 'q' to editor when at hit-enter prompt, and processing Enter twice, scrolling two lines instead of one (this isn't possible to test, sadly, it depends on Swing key event handling)
2026-06-12 06:24:51 +00:00
Matt Ellis ce9d3bce94 Fix 'nomore' scroll implementation 2026-06-12 06:24:51 +00:00
Matt Ellis 73fbc7681c Clear single-line message after timeout
Introduces the `'messagesopt'` option, plus handling of options that are key/value pairs + flags
2026-06-12 06:24:51 +00:00
Matt Ellis 5638e7296c Remove unncessary parseKeys calls 2026-06-12 06:24:51 +00:00
Matt Ellis c41f82cb7c Clear single line message when mode changes 2026-06-12 06:24:51 +00:00
Matt Ellis 00900dd03f Clear single line message with Escape 2026-06-12 06:24:51 +00:00
Matt Ellis dbc81e734b Prevent clearing message at same time as it's set 2026-06-12 06:24:51 +00:00
Matt Ellis da6befdb60 Include output panel when checking scroll height 2026-06-12 06:24:51 +00:00
Matt Ellis 51514c111a Hide output panel when redrawing status line
We "redraw" the status line at various times (explicit `<C-L>` redraw, scrolling, etc.). Previously, this would clear the status bar, but now that some messages and output use a persistent single line output panel, we make sure to close the output panel too

Fixes VIM-4230
2026-06-12 06:24:51 +00:00
Matt Ellis 5fefedd5ed Add tests for output panel
Changes to UnknownCommand are due to a test for output panel with an unknown command that was returning a string with a trailing space.
2026-06-12 06:24:51 +00:00