1
0
mirror of https://github.com/chylex/IntelliJ-IdeaVim.git synced 2025-12-13 20:28:02 +01:00
Commit Graph

1701 Commits

Author SHA1 Message Date
Mia Vucinic
02a8a84728 rename editor to vimEditor 2025-07-21 21:06:38 +02:00
Mia Vucinic
6a896664ed introduce editor scope 2025-07-21 21:06:38 +02:00
Mia Vucinic
4d01f286f5 introduce caret scope 2025-07-21 21:06:38 +02:00
Mia Vucinic
f1cb9247d1 add mapping scope 2025-07-21 21:06:38 +02:00
Mia Vucinic
e946e74840 merge two mappings into one 2025-07-21 21:06:38 +02:00
Mia Vucinic
4db3e91d6a huge refactoring
- In the `api` module:
  - remove dependency on `vim-engine` module due to circular dependencies
  - move implementations of scopes to the `vim-engine`
  - add VimPluginDsl annotation to interfaces
  - make VimScope abstract class
  - remove ScopeBuilders file and move scope builders to the VimScope abstract class
 - In the `vim-engine` module:
  - add dependency on `api` module
  - add implementation of scopes
  - in VimInjector add new field - pluginService (reason for that is because functions from VimExtensionFacade are not available in the VimEngine)
2025-07-21 21:06:30 +02:00
Mia Vucinic
cf95ea1fc9 add a proper implementation for getVariableInt 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
b67c3d7bab Add extra logging details
Randomly hit this condition, but don't know how
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
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
0e9c3d9d87 Replace constants with enum 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
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
Xinhe Wang
353603b546 Fix(VIM-3266): Set FileSaveCloseAction to OTHER_SELF_SYNCHRONIZED 2025-07-07 10:55:53 +03:00
Xinhe Wang
2f7f0dcacb Fix(VIM-3044): correct the behavior of I in (linewise) Visual mode
For visual selections spanning multiple lines, keep caret position
if it's on the first line. Otherwise move the caret to the start of
the first selected line.
2025-07-07 10:55:30 +03:00
Xinhe Wang
af9023af4b Rename insertBeforeCursor and insertAfterCursor helpers
The terminology used in IntelliJ is "caret".
2025-07-07 10:55:30 +03:00
Xinhe Wang
c393c902b2 Fix(VIM-2375): do not save file with ZQ
ZQ is defined to `Quit without checking for changes (same as ":q!").`
2025-07-04 14:26:56 +03:00
Xinhe Wang
c355cb7ed7 Make VimChangeGroup::changeCaseMotion not accept non-Motion argument
Error is logged if `ChangeCaseMotion` actions receive non-`Motion` args
2025-07-03 17:25:38 +03:00
Xinhe Wang
0803a1c195 Fix(VIM-2413): correct the range of line-wise case change commands
The start of the range is the leftmost non-whitespace character
OR the current position, whichever is closer to the left.
2025-07-03 17:25:38 +03:00
Xinhe Wang
5208412b46 Refine Argument.Motion::isLineWiseMotion and VimMotionGroupBase::getMotionRange
This does not change any actual behavior.
2025-07-03 17:25:38 +03:00
Xinhe Wang
2377408028 Fix(VIM-2142): support gU and gu in VISUAL mode
Note that this implementation assumes that the 'gU' / 'gu' command in
visual mode is equivalent to 'U' / 'u'. While 'v_gU' and 'v_gu' are not
explicitly documented in Vim help, we treat these commands as identical
based on observed behavior, without examining Vim's source code.
2025-07-02 18:56:29 +03:00
Thomas Canava
30c972ee1e fix: Vim macro not working with arrows 2025-06-06 15:34:44 +03:00
Matt Ellis
1e3738314a Add support for := to print line number
Fixes VIM-3921
2025-06-06 15:15:13 +03:00
Alex Plate
7c4cfe44ae Remove unused MutableBoolean data class from KeyHandler 2025-05-30 14:20:25 +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
b44308c9ef Remove skipping of command execution if it happens not on the EDT
This requirement was a fix for VIM-318 introduced in ac654d70fa.
However, now we always run IdeaVim on EDT. Also, this check prevents the migration of IdeaVim to the background thread: VIM-3935
2025-05-27 18:30:16 +03: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
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
Vladimir Parfinenko
c74163e917 Fix case settings in replacement string, VIM-3510
^VIM-3510 fixed
2025-05-09 12:08:01 +02:00
Vladimir Parfinenko
d38b2885ba Fix missing backreferences in replacement string, VIM-3895
^VIM-3895 fixed
2025-05-09 12:08:01 +02:00
Vladimir Parfinenko
61666d1cfd Always print float numbers using period as a decimal separator, VIM-3894
^VIM-3894 fixed
2025-05-09 12:02:56 +02:00
Alex Plate
12fd5bc79a Remove deprecated functions 2025-05-08 17:20:58 +02:00
Alex Plate
235368c449 Remove old comments regarding vim-engine extraction 2025-05-08 17:20:00 +02:00
Alex Plate
9e3058dace Code cleanup: remove some deprecations from the source code 2025-05-08 17:04:25 +02:00
M. V
3c2e2bfb68 VIM-3771 Add a smile command with python ascii art 2025-05-07 18:54:12 +02:00
M. V
3f75b6db6d VIM-3771 Add a smile command with java ascii art 2025-05-07 18:54:12 +02:00
M. V
5fd318bf88 VIM-3771 Add a smile command with kotlin and default ascii art 2025-05-07 18:54:12 +02:00
M. V
6d34c70a9d VIM-3771 Rename VirtualFile.kt to VimVirtualFile.kt and add a new property extension 2025-05-07 18:54:12 +02:00
Alex Plate
1891216182 Fix(VIM-3878): Support ROT13 command g? 2025-04-16 19:44:38 +03:00
Alex Plate
916afd31b2 Fix(VIM-3870): Add missing write actions 2025-04-16 18:54:22 +03:00
Matt Ellis
a5efa5f9f2 Rename SAVE_VISUAL to SAVE_SELECTION
IdeaVim will still leave Visual mode, but the IDE's selection remains.
2025-04-10 19:32:29 +03:00
Matt Ellis
e86503798a Remove special case handling for Plug mapping
While it might not make sense to replay an incorrect `<Plug>` or `<Action>` mapping as characters where they are likely to cause unexpected behaviour as Normal commands, this is standard Vim behaviour (at least for `<Plug>`).

Note that `<Plug>` (and `<Action>`) is a special key code that cannot be typed. In Insert mode, Vim expands it to the text "<Plug>".
2025-04-10 19:32:29 +03:00
Matt Ellis
0b6ac4a9f4 Rename variable and add comments 2025-04-10 19:32:29 +03:00
Matt Ellis
2a6f7cc907 Remove unused mappingComplete parameter
Also makes all KeyConsumers internal
2025-04-10 19:32:29 +03:00