Commit Graph
6167 Commits
Author SHA1 Message Date
1grzyb1 6b958a827c VIM-3001 allow mapping plugs 2026-07-09 12:46:15 +02:00
1grzyb1 9c0dcd4f15 VIM-3001 move motions with textobj-user 2026-07-09 12:46:15 +02:00
1grzyb1 449f18b988 VIM-3001 add region-type param
This allows defining if object is char-wise or line-wise
2026-07-09 12:46:15 +02:00
1grzyb1 8a13d58a08 VIM-3100 handle basic text object user
hadnle simple user mappings defined with `textobj#user#plugin` function
2026-07-09 12:46:15 +02:00
1grzyb1 9c2d547889 VIM-3100 Autoload name preservation
To enable textobj-user we had to allow parsing function names with # inside. previousle we stripped out everything before #. so for example foo#bar#baz resulted in just baz
2026-07-09 12:46:15 +02:00
1grzyb1 7287822ada VIM-3100 Allow defining custom function handlers at runtime
This is required to add handlers in textobj-user extenstion
2026-07-09 12:46:15 +02:00
1grzyb1 e13c5d1ae8 uple bookmark RPC from the backend module for cross-version support
Split the bookmark backend RPC into optional, self-gating content modules so JumpRemoteApi (and the rest of the backend RPC) no longer breaks when the intellij.platform.bookmarks module is absent, while bookmark sync still works whether bookmarks lives in platform core (≤2026.1) or in the separate plugin module
  (2026.2+).
2026-07-08 11:55:04 +02:00
1grzyb1 d2f41d165d VIM-2178 Use original mapping in multi-cursor extension
We had discreppancy between ideavim implementation of multi-cursor plugin and original one as we defined different mappings.
Here we restore original mapping and add flag to switch to old IdeaVim alt-based mappings
2026-07-07 10:26:20 +02:00
1grzyb1 3b86b8ac08 VIM-4270 Ignore % after initial range
When command was executed against visual selection and there was additionally % passed visual selection was ignored and command was executed against whole file.
In vim % is ignored. this commit fixes this bug and match vim behaviour
2026-07-07 09:27:41 +02:00
1grzyb1 92c1401892 Allow to always preview whats new page
After initial notification there was no way to view whats new page again so we've added it to vim toolbar
2026-07-06 12:24:37 +02:00
1grzyb1 470d5b16e0 VIM-2694 Add c_CTRL-T action during incsearch 2026-07-06 10:23:18 +02:00
1grzyb1 98337870f0 VIM-2694 Add c_CTRL-G action during incsearch 2026-07-06 10:23:18 +02:00
1grzyb1 1bd7418866 VIM-4265 Restore mode in refactor keep before action
`IdeaSelectionControl` is executed multiple times during creating live tempalte as IJ selects and deselcts parts of text. In combination with visual timer in sometimes results in VISUAL mode at the end. To prevent being left in VISUAL mode we keep mode before action and restore in in 'idearefcatormode=keep'
2026-07-01 12:42:26 +02:00
IdeaVim Bot e2548835a9 Preparation to 2.42.0 release 2026-07-01 07:36:05 +00:00
IdeaVim Bot aa5eded98f Preparation to 2.41.0 release 2026-07-01 00:33:16 +00:00
1grzyb1 0f7d95a8c9 Add workflow to update What's from PR 2026-06-30 13:07:33 +02:00
claude[bot]andClaude Opus 4.8 836f6912fb Prepare What's New for the upcoming release
Add missing changelog entries for the mouse option and indentwise rename,
and rebuild the What's New page from the current [To Be Released] section.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 13:07:33 +02:00
1grzyb1 c1f49554d7 VIM-4267 Assert all options shown
Don't hardcode all options as then we had to update those tests each time we've added new test
2026-06-30 12:20:36 +02:00
1grzyb1 df04b4f32a VIM-2037 Add r mouse option
When r flag is set clicking on output panel when there is --More-- or press enter closes it
2026-06-30 12:20:36 +02:00
1grzyb1 c391b22011 VIM-2037 Implement mouse option
Cursor is moved on mouse click based on those options
2026-06-30 12:20:36 +02:00
1grzyb1 dd5bd38f5c VIM-4267 rename vim-indentwise to indentwise plugin
We have convention of naming plugin without `vim-` prefix
2026-06-30 11:29:34 +02:00
1grzyb1 63b76e649f VIM-4256 handle empty guicursor
When guicursor is set to empty we fallback to default ij caret shape
2026-06-29 12:59:12 +02:00
1grzyb1 522244b078 VIM-1346 Implement undo all line command
"U" undoes all changes and most recently edited line. Implemented in simmilar way as nvim does by tracking snapshot of last edited line and then just restoring that snapshot.
2026-06-29 11:43:48 +02:00
1grzyb1 0e8649a201 VIM-3004 support NERDTreeQuitOnOpen option
when this variable is set to 1 after o it will close project tree
2026-06-29 09:45:20 +02:00
1grzyb1andClaude Opus 4.8 44b2c7b14b VIM-2116 Update option tests
Add vim-indentwise to the expected :set/:setglobal/:setlocal output.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 11:01:48 +02:00
1grzyb1 aa54a73dd6 VIM-2116 Cleanup indentwise implementation 2026-06-26 11:01:48 +02:00
1grzyb1 ea903d65d8 VIM-2116 Indent motion for block scope boundary 2026-06-26 11:01:48 +02:00
1grzyb1 33fc7b1695 VIM-2116 Indent motion for next indents 2026-06-26 11:01:48 +02:00
1grzyb1 1055121b9f VIM-2116 Indent motion to previous equals 2026-06-26 11:01:48 +02:00
1grzyb1 8d2558db96 VIM-2116 Indent motion to previous greater 2026-06-26 11:01:48 +02:00
1grzyb1 be8934a983 VIM-2116 indentwise motion for previous lesser indent
wip
2026-06-26 11:01:48 +02:00
1grzyb1 fec6a7897d VIM-4257 Ensure that autocmd runs in normal mode
Some events require to be run in normal mode so we must make sure that we are not in insert while running them from autocmd
2026-06-26 10:50:19 +02:00
IdeaVim Bot 74e7ac1b43 Preparation to 2.40.0 release 2026-06-25 10:24:53 +00:00
1grzyb1 acc614d390 Fix undo in macro replay
When undo was in macro it couldn't be replayed as it was already in single command executiion. So other commands modified editor and when undo was trying execute those commands didn't yet commit and in UndoManager in Ij there is
```
    if (document.getTextLength() != fromLength) throw new UnexpectedUndoException("Unexpected document state");

```

