Matt Ellis
e762a3093b
Range is already normalised
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
4778995f3b
Remove unnecessary getFirstLine function
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
7dbd3886b1
Introduce addresses for current line and last line
...
Remove mutation from LineAddress
2024-06-03 11:54:48 +03:00
Matt Ellis
8c83164d76
Remove mutable state from Range
...
Sometimes we cache things, and other times it's relative to a passed caret. Let's always calculate it
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
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
Matt Ellis
7865388086
Fix regression when sub string ends with backslash
...
Fixes VIM-3428
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
33312d95b0
Remove wrapscan flag for substitute
...
Substitute always works on a known range
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
e98a284d40
Fix multiline regex substitution
...
Fixes VIM-2141
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
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
Matt Ellis
f7fbe89de4
Use EnumSet instead of list of enums
2024-05-28 13:53:13 +03:00
Matt Ellis
509829b052
Fix force ignorecase atom in search highlights
...
Fixes VIM-3391
2024-05-28 13:53:13 +03:00
Matt Ellis
cf2b021d02
Fix search for last search pattern with new offset
...
Fixes VIM-2356
2024-05-28 13:53:13 +03:00
Matt Ellis
67f10aece5
Fix search motion type when providing offset
...
Search motion type should be linewise if there's a line offset, or inclusive if the `e` flag is provided. Otherwise, it's exclusive.
Fixes VIM-1940
2024-05-28 13:53:13 +03:00
Matt Ellis
bfe0f51cb1
Restore current match highlighting for :s command
...
Regression while migrating to the new regex engine removed the highlights shown when confirming each change
2024-05-28 13:53:13 +03:00
Matt Ellis
ffce61906a
Restore search highlights when setting 'hlsearch'
...
Fixes VIM-3257
2024-05-28 13:53:13 +03:00
Filipp Vakhitov
a81d54eb90
Remove VimCommandLineHelper
2024-05-24 17:18:24 +03:00
Filipp Vakhitov
23519bbdae
Refactoring to use interfaces from vim-engine
2024-05-24 16:51:38 +03:00
Filipp Vakhitov
8e2fd44f55
Remove unnecessary methods from ProcessGroup
2024-05-24 14:25:51 +03:00
Filipp Vakhitov
1c84917b29
Move LeaveCommandLineAction to its own class
2024-05-24 12:58:04 +03:00
Filipp Vakhitov
c5522ed19d
Move ExEntryAction to vim-engine
2024-05-24 12:56:52 +03:00
Alex Plate
16cd05fc76
Fix incorrect use of visual position instead of buffer position
...
We should calculate the line above based on logical position rather than visual position.
This issue was detected thanks to newly introduced soft wraps and proprty tests
2024-05-24 11:39:45 +03:00
Filipp Vakhitov
91e54c8b0d
Replace c_CTRL-R swing TextAction implementation with proper Vim engine implementation
2024-05-23 17:31:18 +03:00
Filipp Vakhitov
15ccebfe11
Cleanup
2024-05-23 15:27:18 +03:00
Filipp Vakhitov
9e99506223
Move some logic to engine
2024-05-23 01:32:48 +03:00
Filipp Vakhitov
53ea90379f
Moved some search related logic to commands to simplify KeyHandler and ProcessGroup
2024-05-23 00:15:46 +03:00
Filipp Vakhitov
2619d7ebb4
Moved some classes to the same file in vim-engine
...
They will share some logic in future commits
2024-05-22 22:14:54 +03:00
Filipp Vakhitov
8c8a7aceca
Moved some classes to the same file in vim-engine
...
They will share some logic in future commits
2024-05-22 22:12:34 +03:00
Filipp Vakhitov
726b885b60
More obvious processing of ex-commands.
...
1. Now we have two parallel commandBuilders: for the editor and for the command prompt. It's done for sequence of keys like `d/foo<C-R>"<CR>` where we have two different commands that are built at the same time.
2. We simplified the CommandConsumer and made the logic more straightforward. `/`, `?` and `:` enter the command mode, while pressing final `<CR>` fires the command execution.
2024-05-22 22:04:32 +03:00
Filipp Vakhitov
a6994a09c3
Add support for commands that can be executed either once or for each caret depending on some circumstances
...
In a future commit, I'm going to make ProcessExEntryAction responsible for processing both search and ex commands. Search commands are motions that are executed for each caret, while ex-commands are executed once. The per-caret code is held internally by the ex commands themselves.
The current solution is definitely not the right one, and the whole ex command subsystem needs to be reviewed and refactored:
1. Some commands can be motions, which is currently not supported.
2. We need to figure out a gentle way of handling multiple carets.
2024-05-22 15:44:12 +03:00
Matt Ellis
755000c376
Reset Vim options when IDE setting changes
...
Options are not reset if they've been explicitly set by the user (e.g. `:set list` or _View | Active Editor | Show Whitespaces_). They are reset if they were explicitly set in `~/.ideavimrc`.
Also bumps the IDE build number to 233.11799.241 in order to use EditorSettingsExternalizable.PropNames
2024-05-10 15:27:24 +03:00
Matt Ellis
c9ee685956
Codify assumption re global-local external setting
2024-05-10 15:27:24 +03:00
Matt Ellis
c2b1083836
Updated descriptions as per review comments
2024-05-10 15:27:24 +03:00
Matt Ellis
3518528f22
Prevent resetting options when plugin re-enabled
2024-05-10 15:27:24 +03:00
Matt Ellis
9bed8fec79
Map 'scrolloff' and 'sidescrolloff' options
...
Fixes VIM-3110
2024-05-10 15:27:24 +03:00