Commit Graph
1865 Commits
Author SHA1 Message Date
Matt EllisandAlex Pláte e9e86b07fb Fix incsearch not updating empty selection
As a by-product, this also fixes an off-by-one error where incsearch would effectively treat all Visual searches as exclusive
2025-01-22 17:42:30 +02:00
Sebastian Doernerandlippfi cb218697fa [VIM-3731] Add support for "jump to previous/next lowercase mark".
Fixes VIM-3731
2025-01-21 22:48:12 +02:00
Matt EllisandAlex Pláte 1d5fc01d65 Fix Del and BS not working in Select mode
Fixes VIM-3618
2025-01-13 18:10:01 +01:00
Alex Plate ad584d553c Reformat code 2025-01-10 13:28:48 +03:00
Alex Plate 36556d559f Optimize imports 2025-01-10 13:28:47 +03:00
Alex Plate 378611fe8f Remove outdated documentation 2025-01-10 13:28:47 +03:00
Alex Plate ef16181ba2 Clean up code 2025-01-10 13:28:46 +03:00
Alex Plate aaba0a09c2 Remove deprecated function 2025-01-10 13:28:46 +03:00
Matt EllisandAlex Pláte 0b308769b1 Move select toggle implementation 2025-01-10 11:29:44 +03:00
Matt EllisandAlex Pláte eb19d9fb11 Refactor improper usages of toggleVisual 2025-01-10 11:29:44 +03:00
Matt EllisandAlex Pláte bfa271b089 Reorder functions in file. No code changes 2025-01-10 11:29:44 +03:00
Matt EllisandAlex Pláte e299b27a5c Update docs and remove unnecessary null parameter 2025-01-10 11:29:44 +03:00
Matt EllisandAlex Pláte 9306d93cbf Remove unnecessary pushVisualMode helper function 2025-01-10 11:29:44 +03:00
Matt EllisandAlex Pláte 63b3af3f65 Implement v_CTRL-O
From Select mode, enters Visual for a single command
2025-01-10 11:29:44 +03:00
Matt EllisandAlex Pláte fcc234c4fe Rename submode to selectionType 2025-01-10 11:29:44 +03:00
Matt EllisandAlex Pláte 2e0ef7e0b0 Enter Insert Visual/Select mode with shifted key 2025-01-10 11:29:44 +03:00
Matt EllisandAlex Pláte da99e1f1c3 Return to Insert when leaving Insert Normal 2025-01-10 11:29:44 +03:00
Matt EllisandAlex Pláte 0e587211d9 Improve isEndAllowed 2025-01-10 11:29:44 +03:00
Matt EllisandAlex Pláte dc5ef487d2 Show additional Insert modes in showmode widget 2025-01-10 11:29:44 +03:00
Matt EllisandAlex Pláte eaad93903b Simplify Mode hierarchy
Wanting to add `ReturnTo.SELECT` would be very tricky, as we would have to recreate the mode, but have no details about the selection type.
2025-01-10 11:29:44 +03:00
Matt EllisandAlex Pláte a6b2bf1c55 Remove ReturnableFromCmd marker interface 2025-01-10 11:29:44 +03:00
Matt EllisandAlex Pláte e3a07b6c89 Add support for CTRL-J
Supported in Normal, Visual, Select and Operator-pending. Also adds support for CTRL-M in Select mode.

Fixes VIM-3740
2025-01-10 10:00:28 +03:00
Alex Plate c225452432 [VIM-3577] Store the information if the editor was initialized in insert mode 2024-12-18 13:19:20 +02:00
Alex Plate 5995a48d7b [VIM-3577] Replace weak reference to focused editor to needed information
The `editorInFocus` used the weak reference in order to avoid editor leaks. However, if the user is unlucky, the GC may be called in between the console closing and switching focus to the new editor. In this case, the logic breaks and the Editor remains in the insert mode.
Now, we store only the required information about the last used editor.
2024-12-17 20:36:51 +02:00
Julien PhalipandAlex Pláte 4962baabad Add support for hlsearch variable 2024-12-06 17:21:33 +02:00
Julien PhalipandAlex Pláte 2e550a0960 Add support for escape() vim function 2024-12-06 17:09:59 +02:00
Matt EllisandAlex Pláte a005eb0612 Fix repeating change action with count
Fixes VIM-3729
2024-12-04 18:23:16 +02:00
Julien Phalipandlippfi e32fa6dd11 Change Variable to an interface 2024-11-26 10:32:11 +02:00
Julien Phalipandlippfi ec3db81c6d Move register variable to its own separate class 2024-11-26 10:32:11 +02:00
Julien Phalipandlippfi 7062dc4860 Add support for the v:register variable 2024-11-26 10:32:11 +02:00
filippandAlex Pláte 94d7902ef2 Remove more deprecated methods 2024-11-22 17:15:07 +02:00
filippandAlex Pláte 3d08170d54 Post-rebase fixes 2024-11-22 17:15:07 +02:00
filippandAlex Pláte cccb23d9ee Specify which commands perform mode change
We need this for undo subsystem. Mode change is not something that we want to be a separate entity in the undo log

