Commit Graph
6245 Commits
Author SHA1 Message Date
valisandClaude Opus 5.5 c11a903c5b Don't treat quotes inside non-string tokens as string delimiters in %
The text-based quote detection used by % treats any two quote characters
on a line as a string. In languages where quotes can be part of other
tokens (e.g., identifiers with primes like `f'` in Haskell-like languages),
brackets between such quotes were skipped, and % jumped to a wrong
bracket or did not move at all.

If PSI is available, check that the opening quote starts a token and the
closing quote ends a token. Plain text and comments keep the text-based
behaviour.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 10:29:15 +02:00
Matt Ellis ac52d3a0e4 Handle incomplete function definition command 2026-10-09 10:16:30 +02:00
Matt Ellis 165b9b1fa5 Report lambda functions in function command 2026-10-09 10:16:30 +02:00
Matt Ellis 2b5f5401ac Restart anonymous function names from 1 in tests 2026-10-09 10:16:30 +02:00
Matt Ellis 6620891534 Add the function command to list global functions 2026-10-09 10:16:30 +02:00
1grzyb1 5fd38b21b3 Improve release process
Our pipeline could mark issues on youtrack as fixed even if they were not in release branch.
Added single script for all pipelines to deremine which commits enetered given release so changelog, whats new and release itself are using exactly same logic
2026-10-09 10:13:18 +02:00
1grzyb1 1e3c671c0c VIM-2524 calculate indent after cc
set proper indent after performing cc. previously we were just using that was already set not from code style
2026-10-09 09:49:32 +02:00
1grzyb1 f3003d92ef VIM-2293 Align cursors 2026-10-08 11:25:42 +02:00
1grzyb1 c898281cd9 VIM-2293 Case conversion menu 2026-10-08 11:25:42 +02:00
1grzyb1 e084c387fa VIM-2293 Quit session after leaving insert mode 2026-10-08 11:25:42 +02:00
1grzyb1 52b33469ec VIM-2293 Reselect regions of the last session 2026-10-08 11:25:42 +02:00
1grzyb1 4bc3e56898 VIM-2293 Insert before and after regions 2026-10-08 11:25:42 +02:00
1grzyb1 38489c3177 VIM-2293 Run macro at cursors 2026-10-08 11:25:42 +02:00
1grzyb1 807aa55dcc VIM-2293 Run normal command at cursors 2026-10-08 11:25:42 +02:00
1grzyb1 9062301f21 VIM-2293 Test paste at cursors 2026-10-08 11:25:42 +02:00
1grzyb1 b6e2bc32a9 VIM-2293 Add switch mode <Tab> 2026-10-08 11:25:42 +02:00
1grzyb1 3b92308f9c VIM-2293 Go to next/prev caret 2026-10-08 11:25:42 +02:00
1grzyb1 2295e96509 VIM-2293 Find Prev occurrence 2026-10-08 11:25:42 +02:00
1grzyb1 e4bccc976e VIM-2293 Visual cursors actions 2026-10-08 11:25:42 +02:00
1grzyb1 ae6198400b VIM-2293 C-Up C-Down for line navigation 2026-10-08 11:25:42 +02:00
1grzyb1 b3413f5924 VIM-2293 accepts count in handlers 2026-10-08 11:25:42 +02:00
1grzyb1 5ea29e1a6e VIM-2293 add VM_leader option 2026-10-08 11:25:42 +02:00
1grzyb1 92af7a9b58 VIM-2293 Cleanup visual multi code 2026-10-08 11:25:42 +02:00
1grzyb1 7b9cf20a19 VIM-2293 Add VM session
visual multi keeps track if it has active session and depending on that different mappins are performed
2026-10-08 11:25:42 +02:00
1grzyb1 9ed7a53709 VIM-2293 Add ignore case option 2026-10-08 11:25:42 +02:00
1grzyb1 fd310620e7 VIM-2293 Add VM_maps variable for mapping 2026-10-08 11:25:42 +02:00
1grzyb1 30c876dd59 VIM-2293 Add vim visual multiple extension
Extracted base class to nto duplicated code in both multi cursor extensions. new one has different mappings for some actions
2026-10-08 11:25:42 +02:00
1grzyb1 37aeff64aa VIM-2372 Add missing mappings for navigation keys
Allow users to map missing nerdtree keys like j or k
2026-10-07 09:13:53 +02:00
1grzyb1 543d577bfa VIM-1503 don't type dead keys
Composed text from dead keys and input methods was inserted into the document and replaced the Visual selection before IdeaVim saw the key, so we now drop it in Normal, Visual and Operator-pending modes and only let the committed character through, like Vim in a terminal.
2026-10-06 12:20:18 +02:00
1grzyb1 e0193e6f3b VIM-1948 Scroll caret while mouse scrolling
Move caret while mouse scrolling respecting scrolloff
guarded by ideascrollcursor to preserve old idea behaviour
2026-10-06 12:11:06 +02:00
1grzyb1 f6ee0c0f11 VIM-720 allow pass escape to IDE 2026-10-06 11:46:19 +02:00
1grzyb1 2282456ddd VIM-720 allow pass enter and arrows to IDE 2026-10-06 11:46:19 +02:00
1grzyb1 6f48fd9903 Complete action command ideavimrc file 2026-10-05 12:04:26 +02:00
1grzyb1 fe7bc72193 Complete action command in command line 2026-10-05 12:04:26 +02:00
1grzyb1 ccb0fb1677 Add descriptions to all commands
Each @ExCommand and @CommandOrMotion now describes what it does in IdeaVim, the text is rendered into the help file.
2026-10-05 10:57:50 +02:00
1grzyb1 c1d9ee7378 Generate the help file that :help opens from command annotations
Commands describe themselves in @ExCommand/@CommandOrMotion, generateHelp renders the Vim-style help file and a workflow keeps it up to date on master.
2026-10-05 10:57:50 +02:00
1grzyb1 360d3d4b69 VIM-4336 postpone caret normalization for async actions
In Rider actions like comment are async and afterActionPerformed happens right after action axecution without waiting for action to actually finish.
Which resulted in first normalizing carret by IdeaVim and then moving it by comment action in wrong place
2026-10-05 09:50:57 +02:00
IdeaVim Bot f65c5e28f5 Preparation to 2.47.2 release 2026-10-02 10:05:53 +00:00
Grzybek e27ffe0549 VIM-1894 include collapsed region during visual selection (#2098) 2026-10-02 08:35:07 +00:00
1grzyb1 69d845f92f VIM-4335 remove dispatcher listeners on option change
otherwise it wasn't detected right away
2026-10-02 10:22:27 +02:00
Grzybek f94d5b05dc VIM-4335 guard outside editor dispatcher when ideaoutsideeditor (#2100) 2026-10-02 09:27:45 +02:00
1grzyb1 2ec828b529 VIM-1314 Replace mode paste with cmd+v
To be vim compatible we need to wrap idea paste during replace mode.
Vim is pasting and replacing text and we were inserting it before cursor.
So to this we wrap paste action handler and in replace mode we handle it by ourselves
2026-10-01 11:54:35 +02:00
Grzybek b00370888a VIM-1306 Add keylog extension (#2096)
Extension that logs all typed keys
2026-10-01 10:56:08 +02:00
Grzybek 7bd8f1315c VIM-3963 Allow enabling vim for plugin editors and ai chat windows (#2091)
* VIM-3963 enable vim for main editors

* VIM-3963 enable vim for jetbrains AI chat
2026-09-30 12:28:19 +02:00
Grzybek 5bc0344547 VIM-4333 Fix auto-indent handling in clion (#2090)
use directly formatter for clion to indent lines otherwise it was formatting whole file
2026-09-30 08:38:08 +00:00
Grzybek d99f46937f VIM-1153 replay all keystrokes during . (#2088)
* VIM-1153 replay all keystrokes during .

we were storing actions and commands to replay during . repeat. Due to that we had to do a lot of strange logic to move cursor after ide chagnes. Becouse of that renaming tag element didn't work.

To make it work and more vim like we store real keystrokes and replay them

* VIM-1153 replay autocomplete

in new mechanism C-Y was working on active lookup and during replay there was no lookup. to fix that we go through action path which adds those keys by itself but we need to drop C-Y from RedoBuffer stack as it's replaved by actruall charachters

* VIM-1153 Fix other lookup actions

* VIM-1153 keep lookup commands as separate ones

Extracted all lookup commands as separate handlers as it was confusing to have seprate paths depending on isActiveLookup in handlers
2026-09-29 10:31:40 +00:00
IdeaVim Bot 5b2a1725ec Preparation to 2.47.1 release 2026-09-25 09:24:56 +00:00
Grzybek 60d17b0c83 VIM-4331 keep the indent of a new line when leaving Insert mode (#2084)
`didAutoIndent` was set for `o`, `O` and Enter as well as for `cc` and `S`,
so leaving Insert mode without typing anything deleted the indent of a line
that had just been opened.

Vim does delete it, and it does so for an indent computed by 'indentexpr' or
'cindent' too (`fixthisline()` in indent.c). This is a deliberate difference:
in the IDE the indent comes from language support, and a line you have just
opened is expected to stay where it is. `cc` and `S` still follow Vim, since
there the line held text a moment ago and its leftover indent is noise.
2026-09-25 10:40:17 +02:00
Grzybek f5fd057ba1 VIM-748 changing multiple commands with | (#2082)
* VIM-748 changing multiple commands with |

Added generic mechanism for chainging multiple commands with |
Main issue was with comamnds like `s` which might have | inside replaced regex
That's why we've adde whole machinery that split it in CommandVisitor.
We couldn't do it it antlr grammar itself as it would require having backwards state of grammer what antlr doesn't allow

* VIM-748 bump ksp version to 2.3.7
2026-09-24 12:36:34 +02:00
IdeaVim Bot aa14a3036e Preparation to 2.47.0 release 2026-09-24 08:46:08 +00:00