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
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
Filipp Vakhitov
a1d214316c
Make VimStateMachine global
...
It is global in Vim
2024-07-08 13:09:08 +03:00
Alex Plate
75a417773f
[VIM-547]: Turn off new undo for the next release as well
2024-07-05 12:14:10 +03:00
Filipp Vakhitov
07b1db4b28
Fix(VIM-3518): line numbers in :g/ not displayed
2024-07-04 01:50:33 +06:00
Filipp Vakhitov
dc775a0f22
Move number
option to vim-engine
2024-07-04 00:11:36 +06:00
Filipp Vakhitov
10228f953e
Fix(VIM-3517): Add support for global find & replace Vim-ism — :g/pattern/s//replacement/g
2024-07-03 22:34:42 +06:00
Matt Ellis
6b4e4bacd7
Fix null reference initialising output panel fonts
...
Fixes VIM-3515
2024-07-03 09:43:48 +03:00
Alex Plate
647510de5d
Optimize imports for the project
2024-06-28 17:30:17 +03:00
Alex Plate
9538714af1
Remove explicit API mode to enhance coding efficiency and maintain Kotlin's conciseness
...
Explicit API mode has been removed due to several reasons impacting developer productivity and the natural coding style in Kotlin.
Firstly, the mode was found to be more irritating than beneficial, as it forced unnecessary verbosity without enhancing thoughtfulness in coding. It often prompted automatic 'public' insertion reactions to red-highlighted code, which did not genuinely encourage more deliberate coding decisions.
Secondly, our aim is to form a robust API primarily through interfaces, which inherently define public scope and duty, rendering explicit API mode somewhat redundant.
Lastly, the additional verbosity caused by explicit API mode expanded code lines affecting code readability.
The compatibility with the existing plugins is verified via the compatibility checker, so no JetBrains plugins will be affected
2024-06-28 17:11:16 +03:00
Alex Plate
ffd832d990
Get rid of RegExp class
2024-06-28 17:01:30 +03:00
filipp
8de2b8976b
Avoid using deprecated RegExp in VimRegexService
2024-06-28 16:58:13 +03:00
filipp
a6aa26b5d9
Remove deprecated methods
2024-06-28 16:58:13 +03:00
filipp
e67c7b23ff
Remove deprecated code from VimStateMachine
2024-06-28 16:58:13 +03:00
filipp
6cee04a4be
Remove old compatibility layers
...
It is necessary to remove deprecated code from VimStateMachine in future commits
2024-06-28 16:58:13 +03:00
Matt Ellis
e748b7b265
Fix soft wrap inconsistency in run console
...
IntelliJ has multiple soft wrap options. One for main editors, another for consoles and a third for previews. This can lead to inconsistencies if initialising a console based on a main editor when both have default values, versus the same scenario when the main editor has an explicit value. Furthermore, the run console's soft-wraps toggle button uses the global value, so can get out of sync if the local value is initialised to an explicit value. This change will only copy the soft wrap value over during initialisation for similar editors (main editor, preview, diff) and not for different editors (console).
Fixes VIM-3450
2024-06-28 16:50:25 +03:00
Matt Ellis
c2401ec013
Protect against recursion when opening editors
...
Fixes VIM-3066
2024-06-28 16:50:25 +03:00
Matt Ellis
8073d7ecd0
Fix copying 'fileencoding' during window opening
...
The option should be "local-noglobal", and reset to default. Copying the value could cause the file to be converted immediately, possibly with a warning dialog
Fixes VIM-3467
2024-06-28 16:50:25 +03:00
Matt Ellis
64f7859ba7
Fix switching to insert for non-file backed diff
...
Fixes VIM-3442
2024-06-28 16:50:25 +03:00
Matt Ellis
f1b94d7026
Fix regression ignoring case in global command
...
Regression in new regex engine
2024-06-28 16:50:25 +03:00
Matt Ellis
79653b6048
Update ex output asserts to remove trailing newline
...
The trailing newline was never necessary. The text field always stripped it, but the test code didn't. The previous commit pulled this behaviour out of the UI code, so the test code behaves the same as the UI.
This commit fixes all of the tests that were broken by that change. No other logic has been changed.
2024-06-28 16:50:25 +03:00
Matt Ellis
b0e6b72281
Fix regression missing newlines in :print output
2024-06-28 16:50:25 +03:00
Matt Ellis
e6220e5e53
Fix regression clearing output instead of closing
2024-06-28 16:50:25 +03:00
Matt Ellis
3c064845b1
Fix ex text field handling of zoom and font size
...
The ex text field and output pane will correctly resize and reposition if visible when the IDE zoom value changes. If the editor's font size is zoomed with the mouse wheel, the panels are hidden, so they do not obscure the font zoom indicator widget
Fixes VIM-3417
2024-06-28 16:50:25 +03:00
Alex Plate
736cb219ca
Remove the use of RegExp
from ExEntryPanel
2024-06-28 16:47:32 +03:00
Alex Plate
fb30e4e387
Adapt the code to the new search helper functions
2024-06-28 16:17:45 +03:00
Alex Plate
74550ffa16
Refactor countWords function
2024-06-28 16:17:45 +03:00
Alex Plate
d0a0672282
Rename .java to .kt
2024-06-28 16:17:45 +03:00
Alex Plate
16e92ddf60
Move SearchHelper classes to kotlin file
2024-06-28 16:17:45 +03:00
Alex Plate
4d8e68d800
Get rid of many unused search functions
2024-06-28 16:17:45 +03:00
Alex Plate
bbebfaf32a
Remove some obsolete and deprecated code
2024-06-28 16:17:44 +03:00
Matt Ellis
750db8e71c
Fix 'incsearch'+'wrapscan' at bottom of file
...
If all results are before the caret, make sure it's still possible to highlight the closest match if 'wrapscan' is enabled
Fixes VIM-3505
2024-06-28 13:55:57 +03:00
Filipp Vakhitov
3313464214
Fix(VIM-3501): Global commands applied to the following lines if matches > 1
2024-06-28 13:55:06 +03:00
Filipp Vakhitov
90a60155e5
Move VimscriptParser to vim-engine
2024-06-28 13:55:06 +03:00
Filipp Vakhitov
b25d06ed9e
Move Vimscript visitors to vim-engine
2024-06-28 13:55:06 +03:00
Filipp Vakhitov
706ae3dd91
Move GlobalCommand to vim-engine
2024-06-28 13:55:06 +03:00
Filipp Vakhitov
9b15ed8181
Add VimRangeMarker
2024-06-28 13:55:06 +03:00
Filipp Vakhitov
f355bef36b
Remove deprecated SearchGroup.java
2024-06-28 13:55:06 +03:00
Filipp Vakhitov
4391e69c48
Move DocumentSearchListener to IjVimSearchGroup
2024-06-28 13:55:06 +03:00
Filipp Vakhitov
0710d80391
Remove SearchGroup from GlobalCommand
2024-06-28 13:55:06 +03:00
filipp
cf41a3a76c
Fix(VIM-3507): Mapping exits early on double backslash
2024-06-28 13:46:06 +03:00
jake.peters
31b2cd872f
Use when expression instead of convoluted nested if else
2024-06-28 12:39:58 +03:00
jake.peters
2b6945cbb2
Add ability to iterate over all states for unassigned handlers
...
This is still a WIP
2024-06-28 12:39:58 +03:00
jake.peters
ae5f43918f
Use BGT instead of EDT
2024-06-28 12:39:58 +03:00
jake.peters
6b6bc2752e
Rename method to be more reflective of its toggle functionality.
2024-06-28 12:39:58 +03:00
jake.peters
4556adae3c
Add ability to change all handlers to use either Vim or IDE shortcuts.
2024-06-28 12:39:58 +03:00
Filipp Vakhitov
1b0886041b
Fix(VIM-3506): in command mode no longer change cursor to "
2024-06-27 15:46:22 +05:00
filipp
948520f90a
Fix(VIM-3485): Stay in the same split when using (Back) or (Forward)
2024-06-21 17:44:44 +03:00
Matt Ellis
0765118ce2
Stop mapping negative 'scrolljump' to IntelliJ setting
2024-06-21 17:22:36 +03:00
Matt Ellis
efd4c7b617
Fix incorrect scrolling due to 'scrolloff' mapping
...
If IntelliJ's vertical scroll offset is set to the value of the 'scrolloff' option, IntelliJ's own implementation kicks in. This implementation includes virtual space at the bottom of the file in its calculation, scrolling to a different offset to IdeaVim's. In some circumstances, IdeaVim no longer scrolls, so the last line would no longer stick to the bottom of the screen after `G`. In other circumstances, the scroll would correctly reset, but there would be a visible flash as the editor scrolls to the wrong offset and then back, especially when using backspace at the bottom of the file.
Fixes VIM-3474
2024-06-21 17:22:36 +03:00
Alex Pláte
eae111bc2c
Merge branch 'master' into create-files-and-directories
2024-06-21 16:52:46 +03:00
kun-codes
6a6c1dc6b4
add NERDTree action to delete files and directories
2024-06-21 16:52:01 +03:00
Alex Pláte
28aa156cb7
Merge branch 'master' into feature/gradle-intellij-plugin-v2
2024-06-21 16:30:25 +03:00
Matt Ellis
a7814e69de
Fix incorrect double registration when opening editors
...
Ensures that the editor listeners are only registered once when the editor is created. IdeaVim uses two different events to track editor creation, to try to understand how the editor is being created (new window, split, preview, etc.) and this can lead to calling the `EditorListeners.add` method twice. This would create a second `Disposable` and cause handlers to leak. This is most visible when creating the first window and then disabling IdeaVim. This window would still handle drag events like IdeaVim, even changing the caret back to block after the drag finishes.
2024-06-21 13:13:15 +03:00
kun-codes
931d4be972
add NERDTree action to create new files and directories
2024-06-20 17:51:15 +05:30
Matt Ellis
5eb0fae08f
Remove explicit since-build from plugin.xml
...
Let the Gradle plugin manage since-build, based on our target compile version. We leave until-build open ended
2024-06-17 11:18:50 +01:00
Matt Ellis
c673f5818c
Make jumplist project ID key unique
...
Fixes an issue if multiple projects with the same name are open at the same time
2024-06-14 14:35:48 +01:00
Matt Ellis
ec78a87644
Fix recent places adding to jump list
...
Fixes VIM-3424
2024-06-14 14:29:12 +01:00
Matt Ellis
69d14ddcf5
Implement clearjumps command
2024-06-14 14:29:12 +01:00
Filipp Vakhitov
89e016ef6c
Fix infinite loop stuck because of a confirmation dialog appearing over and over
2024-06-12 10:57:45 +03:00
Filipp Vakhitov
c44ed58142
Make text deletion in change actions a part of insert sequence
2024-06-09 00:33:07 +03:00
Filipp Vakhitov
0091af2a41
Fix(VIM-547): Undo splits Insert mode edits into separate undo chunks
...
Add tests
2024-06-07 23:03:53 +03:00
Filipp Vakhitov
133aff7fd8
Add a return type to getInsertSequence method
2024-06-07 21:29:44 +03:00
Filipp Vakhitov
efde94db7a
Fix recursive forEachCaretInvocation
2024-06-07 18:05:02 +03:00
Filipp Vakhitov
6ec072b34e
End inputSequence on motion in insert mode
2024-06-07 17:12:11 +03:00
Filipp Vakhitov
4027a21514
Support most* cases for starting / ending inputSequence
...
* - Ending inputSequence on motion in insert mode is not supported in this commit
2024-06-07 16:55:22 +03:00
Filipp Vakhitov
3665b1ab00
Improve UndoRedoHelper to split insert input into multiple undo sequences
2024-06-07 16:27:58 +03:00
Filipp Vakhitov
cf6b292f0c
Add methods to work with InsertSequence
2024-06-07 16:24:37 +03:00
Filipp Vakhitov
507e4173d3
Introduce InsertSequence class
2024-06-07 16:09:25 +03:00
Filipp Vakhitov
abc3575d3e
Fix command registration order
...
We should prioritize ij commands over the engine ones
2024-06-07 16:03:27 +03:00
Filipp Vakhitov
2c0ff587e3
Post-review improvements
2024-06-05 11:35:58 +03:00
Filipp Vakhitov
26c87535d6
Fix focus
2024-06-05 11:35:58 +03:00
Filipp Vakhitov
04ee2dd1e7
Post-rebase fixes
2024-06-05 11:35:58 +03:00
Filipp Vakhitov
3106a98aee
Make IjVimSearchGroup a PersistentStateComponent instead of deprecated SearchGroup
2024-06-05 11:35:58 +03:00
Filipp Vakhitov
73769a3472
Move one method to VimProcessGroupBase
2024-06-05 11:35:58 +03:00
Filipp Vakhitov
b2af8f153e
Add VimScriptFunctionServiceBase
2024-06-05 11:35:58 +03:00
Filipp Vakhitov
37fb41fca8
Remove exCommandAnnotation option
2024-06-05 11:35:58 +03:00
Filipp Vakhitov
e2b05ab639
Move Vimscript grammar to engine
2024-06-05 11:35:58 +03:00
Filipp Vakhitov
354fd8fef0
Remove EditorHolderService.kt
2024-06-05 11:35:58 +03:00
Filipp Vakhitov
9b97867be1
Support replace mode in command line
2024-06-05 11:35:58 +03:00
Filipp Vakhitov
06685d1721
Move more logic to VimCommandLine interface
2024-06-05 11:35:58 +03:00
Filipp Vakhitov
ae4b88a06b
Remove ExEntryPanel and move its method to VimCommandLine
2024-06-05 11:35:58 +03:00
Filipp Vakhitov
c83ecc46ed
Rename method
2024-06-05 11:35:58 +03:00
Filipp Vakhitov
c32050a208
Introduce actualText
and visibleText
for command line
2024-06-05 11:35:58 +03:00
Filipp Vakhitov
4a8c7227e6
Remove default value
2024-06-05 11:35:58 +03:00
Filipp Vakhitov
55e61a7094
Remove count for command line
...
It was not used anywhere
2024-06-05 11:35:58 +03:00
Filipp Vakhitov
60977d05b6
Deprecate ExEntryPanel
2024-06-05 11:35:58 +03:00
Filipp Vakhitov
601747f720
Changes to replace ExEntryPanel with interface and move more code to engine
2024-06-05 11:35:58 +03:00
Filipp Vakhitov
0c91bc3207
Changes to replace ExEntryPanel with interface and move more code to engine
2024-06-05 11:35:58 +03:00
Filipp Vakhitov
f5cd2c173f
Changes to replace ExEntryPanel with interface and move more code to engine
2024-06-05 11:35:58 +03:00
Matt Ellis
d00bd8bb25
Fix incsearch highlights with operator count
...
E.g. `2"a3"b4"c5d6/foo` will now highlight the current match correctly
2024-06-03 11:54:48 +03:00
Matt Ellis
a66e44d835
Fix [count]:
initial range text in ex field
...
Fixes regression from changes in ex field handling
2024-06-03 11:54:48 +03:00
Matt Ellis
ce05317634
Maintain Visual when cancelling search entry
2024-06-03 11:54:48 +03:00
Matt Ellis
a31a4a8ca7
Share ex entry set up with filter commands
2024-06-03 11:54:48 +03:00
Matt Ellis
c34d000b91
Reintroduce ProcessGroup.startExEntry
...
We need to share the implementation between starting an Ex command, and starting a filter command, which is just an Ex command with initial text
2024-06-03 11:54:48 +03:00
Matt Ellis
a2bfe950fa
Fix move command moving to current line
...
Removes a workaround that would break moving a range to the current line because it would always move the caret to the start of the range. Now positions the caret to the start of the selection if there is one. This also means we can remove the SAVE_VISUAL flag from JoinLinesCommand
Fixes VIM-2936
2024-06-03 11:54:48 +03:00
Matt Ellis
b44f40acd6
Fix incorrect output for line() in Normal mode
2024-06-03 11:54:48 +03:00
Matt Ellis
5169093bbf
Clear ex output after assert and fix tests
...
This ensures that a failing action doesn't pass due to previous state
2024-06-03 11:54:48 +03:00
Matt Ellis
b15b1cd3f8
Fix range with missing last address
...
Fixes VIM-992
2024-06-03 11:54:48 +03:00
Matt Ellis
f7b6a97435
Support 0 as part of a range address
...
Fixes VIM-1137
2024-06-03 11:54:48 +03:00
Matt Ellis
f64c99c406
Support incsearch highlighting for global command
...
Fixes VIM-2891
2024-06-03 11:54:48 +03:00
Matt Ellis
4798198e41
Minor refactorings
2024-06-03 11:54:48 +03:00
Matt Ellis
a59de4ce05
Add tests and fixes for yank command
...
Handles validation for count and ensures correct behaviour for registers.
2024-06-03 11:54:48 +03:00
Matt Ellis
2dea525665
Add tests and fixes for join command
...
Handles validation for count and positions caret in the correct place. Also handles join with visual multicaret scenarios.
2024-06-03 11:54:48 +03:00
Matt Ellis
8ecb1f7296
Add tests and fixes for print command
...
Handles validation of count and correctly moves caret to end of range after execution. Also fix issue where the results of :print are accumulated and not cleared.
Fixes VIM-2570
2024-06-03 11:54:48 +03:00
Matt Ellis
9ca9530061
Add tests and fixes for shift commands
...
Shift left and right now work with counts, validate the counts and move the caret to the correct end position
2024-06-03 11:54:48 +03:00
Matt Ellis
54e27afc3f
Simplify getCount functions
...
Made it explicit to get the count from argument and/or range. Default count is not passed, because it was never used. Added some tests where possible, but hard to test select file and friends
2024-06-03 11:54:48 +03:00
Matt Ellis
5e67032655
Add tests and fixes for delete lines command
...
Validates register before use and correctly uses register and count
2024-06-03 11:54:48 +03:00
Matt Ellis
cb37f6df63
Add tests and fixes for goto line command
...
Correctly handles some validation, and also allows going to line zero
2024-06-03 11:54:48 +03:00
Matt Ellis
ca3a18cf37
Add tests for goto character command
...
Also start to refactor handling of count
2024-06-03 11:54:48 +03:00
Matt Ellis
cac36627aa
Support 0 in copy command to copy to top of file
2024-06-03 11:54:48 +03:00
Matt Ellis
6404e1127e
Remove incorrect VimBehaviourDiffers annotation
2024-06-03 11:54:48 +03:00
Matt Ellis
739ac2ae5e
Simplify getting address from argument
2024-06-03 11:54:48 +03:00
Matt Ellis
77c364a2d0
Move count handling out of range into command
2024-06-03 11:54:48 +03:00
Matt Ellis
103cd9f5ce
Fix off-by-one error in count
...
Count needs to be one-based, lines must be zero-based. So store addresses as one-based until processed
2024-06-03 11:54:48 +03:00
Matt Ellis
99859fe857
Rename test classes
...
Also ensure that test derives from VimTestCase so that injector is correctly initialised
2024-06-03 11:54:48 +03:00
Matt Ellis
0a14150840
Extract TextRange from Ex range class
2024-06-03 11:54:48 +03:00
Matt Ellis
e8ffc0313f
Remove Range overloads that don't require a caret
...
Provide caret when calling from Command
2024-06-03 11:54:48 +03:00
Matt Ellis
076aab1ccf
Rename Ranges, and ExRanges.kt
2024-06-03 11:54:48 +03:00
Matt Ellis
751f51c88f
Rename Range and related classes to Address
...
An address evaluates to a line, and a range is a collection of addresses
2024-06-03 11:54:48 +03:00
Filipp Vakhitov
ab7359ffd3
Fix options test for Windows
...
Thanks @citizenmatt for this patch
2024-05-29 18:48:05 +03:00
Alex Plate
d795d70041
Disable some tests due to VIM-3376
2024-05-29 18:33:31 +03:00
Filipp Vakhitov
7abb1fd630
Finalizing merge
2024-05-28 23:35:31 +03:00
Filipp Vakhitov
9e3ca56afd
Merge branch 'refs/heads/master' into fleet
...
# Conflicts:
# src/main/java/com/maddyhome/idea/vim/ui/ex/ExEntryPanel.java
# vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/ex/LeaveCommandLineAction.kt
# vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/SearchEntryFwdAction.kt
# vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/SearchEntryRevAction.kt
# vim-engine/src/main/kotlin/com/maddyhome/idea/vim/key/consumers/CommandConsumer.kt
2024-05-28 22:19:17 +03:00