So we have to execute each command separately during macro execution
2026-06-25 11:21:33 +02:00
claude[bot]andClaude Opus 4.8 607139cf3c Prepare What's New for the upcoming release
Update the changelog and the What's New page for the upcoming release.

CHANGES.md ([To Be Released]):
- Features: 'langmap'/'langremap' support (VIM-2283)
- Fixes: <C-O> caret at end of line (VIM-315)
- Merged PRs: #1861 (langmap), #1809 (VIM-315)

whatsnew-tbr.html: incrementally added the new langmap feature section
and the new fixes to "polish & fixes", preserving the existing content.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 11:05:25 +02:00
1grzyb1 9d1ebe75ea Remove --whats-new to not confuse it as new command 2026-06-25 09:34:39 +02:00
1grzyb1 004b6ea368 Show blogpost with changes on new release
When user installs new version of the IdeaVim we will show dialog that will open blogpost with changes in ideaVim
2026-06-24 11:23:17 +02:00
claude[bot]andClaude Opus 4.8 4d322c78bd Fix start index handling in count() vimscript function
count(list, expr, ic, start) handled the start index incorrectly:
- Negative start indices (which Vim counts from the end of the list)
  were ignored, falling back to counting the whole list.
- An out-of-range start index silently counted the whole list instead
  of raising an error.

Vim resolves the start index via list_find(), which supports negative
indices and reports E684 (list index out of range) when the index is
invalid. Match that behavior: normalize negative indices and throw E684
for out-of-range values. The start argument is only applied when
explicitly provided, so count(list, expr) on an empty list still
returns 0 rather than erroring.

Adds regression tests for zero, negative, and out-of-range start indices.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 11:09:38 +02:00
claude[bot]andClaude Opus 4.8 7eb5f83fef Fix negative index handling in get() vimscript function
Vim's get(list, idx [, default]) supports negative indices, which count
from the end of the list (e.g. -1 is the last item). IdeaVim used
List.getOrElse(idx) directly, which treats any negative index as
out-of-bounds and returns the default value instead.

Normalize negative indices before lookup, matching the pattern already
used in remove(). Adds regression tests for negative and out-of-range
negative indices.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 11:09:38 +02:00
AndDe-gourav 413faec0c5 correct tests for x and D after C-o 2026-06-24 09:46:40 +02:00
AndDe-gourav 56e3d22f5d added tests for x and D after C-o 2026-06-24 09:46:40 +02:00
AndDe-gourav cb7ee02f8e update code to only work when C-o is fired from the end 2026-06-24 09:46:40 +02:00
AndDe-gourav 9d8f46366c added a test for fix vim 315 2026-06-24 09:46:40 +02:00
Matt Ellis 885bd1e97b Implement 'langmap' support
Fixes VIM-2283
Relates to VIM-2348
2026-06-24 08:40:52 +02:00
Matt Ellis 65cc010dc5 Add semantic source for each keystroke
Provides more details about when a keystroke should be mapped. This semantic information will be required to properly support langmap
2026-06-24 08:40:52 +02:00
Matt Ellis e45a8f76dc Remove fallback argument type handling
The digraph consumer is before the char argument consumer, so digraph keys will be processed first. If a key isn't a digraph key, it is ignored and the char argument consumer will process it; the digraph consumer doesn't need to set a fallback argument type and repost the key.
2026-06-24 08:40:52 +02:00
Matt Ellis f9249c4371 Add 'langremap' option, not yet applied
Also supports 'langnoremap' for backwards compatibility with Vim
2026-06-24 08:40:52 +02:00
Matt Ellis 65ebf53d34 Add 'langmap' option, not yet applied 2026-06-24 08:40:52 +02:00
1grzyb1 5399e15528 VIM-4245 adjust caret to tamplate range
when refactor mode is set to keep we put cursor one char after the template instaed on last char in template
2026-06-23 08:49:42 +02:00
1grzyb1 0ba3bffd30 VIM-4245 Normalize caret after ij action
ij actions might leave caret on `\n` which is not allowed in normal mode and resulted in strange behavior like l moving cursor left
2026-06-23 08:49:42 +02:00