5957d5d681
Stop macro execution after a failed search
2024-09-05 07:27:53 +02:00
9445afb555
Revert per-caret registers
2024-09-05 07:27:53 +02:00
1c154fdc8a
Update search register when using f/t
2024-09-05 07:12:09 +02:00
cb781f9a0d
Add support for count for visual and line motion surround
2024-09-05 07:12:09 +02:00
9a9bd335d3
Fix(VIM-696) Restore visual mode after undo/redo, and disable incompatible actions
2024-09-05 07:12:09 +02:00
91e22482c6
Respect count with <Action> mappings
2024-09-05 07:08:52 +02:00
dedd90ce13
Fix(VIM-3615): Escape closes dialog while waiting for more keys
2024-08-30 16:46:53 +03:00
Matt Ellis
fb7a2de07b
Encapsulate the command builder's state flag
...
This also gets rid of BAD_COMMAND, which was set but never checked - the function that set the flag would immediately reset the command builder
2024-08-30 16:36:24 +03:00
Matt Ellis
def9ca479b
Ensure builder resets to a root command trie node
...
Also refactors command nodes a bit for better debug/trace output
2024-08-30 16:36:24 +03:00
Matt Ellis
0936e0761f
Reorder CommandBuilder methods
...
Try to keep related functions together: awaiting arguments, count, registers, adding action/argument, processing keystrokes, build, reset.
2024-08-30 16:36:24 +03:00
Matt Ellis
09a335bcfe
Start to encapsulate setting command builder state
...
Also rename `pushCommandPart` and `completeCommandPart`
2024-08-30 16:36:24 +03:00
Matt Ellis
37b8d69bac
Remove unused EMPTY_COMMAND
2024-08-30 16:36:24 +03:00
Matt Ellis
13308050a8
Remove unnecessary OperatorArguments parameters
2024-08-30 16:36:24 +03:00
Matt Ellis
a1a553ebc9
Deprecate OperatorArguments.mode
2024-08-30 16:36:24 +03:00
Matt Ellis
5bb0c4f7cb
Use editor.mode instead of OperatorArguments.mode
...
`OperatorArguments.mode` is the mode *before* the command was completed, rather than the current mode, which is non-obvious. E.g. for a command in Insert mode, it will still be Insert, and for a (simple) command in Normal, it will still be Normal. The only difference is that a command such as `dw` would be in Operator-pending before the command is completed. That logic is not required for this method, so it's safe to use the current mode.
This allows us to start to deprecate `OperatorArguments.mode`.
2024-08-30 16:36:24 +03:00
Matt Ellis
da6736f24a
Simplify the logic when yanking during delete
2024-08-30 16:36:24 +03:00
Matt Ellis
4df1ce2ae8
Remove OperatorArguments.mode usage in block insert
...
`OperatorArguments.mode` is the mode *before* the command is completed, so might be Visual, Operator-pending, Insert, etc. It's not immediately obvious this is the case, so we're going to deprecate `OperatorArguments.mode` to avoid confusion with `editor.mode`.
It's not required for this method because it's only called for Visual-block mode.
2024-08-30 16:36:24 +03:00
Matt Ellis
00fd4cd491
Handle op-pending for space and backspace
2024-08-30 16:36:24 +03:00
Matt Ellis
d185672e2f
Deprecate OperatorArguments.isOperatorPending
...
Register specific handlers for Operator-pending mode instead of relying on a runtime flag for behaviour. Also refactors and renames some arrow motion handlers.
2024-08-30 16:36:24 +03:00
Matt Ellis
69b3e4f782
Start to refactor OperatorArguments
2024-08-30 16:36:24 +03:00
Matt Ellis
6be29b0378
Remove KeyHandler.isOperatorPending
...
It's easier to just look at mode. We don't need the additional check on command builder, because we can't be in OP_PENDING without pushing an operator action to the command builder
2024-08-30 16:36:24 +03:00
Matt Ellis
9965c863a6
Encapsulate command node state in builder
2024-08-30 16:36:24 +03:00
Matt Ellis
3f11ae512c
Move register pending state to command builder
2024-08-30 16:36:24 +03:00
Matt Ellis
1c842eb3d8
Avoid exposing misleading count on command builder
2024-08-30 16:36:24 +03:00
Matt Ellis
c7fbce675b
Update comment
2024-08-30 16:36:24 +03:00
Matt Ellis
d7e68488c8
Make Command.rawCount immutable
2024-08-30 16:36:24 +03:00
Matt Ellis
69d13a74e6
Remove unnecessary copy method
2024-08-30 16:36:24 +03:00
Matt Ellis
5a83df34a7
Replace var properties with read only
2024-08-30 16:36:24 +03:00
Matt Ellis
0a18c388e0
Simplify CommandBuilder
...
Fixes selecting last register if multiple registers are used in a command
2024-08-30 16:36:24 +03:00
Matt Ellis
1a3409e7df
Remove count from motion argument
...
Only Command has a count. The motion argument is now a sealed class hierarchy, and consists only of the motion action and optional argument. This is to reduce confusion over which count to use, and potential incorrect calculation of the count
2024-08-30 16:36:24 +03:00
Matt Ellis
e93db961a0
Wrap offsets argument as an external action
2024-08-30 16:36:24 +03:00
Matt Ellis
8fd76bd08f
Refactor properties for sealed Argument classes
2024-08-30 16:36:24 +03:00
Matt Ellis
0eea4a5b2c
Introduce sealed classes to represent an argument
2024-08-30 16:36:24 +03:00
Matt Ellis
18a0c533e2
Remove unused OperatedRange type
2024-08-30 16:36:24 +03:00
Matt Ellis
0bd8d8f4d2
Remove unused digraph command flag
2024-08-30 16:36:24 +03:00
Filipp Vakhitov
5b17d7740e
Update generated files after merging PRs
2024-08-25 21:51:14 +03:00
filipp
9bbeab8062
VIM-2074 Backspace behaviour is incorrect in Replace mode
2024-08-23 14:22:48 +03:00
filipp
373bfc4eab
Add endOffset to LiveRange
2024-08-23 14:22:48 +03:00
filipp
050f2f7b97
Respect emojis and don't assume that every character is a single offset
2024-08-23 14:18:03 +03:00
Filipp Vakhitov
e30bc14843
Make closing command line safer
2024-08-23 14:18:03 +03:00
Filipp Vakhitov
76d590be11
Support more flexible command line restrictions for Fleet
2024-08-23 14:18:03 +03:00
Filipp Vakhitov
b005328b4a
Exclude generated files from .gitignore
...
I've also added sorting to be more confident that the generated file will be persistent across different machines
2024-08-23 14:18:03 +03:00
Filipp Vakhitov
0f7aef3f15
Fix tests
2024-08-23 14:18:03 +03:00
Filipp Vakhitov
f352b84922
Move some Executor logic to its base class
2024-08-23 14:18:03 +03:00
Filipp Vakhitov
789faa7cb2
Add entry to history on <Esc> in COMMAND mode
2024-08-23 14:18:03 +03:00
Filipp Vakhitov
a338f5768a
Better reset
2024-08-23 14:18:03 +03:00
Filipp Vakhitov
010e8a7541
Support <C-U> in command mode
2024-08-23 14:18:03 +03:00
Filipp Vakhitov
46c6778b3a
Support <Down>, <S-Down>, <C-N>, <PageDown> in command mode
2024-08-23 14:18:03 +03:00
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