Commit Graph
1849 Commits
Author SHA1 Message Date
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
Matt Ellis 1b4b66dbb1 Minor refactoring 2025-02-21 09:53:11 +02:00
Matt Ellis 4787a5e22a Rewrite backwards search for word under cursor 2025-02-21 09:53:11 +02:00
Matt Ellis d2b85cbb10 Merge inner and outer motion implementations 2025-02-21 09:53:11 +02:00
Matt Ellis 0428c2aeff Rewrite inner motion to match outer motion
The implementations are so similar and can now be refactored/simplified
2025-02-21 09:53:11 +02:00
Matt Ellis 1a8789b50c Rewrite next/previous word motions and objects 2025-02-21 09:53:11 +02:00
Matt Ellis b5937e885d Rewrite displayLocationInfo to avoid findNextWord
Simplifies and fixes counting words, especially when selection intersects words. Also moves implementation to engine and adds more tests.
2025-02-21 09:53:11 +02:00
Matt Ellis 8eef802ac7 Add notes on possible refactoring 2025-02-21 09:53:11 +02:00
Matt Ellis cad6afdc9d Rewrite word end motions and word objects 2025-02-21 09:53:11 +02:00
Matt Ellis 426c2fd006 Handle blank and empty lines for text objects
Fixes VIM-1642
2025-02-21 09:53:11 +02:00
Matt Ellis f25c56b545 Refactor checks for including following whitespace 2025-02-21 09:53:11 +02:00