Commit Graph
6167 Commits
Author SHA1 Message Date
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
Matt Ellis c678146025 Get editor's scroll pane using API if possible 2026-06-12 06:24:51 +00:00
Matt Ellis 77ef75e8f2 Use proper top and bottom border insets
Means baseline of output panel matches ex entry panel. Also fixes offset when scrolling down a page meaning new top line is correctly positioned
2026-06-12 06:24:51 +00:00
Matt Ellis 816e0af60c Move key handling logic to inner class 2026-06-12 06:24:51 +00:00
Matt Ellis ff517e1fe8 Small refactorings and cleanup 2026-06-12 06:24:51 +00:00
Matt Ellis 1e7c8c50cf Use proper helper function to assert ex output 2026-06-12 06:24:51 +00:00
Matt Ellis cdb9d595bc Remove unnecessary APIs from thin API
There is no reason for a caller (presumably an extension) to need to know what the text of the output panel is, or to get/set the prompt text
2026-06-12 06:24:51 +00:00
Matt Ellis a579c87bfa Remove unnecessary APIs from interface 2026-06-12 06:24:51 +00:00
Matt Ellis 9a94e2b33c Use simpler API to show output panel 2026-06-12 06:24:51 +00:00
1grzyb1 781f8101f8 VIM-4250 preserve cursor pistion with one column diff
when going jk between lines with just 1 column difference and going back it moved one column before.
It was due to not normilzed offset so when doing k went to AbsoulteOffset and didn't save last column position
2026-06-11 08:50:42 +00:00
Matt Ellis a222cf0464 Fix output of maps when prefix match fails 2026-06-10 10:21:52 +00:00
1grzyb1andClaude Opus 4.8 ace6cb3a1f VIM-4249 Remove visual mapping for abolish plugin
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-10 08:53:21 +00:00
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
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
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