Commit Graph
5765 Commits
Author SHA1 Message Date
Matt Ellis 01d92acd40 Improve validation for concatenation 2025-10-02 17:26:38 +03:00
Matt Ellis 6d18288883 Fix validation for modulo operator 2025-10-02 17:26:38 +03:00
Matt Ellis 7ffca59450 Support double-dot concatenation assignment 2025-10-02 17:26:38 +03:00
Matt Ellis 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 Ellis cb1c0298ff Improve exception handling in tests 2025-10-02 17:26:38 +03:00
Matt Ellis 56d5af6bc9 Allow assigning Float to Register 2025-10-02 17:26:38 +03:00
Matt Ellis 1dbe3e4aa1 Update RegisterExpression to assign value 2025-10-02 17:26:38 +03:00
Matt Ellis 7256731572 Rename Register to RegisterExpression 2025-10-02 17:26:38 +03:00
Matt Ellis dc5b45a52d Update OptionExpression to match Vim behaviour 2025-10-02 17:26:38 +03:00
Matt Ellis 37b6768148 Rename LetCommand.variable to lvalue 2025-10-02 17:26:38 +03:00
Matt Ellis 5ce2887391 Extract and add tests for sublist expressions 2025-10-02 17:26:38 +03:00
Matt Ellis 4ab91150d6 Extract and add tests for indexed expressions 2025-10-02 17:26:38 +03:00
Matt Ellis 9ddd074916 Extract tests for let command with register lvalue 2025-10-02 17:26:38 +03:00
Matt Ellis a321bb28c0 Extract tests for let command with option lvalue 2025-10-02 17:26:38 +03:00
Matt Ellis 8c9df332aa Add tests for let command with variable lvalue 2025-10-02 17:26:38 +03:00
Matt Ellis 356a748181 Add tests for let command operators 2025-10-02 17:26:38 +03:00
Matt Ellis 7fe01cd885 Add string() Vim function 2025-10-02 17:26:38 +03:00
Xinhe Wang f25b9fd9bf Fix uppercase keys in NERDTree 2025-10-02 17:12:23 +03:00
Alex Plate 2c6638fe37 Introduce a common getChar implementation in the injector 2025-10-02 17:05:06 +03:00
Matt Ellis b6ffc7a357 Use injector instead of directly using helper 2025-09-16 16:33:40 +03:00
Matt Ellis 6f259f5207 Extract E474 error message 2025-09-16 16:33:40 +03:00
Matt Ellis a9e503d13f Extract error messages from code 2025-09-16 16:33:40 +03:00
Matt Ellis 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 Ellis c0f9f0bcbc Rename cryptic error messages to error codes 2025-09-16 16:33:40 +03:00
Matt Ellis c725447c00 Refactor messages for ActionListCommand 2025-09-16 16:33:40 +03:00
Matt Ellis 920ac0546e Replace custom errors with error codes 2025-09-16 16:33:40 +03:00
Matt Ellis c5e3c9ccf1 Rename messages to be more consistent 2025-09-16 16:33:40 +03:00
Matt Ellis 5c45c62c5b Rename some error message identifiers 2025-09-16 16:33:40 +03:00
Matt Ellis e00960ebbc Tidy up host message bundle 2025-09-16 16:33:40 +03:00
Matt Ellis 76087fea93 Split host and engine bundles
This allows IntelliJ's property annotations to help in code
2025-09-16 16:33:40 +03:00
Alex Plate 59459e5113 Introduce a hidden vimhints option to hide the new hints functionality 2025-09-10 14:58:46 +03:00
Alex Plate 54653d1d1b Specify ActionUpdateThread for ToggleHintsAction 2025-09-10 14:06:33 +03:00
Xinhe Wang 4e59af278b Avoid generating hints for another unfocused window 2025-09-10 11:36:04 +03:00
Matt Ellis d4df794d3c Show message if no mapping found 2025-09-09 14:06:38 +03:00
Xinhe Wang 04273d005e Skip the tree nodes when generating hints to improve performance 2025-09-09 12:53:26 +03:00
Xinhe Wang 463a9e7ceb Generate hints for visible components whose parent is not visible 2025-09-09 12:53:26 +03:00
Xinhe Wang aab1999782 Do not preserve previous hints if impossible 2025-09-09 12:53:26 +03:00
Xinhe Wang 733470f7b4 Allow repeated characters in hints 2025-09-09 12:53:26 +03:00
Matt Ellis aef0515183 Replace asDouble with a new toVimFloat function 2025-09-08 09:58:34 +03:00
Matt Ellis 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 Ellis fdda1f0eb6 Refactor VimInt.parseNumber 2025-09-08 09:58:34 +03:00
Matt Ellis 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 Ellis 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 8aedadde5e [API] Use the new API for implementation of the ReplaceWithRegister 2025-09-05 17:54:25 +03:00
Alex Plate 763d4518eb Refactor: Replace deprecated fileSize property 2025-09-05 16:53:45 +03:00
Xinhe Wang 0d38ac8d6f Allow focusing components with hints 2025-09-05 16:26:03 +03:00
Xinhe Wang fd1f762bc2 Adjust the hint color to make it clearer 2025-09-05 16:26:03 +03:00
Xinhe Wang cfdc3b7dc3 Display only hints prefixed by the currently entered letters 2025-09-05 16:26:03 +03:00
Xinhe Wang eaaab34434 Bring clicked component highlighting back
The highlight will remain active for a fixed period of time.
2025-09-05 16:26:03 +03:00
Xinhe Wang 80f52d70c8 Encapsulate ShortcutDispatcher for use in NERDTree 2025-09-05 16:26:03 +03:00