1
0
mirror of https://github.com/chylex/IntelliJ-IdeaVim.git synced 2026-05-26 07:52:14 +02:00
Commit Graph

2151 Commits

Author SHA1 Message Date
Mia Vucinic
20fe881597 move scopes to packages 2025-07-21 21:05:43 +02:00
Mia Vucinic
617eee6237 hide instances of editor, context and VimPluginApi from the user 2025-07-21 21:05:43 +02:00
Mia Vucinic
86b9238e5f have functions in VimPluginApi take editor and context as parameters instead of scopes 2025-07-21 21:05:43 +02:00
Mia Vucinic
4583b65a3e remove VimInitPluginScope 2025-07-21 21:05:43 +02:00
Mia Vucinic
a283ee02ab rename VimPluginScope to VimScope 2025-07-21 21:05:43 +02:00
Mia Vucinic
8ea9b29e5e first api draft 2025-07-21 21:05:43 +02:00
Matt Ellis
7d44c87873 Move ex prompt character out of API
The prompt character is now implemented as a custom view, only in the UI, and not inserted directly into the text. This simplifies management of the text (and removes/fixes an exception due to manually handling prompt offset), and also allows highlighting of the prompt character.
2025-07-21 18:43:28 +03:00
Matt Ellis
261b910845 Add tests for rendering control characters 2025-07-21 18:43:28 +03:00
Matt Ellis
2a603a681c Simplify implementation of VimInputInterceptor 2025-07-21 18:43:28 +03:00
Matt Ellis
a208ad7598 Remove unnecessary ex cmdline without shortcuts
We don't need a secondary UI element hierarchy without shortcuts because the shortcuts are no longer handled by the UI, but by the key handler. This secondary instance was used by modal input, and this is also managed by the key handler, consuming key strokes first if a modal input prompt is active
2025-07-21 18:43:28 +03:00
Matt Ellis
dde287073e Only create modal input panel when needed 2025-07-21 18:43:28 +03:00
Matt Ellis
0e07f0c78e Show special keys in a different colour
Mimics Vim's `SpecialKey` highlight. Currently uses IntelliJ's "Whitespaces" colour, which seems like the best fit.
2025-07-21 18:43:28 +03:00
Matt Ellis
c0f412547f Maintain narrow caret width for non-printable chars 2025-07-21 18:43:28 +03:00
Matt Ellis
ddf1612d11 Fix scrolling issues editing long command lines
Instead of replacing the whole string, which will reset scroll position, delete or insert the required text/offsets, and let the text field manage scroll position
2025-07-21 18:43:28 +03:00
Matt Ellis
bf32c5d5b5 Render control characters in ex cmdline 2025-07-21 18:43:28 +03:00
Matt Ellis
6e6cd722d4 Support insertion of control chars in command line
Fixes VIM-3907, fixes VIM-239
2025-07-21 18:43:28 +03:00
Matt Ellis
356b4ed8c4 Remove unnecessary mouse listener 2025-07-21 18:43:28 +03:00
Matt Ellis
84a3d0457d Simplify and document keymap handling
All key handling is done with the Vim pipeline, so make sure we don't have any Swing key bindings registered. This is quite confusing, so document what's going on
2025-07-21 18:43:28 +03:00
Matt Ellis
d4f4f7661c Remove unnecessary action registration
We don't have any custom actions, so there's nothing to register
2025-07-21 18:43:28 +03:00
Matt Ellis
654b95147b Simplify command line keystroke dispatching
Pass the keystroke to the key handler directly rather than relying on the superclass to call a default action handler that would do the dispatching
2025-07-21 18:43:28 +03:00
Matt Ellis
a2fb8acd47 Remove obsolete ExShortcutKeyAction
All CMD_LINE actions are registered the same as other Vim commands, which means all shortcuts are already registered with the IDE's action system. The existing VimShortcutKeyAction class will dispatch shortcuts to the key handler, where they will be handled as real CMD_LINE actions.
2025-07-21 18:43:28 +03:00
Matt Ellis
b284deb1b7 Extract some state and accessors out of text field
Encapsulate text field a little better
2025-07-21 18:43:28 +03:00
Matt Ellis
56e6ecca89 Update history command and add tests 2025-07-21 18:43:28 +03:00
Matt Ellis
055a3bc910 Remove deprecated and unused history related code 2025-07-21 18:43:28 +03:00
Matt Ellis
e2b50809ac Fix warning of renamed parameter 2025-07-21 18:43:28 +03:00
Matt Ellis
40ff54c47f Remove non-Vim key bindings from ex command line
Shift+Insert and Alt+V for paste. These are non-standard, not documented and can be added with `cmap` if required
2025-07-21 18:43:28 +03:00
Matt Ellis
1638bc304d Improve input method highlighting in ex field 2025-07-21 18:43:28 +03:00
Alex Plate
1482ac0335 Fix(VIM-3970): Get rid of VimStandalonePluginUpdateChecker 2025-07-18 16:03:59 +03:00
zuberol
07990847c6 Merge pull request #1223 from JetBrains/feat/VIM-3791-nerdtree-gg-G-jumps
Feat(VIM-3791): support for "G" and "gg" motions inside the NERDtree
2025-07-17 11:44:07 +02:00
Xinhe Wang
af9023af4b Rename insertBeforeCursor and insertAfterCursor helpers
The terminology used in IntelliJ is "caret".
2025-07-07 10:55:30 +03:00
Alex Plate
246425b1fb Mark IdeaVim as a plugin that supports vim configuration
In this way, we'll be able to actively promote IdeaVim as a suggested plugin in the IDE.

