Commit Graph
8526 Commits
Author SHA1 Message Date
Alex Plate b205f87902 Disable tests for options for split window
The behaviour of FileEditorManagerEx.split has been changed, causing the tests to fail. This should be fixed in a separate commit
2024-09-05 18:57:12 +03:00
Alex Plate 314304246a Fix the LATEST-EAP-SNAPSHOT tests 2024-09-05 17:10:14 +03:00
Alex Plate 785688b1ca Fix compatibility in tests with 2024.2 2024-09-05 16:42:16 +03:00
IdeaVim Bot 4c09ab4766 Add Felix Wiemuth to contributors list 2024-08-31 09:01:59 +00:00
Alex Plate ee447bce07 Add a note to replace the raw string after the changes will be available
https://github.com/JetBrains/intellij-community/pull/2825
2024-08-30 18:57:00 +03:00
Alex Plate 5fb4c10f88 Add 2024.2 IJ for testing on TC 2024-08-30 18:42:02 +03:00
Alex Plate ed2fcb08b0 [VIM-3620] Add a link to the usage survey 2024-08-30 18:34:10 +03:00
chylexandAlex Pláte dedd90ce13 Fix(VIM-3615): Escape closes dialog while waiting for more keys 2024-08-30 16:46:53 +03:00
Alex Plate 73326e623e Use the behavior form in docs 2024-08-30 16:42:03 +03:00
Alex Plate a2bc34d6ec [VIM-3620] Show the uninstall survey only when uninstalling IdeaVim 2024-08-30 16:41:36 +03:00
Felix WiemuthandAlex Pláte b652c7726a Fix typo 2024-08-30 16:41:05 +03:00
Matt EllisandAlex Pláte 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 EllisandAlex Pláte 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 EllisandAlex Pláte 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 EllisandAlex Pláte 09a335bcfe Start to encapsulate setting command builder state
Also rename `pushCommandPart` and `completeCommandPart`
2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte 37b8d69bac Remove unused EMPTY_COMMAND 2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte 13308050a8 Remove unnecessary OperatorArguments parameters 2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte a1a553ebc9 Deprecate OperatorArguments.mode 2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte 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 EllisandAlex Pláte da6736f24a Simplify the logic when yanking during delete 2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte 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 EllisandAlex Pláte 00fd4cd491 Handle op-pending for space and backspace 2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte 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 EllisandAlex Pláte 55fef03a4a Add 'whichwrap' to dictionary 2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte 69b3e4f782 Start to refactor OperatorArguments 2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte 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 EllisandAlex Pláte 9965c863a6 Encapsulate command node state in builder 2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte 3f11ae512c Move register pending state to command builder 2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte 1c842eb3d8 Avoid exposing misleading count on command builder 2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte c7fbce675b Update comment 2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte d7e68488c8 Make Command.rawCount immutable 2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte 69d13a74e6 Remove unnecessary copy method 2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte 5a83df34a7 Replace var properties with read only 2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte 0a18c388e0 Simplify CommandBuilder
Fixes selecting last register if multiple registers are used in a command
2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte 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 EllisandAlex Pláte e93db961a0 Wrap offsets argument as an external action 2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte 8fd76bd08f Refactor properties for sealed Argument classes 2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte 0eea4a5b2c Introduce sealed classes to represent an argument 2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte 18a0c533e2 Remove unused OperatedRange type 2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte 0bd8d8f4d2 Remove unused digraph command flag 2024-08-30 16:36:24 +03:00
Alex Plate 64a89c8863 [VIM-3620] Add the uninstall survey
We're actively working on understanding the users and what we can improve in the plugin
2024-08-28 18:57:29 +03:00
Filipp Vakhitov 5b17d7740e Update generated files after merging PRs 2024-08-25 21:51:14 +03:00
IdeaVim Bot e406885ec6 Add Igor Babko to contributors list 2024-08-24 09:01:39 +00:00
filippandAlex Pláte 9bbeab8062 VIM-2074 Backspace behaviour is incorrect in Replace mode 2024-08-23 14:22:48 +03:00
filippandAlex Pláte 373bfc4eab Add endOffset to LiveRange 2024-08-23 14:22:48 +03:00
filippandAlex Pláte 050f2f7b97 Respect emojis and don't assume that every character is a single offset 2024-08-23 14:18:03 +03:00
Filipp VakhitovandAlex Pláte e30bc14843 Make closing command line safer 2024-08-23 14:18:03 +03:00
Filipp VakhitovandAlex Pláte 76d590be11 Support more flexible command line restrictions for Fleet 2024-08-23 14:18:03 +03:00
Filipp VakhitovandAlex Pláte 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 VakhitovandAlex Pláte ad20021cee Remove currentAction and some unused code 2024-08-23 14:18:03 +03:00