Commit Graph
5765 Commits
Author SHA1 Message Date
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
Filipp Vakhitov 4925d9aada Remove ideaglobalmode option
Mode is global now
2024-07-08 13:09:08 +03:00
Filipp Vakhitov f3e6df32d0 Fix(VIM-3462): IdeaVim not responsive occasionally
This bug was caused by two reasons:
1. KeyHandler state is not longer per-editor and we can't reset it on editor creation
2. We do not need to do such things on editor creation. What actually matters is focusing the editor
2024-07-08 13:09:08 +03:00
Filipp Vakhitov 5aaa8752af Move to new API from deprecated one 2024-07-08 13:09:08 +03:00