Matt Ellis
308996c4c1
Remove Visual when updating incsearch for a command
2025-01-22 17:42:30 +02:00
Matt Ellis
1f68b756d5
Disable incsearch highlight in Visual mode
2025-01-22 17:42:30 +02:00
Matt Ellis
ed6789cb8b
Add tests updating Visual while editing incsearch
2025-01-22 17:42:30 +02:00
Matt Ellis
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
Matt Ellis
a969b93ba6
Add tests for updating Visual selection with search
2025-01-22 17:42:30 +02:00
Matt Ellis
970cfadaec
Extract search highlighting related tests
2025-01-22 17:42:30 +02:00
Matt Ellis
12ed60d88e
Remove tests using obsolete newregex option
2025-01-22 17:42:30 +02:00
Sebastian Doerner
cb218697fa
[VIM-3731] Add support for "jump to previous/next lowercase mark".
...
Fixes VIM-3731
2025-01-21 22:48:12 +02:00
Matt Ellis
7548b160ae
Fix race condition resetting editor on focus gain
...
Fixes VIM-3773
2025-01-14 17:21:53 +01:00
Alex Plate
1105f61988
[VIM-3620] Use shortened links instead of plain ones
2025-01-14 17:35:09 +02:00
Alex Plate
54b49d3322
[VIM-3620] Do not show the uninstall feedback when updating the plugin
2025-01-14 17:17:15 +02:00
Alex Plate
6ab0add430
Update the twitter icon to X
2025-01-14 13:37:39 +02:00
Matt Ellis
296288f428
Ensure correct caret position when exiting Select
...
Fixes VIM-3042
2025-01-13 18:10:01 +01:00
Matt Ellis
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
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 Ellis
0b308769b1
Move select toggle implementation
2025-01-10 11:29:44 +03:00
Matt Ellis
a28416dd9f
Update mode widget text for Select pending
2025-01-10 11:29:44 +03:00
Matt Ellis
63b3af3f65
Implement v_CTRL-O
...
From Select mode, enters Visual for a single command
2025-01-10 11:29:44 +03:00
Matt Ellis
fcc234c4fe
Rename submode to selectionType
2025-01-10 11:29:44 +03:00
Matt Ellis
2e0ef7e0b0
Enter Insert Visual/Select mode with shifted key
2025-01-10 11:29:44 +03:00
Matt Ellis
da99e1f1c3
Return to Insert when leaving Insert Normal
2025-01-10 11:29:44 +03:00
Matt Ellis
5827ad1581
Only show mode widget popup on left mouse click
2025-01-10 11:29:44 +03:00
Matt Ellis
8b8ef80a5e
Reinstate showmode tests
2025-01-10 11:29:44 +03:00
Matt Ellis
dc5ef487d2
Show additional Insert modes in showmode widget
2025-01-10 11:29:44 +03:00
Matt Ellis
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 Ellis
a6b2bf1c55
Remove ReturnableFromCmd marker interface
2025-01-10 11:29:44 +03:00
Matt Ellis
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
Xinhe Wang
bde4fcdd47
Fix test failure introduced in 5e60ea7
2024-12-21 20:29:18 +02:00
Alex Plate
69811c864e
Add checks to avoid incorrect creation of the visual position
...
Related to VIM-3755
2024-12-18 16:33:18 +02: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
Filipp Vakhitov
5e60ea7f4c
Fix(VIM-3754): set clipboard+=unnamed stopped working in IdeVIM 2.18
...
I did remove `exclude:cons\\|linux` from the overriden value
2024-12-18 13:11:26 +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
Alex Plate
4614e2ad54
[VIM-3617] Remove the forgotten recursion call
2024-12-17 10:06:48 +02:00
Alex Plate
077de91e01
[VIM-3617] Set a recursion guard for obtaining the editor
...
Function `selectedTextEditor` in some cases may create a new editor, what causes the recursion and IDE freeze. The guard should protect from it.
2024-12-17 10:02:34 +02:00
Alex Plate
1ce7a97f2a
Fix(VIM-3747): There is no need to remove the visual mode if there is still a selection
2024-12-16 13:38:29 +02:00
Julien Phalip
4962baabad
Add support for hlsearch variable
2024-12-06 17:21:33 +02:00
Julien Phalip
2e550a0960
Add support for escape() vim function
2024-12-06 17:09:59 +02:00
Matt Ellis
a005eb0612
Fix repeating change action with count
...
Fixes VIM-3729
2024-12-04 18:23:16 +02:00
Justas Trimailovas
63297e685c
Correctly change surround if it's empty or only spaces
...
This commit fixes 2 bugs at once:
1. Correctly trim surround with closing brackets motion, e.g.: `cs()`.
It should trim all surrounding white space or leave things unchanged if
there's no space.
For example cases like these:
"( ${c}foo )" // single spaces
"( ${c}foo )" // multiple spaces
"( ${c}foo)" // assymetric spaces
"(${c} )" // single space without text
"(${c} )" // multiple spaces without text
Should trim white spaces into these results accordingly:
"${c}(foo)"
"${c}(foo)"
"${c}(foo)"
"${c}()"
"${c}()"
In case of no spaces - they should be left unchanged, e.g.:
"(${c}foo)" // no spaces around the word
"(${c})" // empty parenthesis
2. Leave empty parenthesis unchanged. IdeaVim now deleted them instead.
2024-12-04 18:07:02 +02:00
Justas Trimailovas
6c9a5e1f2d
[VIM-1824] surround - remove whitespace with closing bracket
...
**Context**:
In vim surround extendsion closing brackets (`}, ], )`) should remove
whitespace when using `cs` movement.
Example:
- Before: `{ example }`
- Movement: `cs{}`
- After: `{example}`
This was because were replaced with a string from `SURROUND_PAIRS` map,
which does not have any context about removing characters.
**Solution**:
Inspired from VSCode's VIM plugin[^1], I have introduced new class
`SurroundPair` that will carry this context about need to trim
characters.
**Disclaimer**:
I have never written in `Kotlin` so solution may be not use best
practices, though at least this PR seems to fix the problem and tests
are passing.
**Ticket**:
- https://youtrack.jetbrains.com/issue/VIM-1824/Vim-Surround-Does-not-remove-whitespace-with-the-closing-bracket
[^1]: 04fe42aa81/src/actions/plugins/surround.ts (L455)
2024-12-04 18:07:02 +02:00
Julien Phalip
ec3db81c6d
Move register variable to its own separate class
2024-11-26 10:32:11 +02:00
Julien Phalip
7062dc4860
Add support for the v:register variable
2024-11-26 10:32:11 +02:00
Alex Plate
0f1a4d523f
Move the docs to the init method of VimExtension
2024-11-25 14:01:23 +02:00
Alex Plate
5f5a97a7e1
Lazily load the logger to avoid injector initialization problems
2024-11-25 13:39:24 +02:00
filipp
0dd63c7b57
Fix nullable editor in tests
2024-11-22 17:15:07 +02:00
filipp
94d7902ef2
Remove more deprecated methods
2024-11-22 17:15:07 +02:00
Filipp Vakhitov
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