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
Filipp Vakhitov
5379528e3e
Minor post-review PR improvements
2024-05-28 21:52:43 +03:00
Filipp Vakhitov
12201359bc
Fix unwanted triggering of IDE actions instead of Vim ones
...
https://github.com/JetBrains/ideavim/pull/893#pullrequestreview-2082768468
2024-05-28 21:39:14 +03:00
Alex Plate
4481631547
Disable RedrawListener if the plugin is not enabled
2024-05-28 13:55:47 +03:00
Matt Ellis
7865388086
Fix regression when sub string ends with backslash
...
Fixes VIM-3428
2024-05-28 13:53:13 +03:00
Matt Ellis
26297bc5a9
Fix last line sometimes obscured by scrollbar
...
Fixes VIM-3028
2024-05-28 13:53:13 +03:00
Matt Ellis
9db5cdd8e3
Fix last line sometimes obscured by ex entry prompt
...
When performing a substitute command with confirmation, the height of the editor content pane should be reduced by the height of the ex entry panel. IdeaVim would do this correctly when moving a search result to the bottom of the file, but not when the result was on the last line of the file. Because the wrong height was used, IdeaVim would decide that no scrolling was necessary and the result in the last line would be obscured.
Fixes VIM-1560
2024-05-28 13:53:13 +03:00
Matt Ellis
2b17534a08
Fix infinite loop while highlighting in old regex
...
Fixes VIM-2510
2024-05-28 13:53:13 +03:00
Matt Ellis
4e2db68acf
Update selection when searching in Visual mode
2024-05-28 13:53:13 +03:00
Matt Ellis
ddabf8df5e
Fix regression finding endpos in new regex engine
...
Fixes VIM-3344
2024-05-28 13:53:13 +03:00
Matt Ellis
3f28e197ca
Clear status bar on scrolling, add/remove lines, etc.
...
Also implements <C-L> to "redraw" screen and clear status line
2024-05-28 13:53:13 +03:00
Matt Ellis
3a67524e8a
Show status bar message when search wraps
...
Fixes VIM-1043
2024-05-28 13:53:13 +03:00
Matt Ellis
f554b21cd9
Support count for search
...
Fixes VIM-2836
2024-05-28 13:53:13 +03:00
Matt Ellis
d9fa4e4648
Fix end of file atom for old regex engine
...
Fixes VIM-2888
2024-05-28 13:53:13 +03:00
Matt Ellis
e98a284d40
Fix multiline regex substitution
...
Fixes VIM-2141
2024-05-28 13:53:13 +03:00
Matt Ellis
38ef8c1053
Fix removing search highlight that crosses newline
2024-05-28 13:53:13 +03:00
Matt Ellis
d3f560a31c
Add special case to match newline with end of file
2024-05-28 13:53:13 +03:00
Matt Ellis
e2cb3ff284
Stop subst skipping too far with multiline pattern
...
Fixes VIM-698
2024-05-28 13:53:13 +03:00
Matt Ellis
0f5a3953e1
Don't break ex field with exceptions from incsearch
2024-05-28 13:53:13 +03:00
Matt Ellis
633667ed7f
Fix regression with global not saving used patterns
...
This is a messy quick fix, as the search group needs a lot of tidying up right now. Perhaps a better implementation would be to move the implementation of the global command into the search group - processGlobalCommand, like we already have processSearchCommand and processSubstituteCommand
Fixes VIM-3348
2024-05-28 13:53:13 +03:00
Matt Ellis
656e975562
Fix reset of last substitution string on use
...
Fixes VIM-3354
2024-05-28 13:53:13 +03:00