P.S. It's not a full list of such commands, e.g. <ESC> for leaving insert mode is missing. It is because <ESC> may insert some text after visual block mode, I'll figure out a solution for this later
2024-11-22 17:15:07 +02:00
Filipp VakhitovandAlex Pláte eae3fb3ebe Introduce VimKeyBasedUndoService and VimTimestampBasedUndoService
Undo is managed differently in Fleet and IJ Platform, so now we have two different interfaces that are aware of that
2024-11-22 17:15:07 +02:00
Filipp VakhitovandAlex Pláte 7f5dce4051 Stop using some deprecated methods 2024-11-22 17:15:07 +02:00
Filipp VakhitovandAlex Pláte 25e3988dcf Introduce VimCopiedText class
I don't really like that we have `transferableData: List<Any>`
2024-11-22 17:15:07 +02:00
Filipp VakhitovandAlex Pláte 36589c5250 Add context argument in clipboard methods
Alas, adding in just to clipboard was not possible, as there are a lot of depending on methods
2024-11-22 17:15:07 +02:00
Filipp VakhitovandAlex Pláte f1f86b5cd2 Simplify Register class
1. `rawText` vs `text` is confusing and `rawText` was misused, we do not need this field in IdeaVim at all
2. `rawText` and `keys` are the same thing, just parsed. And for some reason, rawText was a nullable field
3. Register is an immutable class now
4. Working with Register class is easier and more compact now
2024-11-22 17:15:07 +02:00
Filipp VakhitovandAlex Pláte 628b3ca89f Fix <CR> parsing
It's ^M, not ^J
2024-11-22 17:15:07 +02:00
Filipp VakhitovandAlex Pláte d2b929ddd0 Fix parsing for clipboard option
When I added the selection clipboard, it was confusing to explain to people how this option works and why they should prepend, because the parsing was broken
I've also removed "exclude" part, because it doesn't work in IdeaVim and can confuse people
2024-11-22 17:15:07 +02:00
filippandAlex Pláte 43d770ff5a Simplify getTransferableData method signature 2024-11-22 17:15:07 +02:00
Filipp VakhitovandAlex Pláte cde9bc94e6 Fix select mode for immutable caret
Due to implementation details, caret cannot be moved after setting selection
2024-11-22 17:15:07 +02:00
Filipp VakhitovandAlex Pláte 63f6e73223 Fix select mode for immutable caret 2024-11-22 17:15:07 +02:00
Filipp VakhitovandAlex Pláte ad28e09fec Move caret when deleting a char
In Fleet deleting text does not move caret, so we add caret moving logic
2024-11-22 17:15:07 +02:00
Filipp VakhitovandAlex Pláte f616f2c3c1 Fix gv in Fleet
Moving caret after setting selection removes the selection
2024-11-22 17:15:07 +02:00
Filipp VakhitovandAlex Pláte 66aec26091 Move ColLineFunctionHandler.kt to vim-engine 2024-11-22 17:15:07 +02:00
Filipp VakhitovandAlex Pláte 1d59c49b95 Move more logic to vim-engine 2024-11-22 17:15:07 +02:00
Matt EllisandAlex Pláte 468ca840ed Update options tests
Expanded to assert changes on all open windows, and formatted to make it a little easier to read/comprehend what's being tested
2024-11-22 17:01:38 +02:00
Julien PhalipandAlex Pláte c75e6756c0 Add some tests for the getcmdtype() function 2024-11-22 16:49:04 +02:00
Julien PhalipandAlex Pláte 52737c60cf Add JSON entry for getcmdtype function 2024-11-22 16:49:04 +02:00