Commit Graph
1953 Commits
Author SHA1 Message Date
Matt EllisandAlex Plãte 61df4f342d Support Float in concatenation handler
Surprisingly Float is converted to String, and then concatenated. But this is only supported for the binary concatenation operator, not the compound assignment concatenation operator. This lead to improved validation and behaviour closer to Vim.
2025-10-02 17:26:38 +03:00
Matt EllisandAlex Plãte 56d5af6bc9 Allow assigning Float to Register 2025-10-02 17:26:38 +03:00
Matt EllisandAlex Plãte 1dbe3e4aa1 Update RegisterExpression to assign value 2025-10-02 17:26:38 +03:00
Matt EllisandAlex Plãte 7256731572 Rename Register to RegisterExpression 2025-10-02 17:26:38 +03:00
Matt EllisandAlex Plãte dc5b45a52d Update OptionExpression to match Vim behaviour 2025-10-02 17:26:38 +03:00
Matt EllisandAlex Plãte 063317b0c9 Introduce LValueExpression, update OptionExpression 2025-10-02 17:26:38 +03:00
Matt EllisandAlex Plãte 37b6768148 Rename LetCommand.variable to lvalue 2025-10-02 17:26:38 +03:00
Matt EllisandAlex Plãte 7fe01cd885 Add string() Vim function 2025-10-02 17:26:38 +03:00
Matt EllisandAlex Plãte 68f0e162e2 Update out of date error message 2025-10-02 17:26:38 +03:00
Alex Plate 2c6638fe37 Introduce a common getChar implementation in the injector 2025-10-02 17:05:06 +03:00
dependabot[bot]andgithub-actions[bot] c2d7f40512 Bump org.mockito.kotlin:mockito-kotlin from 6.0.0 to 6.1.0
Bumps [org.mockito.kotlin:mockito-kotlin](https://github.com/mockito/mockito-kotlin) from 6.0.0 to 6.1.0.
- [Release notes](https://github.com/mockito/mockito-kotlin/releases)
- [Commits](https://github.com/mockito/mockito-kotlin/compare/v6.0.0...v6.1.0)

---
updated-dependencies:
- dependency-name: org.mockito.kotlin:mockito-kotlin
  dependency-version: 6.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-01 19:18:24 +03:00
dependabot[bot]andgithub-actions[bot] ac4a55d245 Bump org.junit.vintage:junit-vintage-engine from 5.13.4 to 6.0.0
Bumps [org.junit.vintage:junit-vintage-engine](https://github.com/junit-team/junit-framework) from 5.13.4 to 6.0.0.
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r5.13.4...r6.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-01 18:22:54 +03:00
Matt EllisandAlex Plãte 6f259f5207 Extract E474 error message 2025-09-16 16:33:40 +03:00
Matt EllisandAlex Plãte a9e503d13f Extract error messages from code 2025-09-16 16:33:40 +03:00
Matt EllisandAlex Plãte 5297193649 Assert full error message, not partial
There's no good reason to only check a partial match. Make sure the entire string is correct.
2025-09-16 16:33:40 +03:00
Matt EllisandAlex Plãte 4c84241d2a Remove unnecessary error text messages
Let the IDE do this from the code
2025-09-16 16:33:40 +03:00
Matt EllisandAlex Plãte 612dfe321c Fix typo 2025-09-16 16:33:40 +03:00
Matt EllisandAlex Plãte c0f9f0bcbc Rename cryptic error messages to error codes 2025-09-16 16:33:40 +03:00
Matt EllisandAlex Plãte e7769e33d7 Remove or rename unnecessary messages 2025-09-16 16:33:40 +03:00
Matt EllisandAlex Plãte c725447c00 Refactor messages for ActionListCommand 2025-09-16 16:33:40 +03:00
Matt EllisandAlex Plãte 920ac0546e Replace custom errors with error codes 2025-09-16 16:33:40 +03:00
Matt EllisandAlex Plãte c5e3c9ccf1 Rename messages to be more consistent 2025-09-16 16:33:40 +03:00
Matt EllisandAlex Plãte f8d5d049bc Simplify code to remove duplicate error message 2025-09-16 16:33:40 +03:00
Matt EllisandAlex Plãte 5c45c62c5b Rename some error message identifiers 2025-09-16 16:33:40 +03:00
Matt EllisandAlex Plãte f1d0206c66 Refactor code to remove unnecessary messages
The code doesn't require nullable arguments, which removes null check error messages. Also removed some "not implemented" messages from resources. There's no need for them to be in resources, hopefully we'll implement them soon.
2025-09-16 16:33:40 +03:00
Matt EllisandAlex Plãte fd6fe37c8f Remove unnecessary Msg class
Using string identifiers means the IntelliJ resource tooling works better
2025-09-16 16:33:40 +03:00
Matt EllisandAlex Plãte 76087fea93 Split host and engine bundles
This allows IntelliJ's property annotations to help in code
2025-09-16 16:33:40 +03:00
Matt EllisandAlex Plãte ec125c9c7e Restore API for external plugin compatibility 2025-09-12 12:56:58 +03:00
Matt EllisandAlex Plãte d4df794d3c Show message if no mapping found 2025-09-09 14:06:38 +03:00
Matt EllisandAlex Plãte 4c48b4cd42 Update comments and other PR feedback 2025-09-08 09:58:34 +03:00
Matt EllisandAlex Plãte aa46713d3d Move deprecated functions to bottom of class 2025-09-08 09:58:34 +03:00
Matt EllisandAlex Plãte aef0515183 Replace asDouble with a new toVimFloat function 2025-09-08 09:58:34 +03:00
Matt EllisandAlex Plãte b48f80ee7d Deprecate VimDataType.asString
Prefer `toVimString` to `asString`. It makes it more explicit that the caller requires a Vim String type, and must follow Vim's conversion rules, rather than simple requiring a string. It also prevents confusion with other string functions such as `toString`, `toOutputString`, `toInsertableString`.

The function is deprecated because it's in use by external plugins. There is no change in functionality.
2025-09-08 09:58:34 +03:00
Matt EllisandAlex Plãte fdda1f0eb6 Refactor VimInt.parseNumber 2025-09-08 09:58:34 +03:00
Matt EllisandAlex Plãte 69fac0eff0 Deprecate VimDataType.asBoolean
The `asBoolean` method does not make it clear that only a Vim Number can be treated as a boolean and incorrectly allowed a Float to be converted.

If a caller needs a boolean value, it should be explicit that it must get a Number by calling `toVimNumber` and then using the new `booleanValue` accessor. This correctly allows conversion from a String, and other Vim datatypes will correctly raise an error.

The implementation of `VimString.toVimNumber` has been updated to match Vim behaviour, and the behaviour of the previously called `VimString.asDouble` by allowing trailing characters while converting a string to a number.

The `asBoolean` function is deprecated because it is used by external plugins.
2025-09-08 09:58:34 +03:00
Matt EllisandAlex Plãte 9dd60cdb3b Introduce VimDataType.toOutputString
It's confusing to know the rules for converting between data types. This change introduces a semantically named method for getting a string representation that can be used in output and error messages.
2025-09-08 09:58:34 +03:00
Alex Plate f5c1b11e4f [API] Rename Read to EditorAccessor 2025-09-05 16:51:06 +03:00
Xinhe WangandAlex Plãte b304905b35 Simplify KeyStrokeTrie.getData by delegating to getTrieNode 2025-09-05 13:14:34 +03:00
Xinhe WangandAlex Plãte 3d19696f3b Fix casting error in KeyStrokeTrie.getEntries
Return an empty sequence if the prefix node is not found in `KeyStrokeTrie`.
Passing a non-existent prefix previously would result in a casting error.
2025-09-05 13:14:34 +03:00
Matt EllisandAlex Plãte 572c24ff31 Insert text from incsearch end offset 2025-09-05 12:37:45 +03:00
Matt EllisandAlex Plãte c4a43eef92 Support insert filename literally 2025-09-05 12:37:45 +03:00
Matt EllisandAlex Plãte c22992c16c Extract find filename at cursor to VimSearchHelper 2025-09-05 12:37:45 +03:00
Matt EllisandAlex Plãte 01a612ad60 Add insert filename under caret action 2025-09-05 12:37:45 +03:00
Matt EllisandAlex Plãte 606e5c6a9f Add 'isfname' option, not yet applied
Relates to VIM-4018
2025-09-05 12:37:45 +03:00
Matt EllisandAlex Plãte 93ef18b32c Remove unnecessary JvmField annotations 2025-09-05 12:37:45 +03:00
Matt EllisandAlex Plãte fa4c62ebde Add insert big word at cursor literally action
Relates to VIM-2511
2025-09-05 12:37:45 +03:00
Matt EllisandAlex Plãte c5f6b2e336 Add insert big word at cursor command line action
Relates to VIM-2511
2025-09-05 12:37:45 +03:00
Matt EllisandAlex Plãte 1e27220eaa Support insert word literally
Inserting a word and inserting it literally is the same operation. No need for another action

Fixes VIM-2511
2025-09-05 12:37:45 +03:00
Matt EllisandAlex Plãte b5484345f8 Add insert word under caret action for command line
Fixes VIM-2511
2025-09-05 12:37:45 +03:00
Matt EllisandAlex Plãte 5d68ba26c2 Add insert current line literally action 2025-09-05 12:37:45 +03:00