1
0
mirror of https://github.com/chylex/IntelliJ-IdeaVim.git synced 2026-03-28 05:52:37 +01:00
Commit Graph

5696 Commits

Author SHA1 Message Date
Matt Ellis
b5484345f8 Add insert word under caret action for command line
Fixes VIM-2511
2025-09-05 12:37:45 +03:00
Matt Ellis
5d68ba26c2 Add insert current line literally action 2025-09-05 12:37:45 +03:00
Matt Ellis
5c8ca893e1 Insert current line by replaying keys 2025-09-05 12:37:45 +03:00
Matt Ellis
6aff6a07af Add insert current line in command line
Fixes VIM-2511
2025-09-05 12:37:45 +03:00
Matt Ellis
c580aaceed Add insert register literally action
Fixes VIM-2511
2025-09-05 12:37:45 +03:00
Matt Ellis
161bb2b28b Insert register by replaying keys 2025-09-05 12:37:45 +03:00
Matt Ellis
4be143f4ff Fix move caret to previous big word to match Vim
The docs says it moves to the previous WORD, but in practice it moves to the previous whitespace character
2025-09-05 12:37:45 +03:00
Matt Ellis
4a86af9071 Fix move caret to next big word to match Vim
The docs says it moves to the next WORD, but in practice it moves to the next whitespace character
2025-09-05 12:37:45 +03:00
Matt Ellis
9a5339d8af Fix delete to use word instead of WORD 2025-09-05 12:37:45 +03:00
Matt Ellis
b70f15584f Remove obsolete comments 2025-09-05 12:37:45 +03:00
Matt Ellis
38928e82c8 Extract insert literal command line tests 2025-09-05 12:37:45 +03:00
Matt Ellis
aa5975485e Extract digraph command line tests 2025-09-05 12:37:45 +03:00
Matt Ellis
b6be329a08 Add tests for saving history when cancelling ex field 2025-09-05 12:37:45 +03:00
Matt Ellis
1a566b70d9 Add cmd history before executing
But save to register after executing. Matches Vim behaviour
2025-09-05 12:37:45 +03:00
Matt Ellis
b4eee5d45e Show indicator for current history entry 2025-09-05 12:37:45 +03:00
Matt Ellis
30dae9f4d9 Rename HistoryDownFilterAction and add tests 2025-09-05 12:37:45 +03:00
Matt Ellis
3ca51d0361 Rename HistoryDownAction and add tests 2025-09-05 12:37:45 +03:00
Matt Ellis
f282131414 Rename HistoryUpFilterAction and add tests 2025-09-05 12:37:45 +03:00
Matt Ellis
f5f14f308b Rename HistoryUpAction and add tests 2025-09-05 12:37:45 +03:00
Matt Ellis
6557169eec Remove unnecessary textExInput function 2025-09-05 12:37:45 +03:00
Matt Ellis
ed402d3b26 Extract ToggleOverstrikeActionTest
Vim calls this "overstrike". We'll update terminology to match.
2025-09-05 12:37:45 +03:00
Matt Ellis
44cb65859b Extract MoveCaretToPreviousBigWordAction 2025-09-05 12:37:45 +03:00
Matt Ellis
84eb131cea Extract MoveCaretToNextBigWordAction 2025-09-05 12:37:45 +03:00
Matt Ellis
9ce2c2ba3a Extract MoveCaretToLineEndActionTest 2025-09-05 12:37:45 +03:00
Matt Ellis
549d4a722f Extract MoveCaretToLineStartActionTest 2025-09-05 12:37:45 +03:00
Matt Ellis
667890cb4d Extract InsertRegisterActionTest 2025-09-05 12:37:45 +03:00
Matt Ellis
1ebaa34bda Extract DeleteToCaretActionTest 2025-09-05 12:37:45 +03:00
Matt Ellis
310d90466b Extract DeletePreviousWordActionTest 2025-09-05 12:37:45 +03:00
Matt Ellis
822052358e Extract DeletePreviousCharActionTest 2025-09-05 12:37:45 +03:00
Matt Ellis
d1eb1aeb4d Extract DeleteNextCharActionTest 2025-09-05 12:37:45 +03:00
Matt Ellis
747ffa1e7f Move CommandCountTest.kt 2025-09-05 12:37:45 +03:00
Alex Plate
e9bc665aaa Revert StatusBarWidgetsManager to be the project-level service 2025-09-05 10:43:25 +03:00
Alex Plate
0fd95c17cf Fix(VIM-4028): Disable new plugin registration because currently it causes an error and this should be properly reviewed 2025-09-05 10:38:30 +03:00
Xinhe Wang
7f107fcc21 Remove unused NerdTree ProjectViewListener from plugin configuration
The ProjectViewListener was already removed in 175bae51
2025-09-02 15:06:01 +01:00
Alex Plate
1c80863e12 Fix an issue that the application level service was called from the project level 2025-09-02 11:27:22 +03:00
Alex Plate
ec11c2ec70 Update status bar menu links with a sign that shows that this is an external link
Because of some encoding issues, I had to embed the string right in the code
2025-09-02 11:25:55 +03:00
Alex Plate
1e98fe2bed Add link to IdeaVim documentation in the status bar menu 2025-09-02 11:22:10 +03:00
Alex Plate
c6adc48e81 [API] Make option() function return a value
This allows users to easily retrieve values from option scope:
val x = option { get<Int>("history") }

