5aaa84744f
Improve support for recording macros with code completion
...
Fixes wrong recorded inputs when code completion introduces an import.
Fixes wrong recorded inputs when completing a static member with a partial type name. Example: `WiE.A` -> `WindowEvent.ACTION_EVENT_MASK`
2025-10-08 05:20:08 +02:00
Alex Plate
bdc29c3eb4
Add support for count(), index(), min(), max(), and range() vimscript functions
...
Implements five new vimscript list functions:
- count(): counts occurrences of a value in a list/dict
- index(): finds first index of a value in a list
- min()/max(): finds minimum/maximum value in a list/dict
- range(): generates a list of numbers with optional stride
Includes error handling for edge cases like zero stride and invalid ranges.
2025-10-03 20:59:29 +03:00
Alex Plate
d46eb39635
Add support for repeat(), char2nr(), nr2char(), trim(), and reverse() vimscript functions
...
Implement five commonly used vimscript functions:
- repeat(expr, count): Repeats strings or lists multiple times
- char2nr(char): Converts character to Unicode code point
- nr2char(number): Converts code point to character
- trim(text, [mask], [dir]): Trims whitespace or custom characters
- reverse(object): Reverses lists in-place or returns reversed string
All functions include comprehensive test coverage and follow vim's
official behavior including edge cases.
2025-10-03 19:08:57 +03:00
Alex Plate
a6c71d90bb
Fix(VIM-4050): Implement getline vim function
2025-10-03 18:41:34 +03:00
Alex Plate
62de460264
Execute the processor with a proper mode after closing the exEntryPanel
...
Now, the inputProcessor will be called after all closing is finished. This includes the mode that won't be CMD_LINE anymore, but the one that was used before entering CMD_LINE
2025-10-03 15:33:27 +03:00
Alex Plate
2d02327665
Rename method to get the panel
...
Kotlin has some hard incremental compilation issues when keeping the old name. No other reason for the rename
2025-10-03 15:32:53 +03:00
Alex Plate
91b5a705d4
Fix issues with null variables during swing initialization
2025-10-03 15:16:04 +03:00
Alex Plate
b7c3bc2875
Migrate ExOutputPanel
from Java to Kotlin and update related references
2025-10-03 13:30:20 +03:00
Alex Plate
70922f5fc5
Rename .java to .kt
2025-10-03 13:30:19 +03:00
Alex Plate
13e4d0ce2b
Migrate ExTextField
from Java to Kotlin and update related references
2025-10-03 13:30:19 +03:00
Alex Plate
3990b6475e
Rename .java to .kt
2025-10-03 13:30:19 +03:00
Alex Plate
63c65c8b93
Migrate ExEntryPanel
from Java to Kotlin and update related references
2025-10-03 13:30:19 +03:00
Alex Plate
ba2ffa6955
Rename .java to .kt
2025-10-03 13:30:19 +03:00
Alex Plate
411b6eaf48
Refactor ExDocument
: Migrate from Java to Kotlin
2025-10-03 13:30:18 +03:00
Alex Plate
b5ecb05382
Rename .java to .kt
2025-10-03 13:30:18 +03:00
IdeaVim Bot
a5e4b8515d
Add magidc, magidc to contributors list
2025-10-03 09:01:54 +00:00
Alex Plate
330f24bf74
Update JUnit to version 6 and improve null safety in test utilities
2025-10-02 18:04:30 +03:00
Alex Plate
36dfce695a
Fix the compatibility with the latest idea EAP
2025-10-02 17:55:55 +03:00
Matt Ellis
6defddd24c
Extract variable expression assignment
2025-10-02 17:26:38 +03:00
Matt Ellis
a916b4de9c
Rename Variable to VariableExpression
2025-10-02 17:26:38 +03:00
Matt Ellis
8a0bdfd18f
Improve sublist expression compatibility
2025-10-02 17:26:38 +03:00
Matt Ellis
3eb0ac9207
Remove tests for indexed expressions
2025-10-02 17:26:38 +03:00
Matt Ellis
d71b99b8d5
Update SublistExpressionTest.kt
2025-10-02 17:26:38 +03:00
Matt Ellis
db8736dcf4
Extract sublist expression assignment
2025-10-02 17:26:38 +03:00
Matt Ellis
4c3cefc1e6
Add typename for reporting purposes
2025-10-02 17:26:38 +03:00
Matt Ellis
b11fc4895b
Support assigning to negative index
2025-10-02 17:26:38 +03:00
Matt Ellis
b7ce946af3
Extract sublist expression assignment
...
Also allows whitespace inside indexed expression
2025-10-02 17:26:38 +03:00
Matt Ellis
5a45f6d945
Improve evaluating indexed expressions
...
Support negative indexes, float indexes, and indexing numbers
2025-10-02 17:26:38 +03:00
Matt Ellis
6622f15ea3
Allow dictionary to be indexed by Float
2025-10-02 17:26:38 +03:00
Matt Ellis
fd1fe51633
Extract indexed expression assignment
2025-10-02 17:26:38 +03:00
Matt Ellis
91459edf6c
Rename OneElementSublistExpression
2025-10-02 17:26:38 +03:00
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
063317b0c9
Introduce LValueExpression, update OptionExpression
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
Matt Ellis
68f0e162e2
Update out of date error message
2025-10-02 17:26:38 +03:00