Filipp Vakhitov
0977bd4400
Support <Up>, <S-Up>, <C-P>, <PageUp> in command mode
2024-08-23 14:18:03 +03:00
Filipp Vakhitov
db092e9b0a
Support history in VimCommandLine
2024-08-23 14:18:03 +03:00
Filipp Vakhitov
5cfb98e188
Remove some old bindings
2024-08-23 14:18:03 +03:00
Filipp Vakhitov
3a95b62885
Support <Insert> in command mode
2024-08-23 14:18:03 +03:00
Filipp Vakhitov
93e6adf5a9
Support <C-W> in command mode
2024-08-23 14:18:03 +03:00
Filipp Vakhitov
37204398ff
Support <C-Right>, <S-Right> in command mode
2024-08-23 14:18:03 +03:00
Filipp Vakhitov
b2f450d14d
Support <C-Left>, <S-Left> in command mode
2024-08-23 14:18:03 +03:00
Filipp Vakhitov
1dc7ea6363
Register all shortcuts without references on ExKeyBindings
...
All the shortcuts will be removed from ExKeyBindings, but they still need to be registered
2024-08-23 14:18:03 +03:00
Filipp Vakhitov
bb507db884
Remove swing bindings that are already implemented
2024-08-23 14:18:03 +03:00
Filipp Vakhitov
1c79b0d59a
Support <Right> in command mode
2024-08-23 14:18:03 +03:00
Filipp Vakhitov
ff4eb31418
Support <Left> in command mode
2024-08-23 14:18:03 +03:00
Filipp Vakhitov
cb1078cf70
Support <C-H> in command mode
2024-08-23 14:18:03 +03:00
Filipp Vakhitov
da3e40eaf6
Support <C-E>, <End> in command mode
2024-08-23 14:18:03 +03:00
Filipp Vakhitov
17f77a9639
Support <C-B>, <Home> in command mode
2024-08-23 14:18:03 +03:00
Filipp Vakhitov
3d03494354
Support <DEL> in command mode
2024-08-23 14:18:03 +03:00
Filipp Vakhitov
642caddda7
Support <BS> in command mode
2024-08-23 14:18:03 +03:00
The1xDeveloper
3ba14d05b4
VIM-566: Add za motion support for toggling folds
2024-08-16 12:28:18 +03:00
Filipp Vakhitov
2189b70b87
Fix(VIM-3601): The escape characters in IdeaVim's configuration file are invalid
2024-08-14 18:18:55 +03:00
Filipp Vakhitov
7d68d41888
Fix(VIM-3580): New terminal switches editor to insert mode
2024-08-12 13:44:24 +03:00
Filipp Vakhitov
1a2322ddec
OutputPanel no longer ignores key events
2024-08-10 23:55:57 +03:00
Alex Plate
8d5df11372
Add a warning when the action is executed from the write action
...
Related: VIM-3376
2024-08-06 11:11:40 +03:00
Matt Ellis
dfebe542d8
Fix incsearch highlight in multiple Rider instances
...
Unlike other IDEs, Rider has multiple client sessions. The IDE itself is the "local" session, while the external ReSharper process is treated as a "frontend" process. The code to get local editors was erroneously getting `ALL` sessions, rather than just `LOCAL` sessions, and assuming that the first was the local session. In Rider, opening three instances would add three additional clients, and that would change the order.
I don't know why I changed `LOCAL` to `ALL` when previously changing this bit of code. AIUI, using `LOCAL` should work fine. If it turns out that CWM or remote dev require `ALL`, please document why.
Fixes VIM-3549
2024-08-05 18:58:45 +03:00
Alex Plate
d02f0e17ca
Revert "Fix(VIM-3376): Refactor the way IdeaVim executes actions"
...
This reverts commit 24514039
2024-07-31 13:14:25 +03:00
Filipp Vakhitov
5dc860f61e
Fix(VIM-3569): Pipe-symbol can no longer be used in remaps
2024-07-30 18:02:12 +03:00
Alex Plate
956e726c31
Add test
2024-07-29 17:48:07 +02:00
Alex Plate
446067e2fe
Update formatting
2024-07-29 16:57:29 +02:00
Alex Plate
bd53a895c0
Return nullability of editor in action
2024-07-29 16:54:02 +02:00
Alex Plate
622eb887c8
Make style refactoring
2024-07-29 16:37:57 +02:00
Alex Plate
9fb614e16c
Pass editor to the "execute" method of the NativeAction
2024-07-29 16:36:01 +02:00
Alex Plate
bfb1d5b7f5
Remove accidential return
2024-07-29 14:08:15 +02:00
Alex Plate
9719106a14
Fix incorrect assertions after migration to the new version of gradle plugin
2024-07-29 13:52:14 +02:00
Alex Plate
560700c9aa
Pass editor to the execution of the action
...
Related: VIM-3376
2024-07-29 12:49:16 +02:00
Alex Plate
24514039e1
Fix(VIM-3376): Refactor the way IdeaVim executes actions
...
Now instead of a few hacks, we use a special function from the platform
2024-07-29 12:49:16 +02:00
Alex Plate
ff44596c1a
Migrate to gradle plugin 2.0.0-rc1
2024-07-26 19:00:31 +03:00
Filipp Vakhitov
b001d63fd9
Do not fire VimInsertListener on every mode change
2024-07-26 17:30:08 +03:00
Filipp Vakhitov
5db96bef28
Fix compilation with IdeaVimExtension
2024-07-26 17:30:08 +03:00
Filipp Vakhitov
39c615cddd
Do not cast VimStateMachine classes in vim-engine
...
It will break if we change implementation in Fleet
2024-07-26 17:30:08 +03:00
Filipp Vakhitov
961173a93b
Fix tests
2024-07-26 17:30:08 +03:00
filipp
883744e4ee
Move blockInsert to vim-engine
2024-07-26 17:30:08 +03:00
filipp
66173e03be
Move reformatCodeRange to vim-engine
2024-07-26 17:30:08 +03:00
filipp
e455722758
Move more methods to vim-engine
2024-07-26 17:30:08 +03:00
filipp
823bdc1561
Replace VimYankGroup with implementation that works with VimListenersNotifier
2024-07-26 17:30:08 +03:00
filipp
f91fda2ca5
Remove VimInsertListener
...
It can be replaced by ModeChangeListener
2024-07-26 17:30:08 +03:00
filipp
92abd76615
Move more methods to engine
2024-07-26 17:30:08 +03:00
filipp
57c45ca153
Move more methods to engine
2024-07-26 17:30:08 +03:00
filipp
7c623ae4b5
Move case change methods to engine
2024-07-26 17:30:08 +03:00
filipp
f2ef92cdef
Remove unused method
2024-07-26 17:30:08 +03:00
Filipp Vakhitov
e8e6eabe97
Fix tests
...
See https://youtrack.jetbrains.com/issue/VIM-3566/Unit-Tests-Test-UI-Caret-Attributes for more details.
2024-07-26 16:31:47 +03:00
Filipp Vakhitov
ef1c915264
Fix visual mode not being removed.
...
Steps to reproduce:
1. Select some text inside diff editor
2. Open 'Find in Files' window and search for file
3. Open the found file
Result: current mode is VISUAL
2024-07-26 14:24:01 +03:00
Filipp Vakhitov
a5e2168f7f
Fix(VIM-3540): Caret icon is stuck in incorrect mode when having two or more simultaneous instances running
...
Some of the text input fields where Vim should not work at all had block carets.
It did not happen before, because previously we had a unique VimStateMachine for each editor and for newly created editors it was in INSERT mode. And we did call the updateSecondaryCaretsVisualAttributes method for editors that have nothing to do with Vim, but because of the INSERT mode it was looking OK.
However, now the VimStateMachine is global, and we can't rely on local INSERT anymore.
This commit forbids updating caret visual attributes for editors that do not support Vim.
NOTE: `isIdeaVimDisabledHere` is broken during editor creation handling, it always returns true. However, we do not trigger carets redraws on editor creation and do it on focus events, so it should work.
2024-07-26 00:44:35 +03:00
Filipp Vakhitov
83e5470b3a
Fix(VIM-3563): Can't exit insert mode in Readonly File
2024-07-25 22:54:39 +03:00
Matt Ellis
d766c3b8ee
Add test for nested insert literal action
2024-07-23 23:08:24 +03:00
Filipp Vakhitov
2aa71a0008
Add "Dracula" theme to mode widget
2024-07-23 19:36:07 +03:00
Filipp Vakhitov
c2c0c2aba2
Fix(VIM-3552): Undo undoes paste and insert in one keypress
2024-07-22 23:08:56 +03:00
Alex Plate
4a85058ba2
Start using kotlin 2.0
...
Originally this is needed to update the dependency on AceJump, which uses the kotlin 2.0 compiler, and its classes are not compatible with the old compiler
2024-07-19 17:13:59 +03:00
filipp
7e28deb328
Better logic
...
In case that user will unsubscribe via setting UI and won't call IdeaVim's action
2024-07-19 16:29:15 +03:00
filipp
f3767b53b7
Subscribe IDE EAP users to IdeaVim EAP
2024-07-19 16:12:33 +03:00
Filipp Vakhitov
5588c27037
Attempt to fix VIM-3540
...
I'm not sure what causes the issue, but everything was working when we were updating visual attributes per each caret and... let update them per each caret
2024-07-17 14:45:50 +03:00
Filipp Vakhitov
90d36eea98
Make myInputInterceptor private
2024-07-17 13:30:54 +03:00
Filipp Vakhitov
f4414de86c
Safer getCurrentModalInput()
2024-07-17 13:30:54 +03:00
Filipp Vakhitov
d46102ccaf
Remove deprecated method from vim-engine
2024-07-17 13:30:54 +03:00
Filipp Vakhitov
82347f5f0d
Fix surround
2024-07-17 13:30:54 +03:00
Filipp Vakhitov
c594f28acb
Fix compilation
2024-07-17 13:30:54 +03:00
Filipp Vakhitov
aec2f4c435
Remove isCancel argument
...
It was not used anywhere
2024-07-17 13:30:54 +03:00
Filipp Vakhitov
80cc236f48
Remove modal input on click
2024-07-17 13:30:54 +03:00
Filipp Vakhitov
e432a02a45
Remove confirmChoice method
...
It used secondary loop
2024-07-17 13:30:54 +03:00
Filipp Vakhitov
d7894fa7f4
ProcessSubstituteCommand refactoring part 9
...
Finally, moved confirmation dialog to modal input
2024-07-17 13:30:54 +03:00
Filipp Vakhitov
82cd534756
Remove startExEntry method
...
We may create a command line via the VimCommandLineService and forget (or do not know) about calling startExEntry necessary. So we move its logic inside the creation of the command line
2024-07-17 13:30:54 +03:00
Filipp Vakhitov
673809d6b9
Move lastCommand to CmdFilterCommand
2024-07-17 13:30:54 +03:00
Filipp Vakhitov
c03a2dfe7e
Add support for finishOn in readInputAndProcess
2024-07-17 13:30:54 +03:00
Filipp Vakhitov
75935ce4d1
Add readInputAndProcess to replace inputString and save us from using secondary loop
2024-07-17 13:30:54 +03:00
Filipp Vakhitov
f0b203409e
Replace cancelExEntry with close method in VimCommandLine
2024-07-17 13:30:54 +03:00
Filipp Vakhitov
de016fc445
Always register shortcuts
...
No matter what kind of panel we have, we want VimShortcutKeyAction to be triggered and pass the shortcut keys (e.g. CTRL-C to close panel)
2024-07-17 13:30:54 +03:00
Filipp Vakhitov
554d9b5f7b
Create a Wrapper for ExEntryPanel
...
ExEntryPanel already extends JPanel, so we need a wrapper to make it extend VimModalInputBase
2024-07-17 13:30:54 +03:00
Filipp Vakhitov
2376ee4877
Fix tests
2024-07-17 13:30:54 +03:00
Filipp Vakhitov
68dcab6262
Introduce ModalInput to get rid of Swing's secondary loop
2024-07-17 13:30:54 +03:00
Filipp Vakhitov
f38fd3512c
Fix passing key to editor when the output panel is scrolled to its end
2024-07-17 13:30:54 +03:00
Filipp Vakhitov
e515278ba3
Add label field to VimOutputPanel
2024-07-17 13:30:54 +03:00
Filipp Vakhitov
9cc69e41ee
Add KeyHandling logic to VimOutputPanel
2024-07-17 13:30:54 +03:00
Filipp Vakhitov
d6910aa81d
Fix(VIM-3538): Can't select a block in {} when the cursor is on commented Line
2024-07-16 19:23:43 +03:00
Alex Plate
14ba5d7126
Convert Troubleshooter field to function to avoid early initialization
2024-07-15 13:54:20 +03:00
Alex Plate
288394d25f
Update the notification text for undo
2024-07-15 13:19:03 +03:00
Alex Plate
fb08b5fd65
Prepare to changing the default value of the undo
...
A notification added to give the information about what happened
Related: VIM-547
2024-07-15 13:16:01 +03:00
Alex Plate
3465e11c3a
Initialize the injector in multiple entry points of IntelliJ
...
Initially, injector was initialized in VimPlugin, assuming that almost every interaction with the plugin goes through it. However, with the plugin evolution, this class starts to be less used.
As IJ doesn't have any single entry point for the plugins, we initialize it in multiple places.
However, the architecture where the plugin might be not initizlied is considered as a bad acrhitecture and should be reviewed.
Related ticket: VIM-3369
2024-07-12 15:09:18 +03:00
Matt Ellis
e07a16863e
Show possible IDs based on the action's shortcuts
...
Fixes VIM-3499
2024-07-12 15:09:02 +03:00
kun-codes
64f7532510
added rename functionality
2024-07-12 09:53:07 +03:00
kun-codes
dd892e77fb
added paste functionality
2024-07-12 09:53:07 +03:00
kun-codes
65aeeba521
added copy functionality
2024-07-12 09:53:07 +03:00
Alex Plate
46a4a10e63
Reformat code in tests
2024-07-10 10:06:27 +03:00
Alex Plate
f3902d0ae0
Convert property to function to avoid extra service creation
2024-07-09 16:07:57 +03:00
Alex Plate
f9213ee45d
Mute some tests that depend on oldundo option
2024-07-09 15:46:41 +03:00
Alex Plate
281bc2573e
Bring back some methods to preserve the compatibility with other plugins
2024-07-09 15:38:50 +03:00
Alex Plate
ae8c7f6bfa
Revert "Remove old compatibility layers"
...
This reverts commit 6cee04a4be
.
2024-07-09 15:32:39 +03:00
filipp
c0419d6018
Fix project leak
2024-07-08 13:09:08 +03:00
filipp
53cd4e1b88
Remove KeyHandlerStateResetter
...
It's an oneliner that we can live without
2024-07-08 13:09:08 +03:00
filipp
9bb9cb13e3
Fix possible bug in the ExOutputModel.show()
method and add documentation
2024-07-08 13:09:08 +03:00
filipp
16455f7241
Remove the update()
method from VimOutputPanel
2024-07-08 13:09:08 +03:00
filipp
82225aa519
Use new interface instead of the old one
2024-07-08 13:09:08 +03:00
Filipp Vakhitov
5f2baefc6c
Introduce new interface for VimOutputPanel to support the output panel in Fleet
...
Why is the old interface bad?
- it is not obvious. You cannot create a new panel or check if it is already created. Only "getOrCreate" it
- output panel is bound to editor while in Vim it is global
- we have the `isActive` field and the `clear()` method at the same time, because interface implies that you store the same instance of the panel and reactivate it for each output and I don't like it. We also can forget to call `clear()` after reusing panel
- we cannot "build" output before showing to make the panel more efficient. With multiple carets we can only cal `output(oldText + newText)` for each caret, and it is bad. (imagine we have global command with a lot of matches and for each time we will need to call the `output(oldText + newText)`)
- the `output()` method shows panel, activates it and updates it
- there are more things that I do not like, but the points above should be already enough
2024-07-08 13:09:08 +03:00
Filipp Vakhitov
cedcf39723
Fix(VIM-3461): Focus regression
2024-07-08 13:09:08 +03:00