Commit Graph
1513 Commits
Author SHA1 Message Date
Alex Plate 916afd31b2 Fix(VIM-3870): Add missing write actions 2025-04-16 18:54:22 +03:00
Matt EllisandAlex Pláte a5efa5f9f2 Rename SAVE_VISUAL to SAVE_SELECTION
IdeaVim will still leave Visual mode, but the IDE's selection remains.
2025-04-10 19:32:29 +03:00
Matt EllisandAlex Pláte e86503798a Remove special case handling for Plug mapping
While it might not make sense to replay an incorrect `<Plug>` or `<Action>` mapping as characters where they are likely to cause unexpected behaviour as Normal commands, this is standard Vim behaviour (at least for `<Plug>`).

Note that `<Plug>` (and `<Action>`) is a special key code that cannot be typed. In Insert mode, Vim expands it to the text "<Plug>".
2025-04-10 19:32:29 +03:00
Matt EllisandAlex Pláte 0b6ac4a9f4 Rename variable and add comments 2025-04-10 19:32:29 +03:00
Matt EllisandAlex Pláte 2a6f7cc907 Remove unused mappingComplete parameter
Also makes all KeyConsumers internal
2025-04-10 19:32:29 +03:00
Matt EllisandAlex Pláte 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 EllisandAlex Pláte 3155556832 Reformat and update comments for MappingProcessor
Minor refactorings, should be no changes in logic
2025-04-10 19:32:29 +03:00
Matt EllisandAlex Pláte 07190f38c9 Fix :normal command with multi-letter mapping 2025-04-10 19:32:29 +03:00
Matt EllisandAlex Pláte 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
erotourtesandAlex Pláte 5a3d35f216 fix: typo & consistency 2025-04-07 10:47:41 +03:00
Matt EllisandAlex Pláte 6d3bde3ad5 Fix incorrect implementation of DoesNotMatchHandler 2025-03-28 19:07:06 +02:00
Matt EllisandAlex Pláte 3b2b863c88 Update truthy expressions 2025-03-28 19:07:06 +02:00
Matt EllisandAlex Pláte a7e1c08589 Simplify unary arithmetic operators 2025-03-28 19:07:06 +02:00
Matt EllisandAlex Pláte 5aa5e82d59 Rename some operator handlers 2025-03-28 19:07:06 +02:00
Matt EllisandAlex Pláte 0db9ad505b Remove unnecessary singleton classes 2025-03-28 19:07:06 +02:00
Matt EllisandAlex Pláte 147eb99745 Simplify case sensitive binary operators 2025-03-28 19:07:06 +02:00
Matt EllisandAlex Pláte bb73bdfb4a Simplify case sensitive comparisons 2025-03-28 19:07:06 +02:00
Matt EllisandAlex Pláte 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 EllisandAlex Pláte e2cc9c648f Introduce toVimString to match toVimNumber 2025-03-28 19:07:06 +02:00
Matt EllisandAlex Pláte a322525c2a Be more explicit with is and isnot implementation 2025-03-28 19:07:06 +02:00
Matt EllisandAlex Pláte 51ea947ccb Move comparison operator data rules to base class 2025-03-28 19:07:06 +02:00
Matt EllisandAlex Pláte f6810798ef Move binary operator conversion rules to base class 2025-03-28 19:07:06 +02:00
Matt EllisandAlex Pláte 2fee525998 Refactor logical operators 2025-03-28 19:07:06 +02:00
Matt EllisandAlex Pláte 9e3ab12451 Combine logical handlers into same file 2025-03-28 19:07:06 +02:00
Matt EllisandAlex Pláte 5f8d552e8a Extract error message 2025-03-28 19:07:06 +02:00
Matt EllisandAlex Pláte 4e847f8ef4 Merge arithmetic operators to same file 2025-03-28 19:07:06 +02:00
Matt EllisandAlex Pláte d5901fc2c9 Merge case-sensitive handlers to same file 2025-03-28 19:07:06 +02:00
Matt EllisandAlex Pláte 3621b91321 Make operator handlers internal 2025-03-28 19:07:06 +02:00
Matt EllisandAlex Pláte 021db84a21 Expand ~ to home directory in XDG_CONFIG_HOME
Addresses VIM-3844, VIM-2001
2025-03-28 18:18:32 +02:00
Matt EllisandAlex Pláte e232cb3ceb Support 32-bit Unicode codepoints in digraphs
Fixes VIM-3842
2025-03-28 18:13:14 +02:00
Matt EllisandAlex Pláte 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 EllisandAlex Pláte 42229b285b Fix typo 2025-03-28 17:23:41 +02:00
Matt EllisandAlex Pláte dbd097a91a Fix caret position after :move command
Fixes VIM-3837
2025-03-28 17:23:41 +02:00
dependabot[bot]andgithub-actions[bot] 3b8a830622 Bump org.junit.jupiter:junit-jupiter-api from 5.12.0 to 5.12.1
Bumps [org.junit.jupiter:junit-jupiter-api](https://github.com/junit-team/junit5) from 5.12.0 to 5.12.1.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.0...r5.12.1)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-api
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-26 17:41:17 +02:00
dependabot[bot]andgithub-actions[bot] 4b3bba6a98 Bump org.junit.vintage:junit-vintage-engine from 5.12.0 to 5.12.1
Bumps [org.junit.vintage:junit-vintage-engine](https://github.com/junit-team/junit5) from 5.12.0 to 5.12.1.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.0...r5.12.1)

---
updated-dependencies:
- dependency-name: org.junit.vintage:junit-vintage-engine
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-19 18:34:51 +03:00
dependabot[bot]andgithub-actions[bot] f5269a56d6 Bump org.junit.jupiter:junit-jupiter-engine from 5.12.0 to 5.12.1
Bumps [org.junit.jupiter:junit-jupiter-engine](https://github.com/junit-team/junit5) from 5.12.0 to 5.12.1.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.0...r5.12.1)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-engine
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-19 18:34:13 +03: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 098243fb12 Fix vim-engine setup if no uploadUrl provided 2025-03-07 18:02:29 +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 TumlinandAlex Pláte 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 6f193d8026 Update kotlin API version in vim-engine 2025-02-28 20:15:09 +02:00
Alex Plate 38102afc0f Upgrade version of kotlin to 2.0.21 2025-02-28 19:22:16 +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
dependabot[bot]andgithub-actions[bot] 0b817ba575 Bump org.junit.jupiter:junit-jupiter-engine from 5.10.5 to 5.12.0
Bumps [org.junit.jupiter:junit-jupiter-engine](https://github.com/junit-team/junit5) from 5.10.5 to 5.12.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.10.5...r5.12.0)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-engine
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-26 18:49:11 +02:00
dependabot[bot]andgithub-actions[bot] 5b5ff852f1 Bump org.junit.vintage:junit-vintage-engine from 5.10.5 to 5.12.0
Bumps [org.junit.vintage:junit-vintage-engine](https://github.com/junit-team/junit5) from 5.10.5 to 5.12.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.10.5...r5.12.0)

---
updated-dependencies:
- dependency-name: org.junit.vintage:junit-vintage-engine
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-26 18:15:11 +02:00
dependabot[bot]andgithub-actions[bot] 7cbc799298 Bump org.junit.jupiter:junit-jupiter-api from 5.10.5 to 5.12.0
Bumps [org.junit.jupiter:junit-jupiter-api](https://github.com/junit-team/junit5) from 5.10.5 to 5.12.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.10.5...r5.12.0)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-26 18:14:48 +02:00