GO-17806
2025-06-27 19:43:08 +03:00
Jakub
4eadfc1fba feat: support for "G" and "gg" motions inside the NERDtree 2025-06-27 13:51:44 +02:00
Alex Plate
75cd79312c Which-Key plugin don't use VimShortcutKeyAction anymore, so we can hide it
The change was here: 2a1191a260
2025-06-06 17:02:35 +03:00
761f6f5fb9 Implement pumvisible() function 2025-06-06 15:21:26 +03:00
Alex Plate
77a106f9c6 Throw ProcessCanceledException instead of silently ignoring it in VimTypedActionHandler
This is a requirement from the platform
2025-05-30 19:41:41 +03:00
Alex Plate
b58c1a42d2 Remove unused mappingCompleted parameter from handleKey methods
This updates method signatures and removes the redundant parameter throughout the codebase. Adds a deprecated overload for backward compatibility.
2025-05-30 14:16:40 +03:00
Alex Plate
8c612afed6 VIM-3929: Re-enable IdeaVim in diff editors 2025-05-27 13:07:43 +03:00
Alex Plate
2c057e937a Fix(VIM-3929): IdeaVim is disabled in non-file based editors of IDE
This change should fix issues in Rider evaluate window and other places.

However, we may face small issues as IdeaVim will be disabled in more places than it used to be. However, this approach looks safer as before that we were disabling some random keys
2025-05-23 19:34:17 +03:00
Alex Plate
c43eb1212e Bring back CommandState to fix the compatibility with the external plugins 2025-05-23 16:53:01 +03:00
Alex Plate
4c11399b43 Bring the compatibility with the latest EAP version
Removed a single test on JSON. There are always problems with the json plugin in IJ. In 2025.2 EAP it was unbundled.
2025-05-23 16:48:37 +03:00
Alex Plate
18f3ba6fe1 Rethrow ProcessCancelledException 2025-05-23 16:22:04 +03:00
Alex Plate
d3f248d2f9 Refactor reset to avoid service initialization during the dispose 2025-05-09 19:04:10 +02:00
Alex Plate
f623c1eef9 Fix(VIM-3784): Integrate a notification that will warn new GoLand users that they use IdeaVim 2025-05-09 18:39:17 +02:00
Alex Plate
f03734e235 Fix(VIM-3786): Disable IdeaVim in the AI assistant 2025-05-09 16:31:44 +02:00
Alex Plate
85acdc2e24 Fix(VIM-3881): Execute undo/redo directly for the remote dev scenarios 2025-05-09 16:20:27 +02:00
Alex Plate
ab635972cc Remove a lot of deprecated methods in IdeaVim 2025-05-09 12:58:47 +02:00
Matt Ellis
fd5af31247 Report cannot track intention action
If an alt+enter intention is invoked from Search Everywhere, IdeaVim's Track Action ID shows "Cannot detect action ID" instead of explaining that there is no action ID.

Relates to VIM-2541
2025-05-09 12:11:11 +02:00
Matt Ellis
df74b75570 Stop switching fragment editors to Insert mode
Fixes VIM-1217
2025-05-09 12:10:10 +02:00
Alex Plate
35ddb21fe0 Fix the deprecated method use 2025-05-09 11:09:11 +02:00
Alex Plate
ccdd708907 Get rid of the old way of action execution 2025-05-08 18:22:40 +02:00