Matt Ellis
9b4f114d61
Refactor MappingProcessor
...
Extract single implementation for replaying unhandled keys and update to match the longest mapping that fits in the unhandled keys.
2025-04-10 19:32:29 +03:00
Matt Ellis
3155556832
Reformat and update comments for MappingProcessor
...
Minor refactorings, should be no changes in logic
2025-04-10 19:32:29 +03:00
Matt Ellis
07190f38c9
Fix :normal command with multi-letter mapping
2025-04-10 19:32:29 +03:00
Matt Ellis
db116faa32
Fix handling of modes in NormalCommand
...
All commands are called in Normal, so there is no need to check mode at execution time. The SAVE_VISUAL flag is perhaps poorly named, as it still change to Normal mode, but will save the current selection for commands that need (usually because they interact with IDE features). The `:normal` command does not need the current selection.
2025-04-10 19:32:29 +03:00
erotourtes
5a3d35f216
fix: typo & consistency
2025-04-07 10:47:41 +03:00
Matt Ellis
6d3bde3ad5
Fix incorrect implementation of DoesNotMatchHandler
2025-03-28 19:07:06 +02:00
Matt Ellis
3b2b863c88
Update truthy expressions
2025-03-28 19:07:06 +02:00
Matt Ellis
a7e1c08589
Simplify unary arithmetic operators
2025-03-28 19:07:06 +02:00
Matt Ellis
5aa5e82d59
Rename some operator handlers
2025-03-28 19:07:06 +02:00
Matt Ellis
0db9ad505b
Remove unnecessary singleton classes
2025-03-28 19:07:06 +02:00
Matt Ellis
147eb99745
Simplify case sensitive binary operators
2025-03-28 19:07:06 +02:00
Matt Ellis
bb73bdfb4a
Simplify case sensitive comparisons
2025-03-28 19:07:06 +02:00
Matt Ellis
9ab1044880
Migrate various string operators to toVimString
...
Make it explicit they only work with String values
2025-03-28 19:07:06 +02:00
Matt Ellis
e2cc9c648f
Introduce toVimString to match toVimNumber
2025-03-28 19:07:06 +02:00
Matt Ellis
a322525c2a
Be more explicit with is and isnot implementation
2025-03-28 19:07:06 +02:00
Matt Ellis
51ea947ccb
Move comparison operator data rules to base class
2025-03-28 19:07:06 +02:00
Matt Ellis
f6810798ef
Move binary operator conversion rules to base class
2025-03-28 19:07:06 +02:00
Matt Ellis
2fee525998
Refactor logical operators
2025-03-28 19:07:06 +02:00
Matt Ellis
9e3ab12451
Combine logical handlers into same file
2025-03-28 19:07:06 +02:00
Matt Ellis
5f8d552e8a
Extract error message
2025-03-28 19:07:06 +02:00
Matt Ellis
4e847f8ef4
Merge arithmetic operators to same file
2025-03-28 19:07:06 +02:00
Matt Ellis
d5901fc2c9
Merge case-sensitive handlers to same file
2025-03-28 19:07:06 +02:00
Matt Ellis
3621b91321
Make operator handlers internal
2025-03-28 19:07:06 +02:00
Matt Ellis
021db84a21
Expand ~ to home directory in XDG_CONFIG_HOME
...
Addresses VIM-3844, VIM-2001
2025-03-28 18:18:32 +02:00
Matt Ellis
e232cb3ceb
Support 32-bit Unicode codepoints in digraphs
...
Fixes VIM-3842
2025-03-28 18:13:14 +02:00
Matt Ellis
7917c83cb5
Add extra tests for line() function behaviour
...
It's not obvious that line('v') will return the opposite end of the current selection. Add some tests to highlight this.
Relates to VIM-3838
2025-03-28 17:23:41 +02:00
Matt Ellis
42229b285b
Fix typo
2025-03-28 17:23:41 +02:00
Matt Ellis
dbd097a91a
Fix caret position after :move command
...
Fixes VIM-3837
2025-03-28 17:23:41 +02:00
Alex Plate
f76b07521e
Fix(VIM-3827): Fix an incorrect implementation of the >= operator
...
As a note: This is the first bug in IdeaVim that was fixed by AI (with manual verification, of course).
2025-03-10 10:50:26 +02:00
Alex Plate
9ba0f5f47a
Add information when the characterwise motion changes to the linewise
2025-03-07 10:03:59 +02:00
Alex Plate
4a31e425e0
Support per-caret selection type during yanking
2025-03-07 10:01:36 +02:00
Alex Plate
017b36673b
Remove unused range argument from yank motion
2025-03-07 09:40:27 +02:00
Nath Tumlin
156fbcd60d
Make yank motion respect exclusive-linewise
...
I used the code in VimChangeGroupBase.getDeleteRangeAndType to do the check.
For an example of what this fixes, with the document:
```
${c}Hello!
```
executing "y}llp" before this change yields
```
HelHello!
lo!
```
but doing it with this change yields
```
Hello!
Hello!
````
2025-03-07 09:07:53 +02:00
Alex Plate
cda85ae534
Fix missing offset adjusting
...
This issue was found by property test
2025-03-04 18:46:34 +02:00
Alex Plate
f88a1cbe06
Add more wrappings for read actions
2025-03-04 15:36:18 +02:00
Alex Plate
89e530276f
Get rid of the AppCode-specific code
...
AppCode was sunset, so there is no need to support it in IdeaVim
2025-02-28 17:14:06 +02:00
Matt Ellis
ca4de6f317
Add missing shortcuts for WORD left/right in Select
2025-02-25 15:38:49 +02:00
Alex Plate
4ca25eed70
Remove the use of write action in macros
2025-02-24 14:31:14 +02:00
Alex Plate
a925676d64
Fix issues with command line prompt processing
2025-02-24 13:59:31 +02:00
Alex Plate
6feb1a4525
Remove the change of ordering inside the clearPromptCharacter
2025-02-24 12:43:39 +02:00
Alex Plate
4cf7685aaf
Fix incorrect condition in getting the actual text in command line
2025-02-24 12:21:34 +02:00
Alex Plate
e257a10525
Fix an issue that the highlighting was silently missing due to an error
2025-02-24 12:13:51 +02:00
Alex Plate
42d80f6866
Add write action in several places
2025-02-21 19:32:47 +02:00
Alex Plate
c9189ed7cb
Commands don't start the read and write actions automatically. See the explanation in the previous commit messages.
...
Related to the implementation of VIM-3376
2025-02-21 19:11:28 +02:00
Alex Plate
fedefea0aa
Remove the write action in several places
2025-02-21 18:56:52 +02:00
Alex Plate
437fa9a1a0
Remove the root write and read actions
...
Historically, IdeaVim was starting read or write action based on command type. However, this is incorrect because of several reasons:
- The command of different type may perform a write/read action
- The write lock with a lot of code inside does cause application freezes
- Since a large branching of code happens inside the write action, there is a chance of read action request, resulting in the deadlock
Also, now this prevents from implementing a proper execution of VIM-3376.
2025-02-21 18:44:51 +02:00
Alex Plate
564ab7d75e
Remove EDT and write action from the VimTestCase
2025-02-21 09:54:12 +02:00
Matt Ellis
24c0d31f14
Updated comment and defaults for word end action
...
The `ge` motion incorrectly had `stopAtEmptyLine` set to false, but `ge` always stops at empty lines. This option is only applicable for forward motion, so is ignored by the implementation of `findPreviousWordEndOne`.
2025-02-21 09:53:11 +02:00
Matt Ellis
43a2bd98db
Reduce multiple implementations to one
2025-02-21 09:53:11 +02:00
Matt Ellis
c4f56c40fd
Rename findWordUnderCursor to findWordObject
...
Starting to distinguish between the other findWordUnderCursor implementations!
2025-02-21 09:53:11 +02:00