- Changed option() signature from Unit to generic T return type
- Updated VimApiImpl implementation to return the lambda result
- Added test demonstrating the new return value capability
2025-08-29 18:11:26 +03:00
Alex Plate
907495df4d [API] Refactor OptionScope from abstract class to interface
- Convert OptionScope from abstract class to interface
- Extract inline functions with reified types as extension functions
- Make getOptionValue() and setOption() public interface methods
- Remove internal modifier layer functions
- Update OptionScopeImpl to implement new interface
- Add documentation recommending extension function usage
- Update test imports to use new extension functions
2025-08-29 18:11:25 +03:00
Alex Plate
2b276d316f [API] Add append(), prepend(), and remove() extension functions for list options
- append(): adds values to end of comma-separated list (like Vim's +=)
- prepend(): adds values to beginning of list (like Vim's ^=)
- remove(): removes values from list (like Vim's -=)
- All functions prevent duplicate values from being added
- Comprehensive test coverage for all scenarios
2025-08-29 18:11:25 +03:00
Alex Plate
4f1982d6bd [API] Add toggle() function to OptionScope for boolean options
Adds a simple toggle() function that flips boolean option values.
Works with both full option names and abbreviations.

Example usage:
  toggle("ignorecase")  // true → false, false → true
  toggle("ic")          // works with abbreviations
2025-08-29 18:11:25 +03:00
Alex Plate
a235648672 [API] Add split() extension function to OptionScope for comma-separated values
Adds a concise String.split() extension function within OptionScope that splits
comma-separated option values into lists. This simplifies working with list-type
options like 'virtualedit', 'whichwrap', etc.

Example usage:
  val values = get<String>("virtualedit")?.split() ?: emptyList()
  // "block,all" → ["block", "all"]
2025-08-29 18:11:25 +03:00
Alex Plate
85d5da4ab6 [API] Add comprehensive tests for OptionScope API
Added extensive test coverage for the OptionScope API including:
- String list options with various formats (single, multiple, empty values)
- Error handling for invalid values, empty names, and type mismatches
- Boundary conditions for integer options
- Boolean/integer type conversions
- Global vs local option scoping
- Option abbreviations
- Edge cases like trailing/leading commas and very long strings
2025-08-29 18:11:24 +03:00
Xinhe Wang
511da14b83 Support disabling extended NERDTree without restarting 2025-08-29 17:53:46 +03:00
Xinhe Wang
636fe0a76f Make extended NERDTree a separate VimExtension 2025-08-29 17:53:46 +03:00
Xinhe Wang
2b5342a935 Add support for ActivateNode in NERDTree Everywhere 2025-08-29 17:53:46 +03:00
Xinhe Wang
758aaf276a Extend NERDTree support to Tree components other than Project 2025-08-29 17:53:46 +03:00
Alex Plate
df82794f4f Fixed a missing | 2025-08-29 14:31:44 +03:00
Alex Plate
2d378327e7 Fix tests after bringing back the old ReplaceWithRegister 2025-08-29 14:00:24 +03:00
Alex Plate
0e37295988 Ignore some test for neovim 2025-08-29 13:55:27 +03:00