Commit Graph
315 Commits
Author SHA1 Message Date
Mia Vucinic f5cf751a0a move files to appropriate packages 2025-07-22 12:31:53 +02:00
Mia Vucinic 9eb7bb48d0 put exception messages in the properties file 2025-07-21 21:06:38 +02:00
Mia Vucinic 260b4d62d6 add implementation for highlighted yank plugin 2025-07-21 21:06:38 +02:00
Mia Vucinic 8ea9b29e5e first api draft 2025-07-21 21:05:43 +02:00
Matt Ellis 56e6ecca89 Update history command and add tests 2025-07-21 18:43:28 +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
chylex 761f6f5fb9 Implement pumvisible() function 2025-06-06 15:21:26 +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 f03734e235 Fix(VIM-3786): Disable IdeaVim in the AI assistant 2025-05-09 16:31:44 +02:00
Alex Plate a9f9ae3727 Fix(VIM-3786): Make a workaround to fix shift-enter in AI chat 2025-04-29 19:36:05 +03:00
Matt Ellis e2cc9c648f Introduce toVimString to match toVimNumber 2025-03-28 19:07:06 +02:00
Matt Ellis 51ea947ccb Move comparison operator data rules to base class 2025-03-28 19:07:06 +02:00
Matt Ellis 5f8d552e8a Extract error message 2025-03-28 19:07:06 +02:00
Matt Ellis 3fa20dd417 Move status bar widgets after dotCover indicator
Rider's dotCover indicator is marked as "last" rather than relative to other dotnet icons. This position pushes out IdeaVim widgets, so make sure we're after "dotCoverIndicator"

See also DCVR-13021
2025-03-10 18:52:46 +00:00
Alex Plate 681cef1d69 Enable the new way of action execution by default 2025-03-04 15:37:54 +02:00
Alex Plate 8483e23ea7 [VIM-3376] Add a new way of executing the action 2025-02-28 19:07:55 +02:00
Alex Plate 692e4434d1 [VIM-3815]: Disable Octopus Handler for Rider and other IDEs with the new typing engine 2025-02-28 17:14:06 +02:00
Alex Plate 89e530276f Get rid of the AppCode-specific code
AppCode was sunset, so there is no need to support it in IdeaVim
2025-02-28 17:14:06 +02:00
Matt Ellis 5740372df9 Add err_teapot function 2025-02-20 19:21:31 +02:00
Matt Ellis 3b96e2eacd Add trigonometric and hyperbolic builtin functions 2025-02-20 19:21:31 +02:00
Matt Ellis ffdd6716f5 Refactor some moved tests 2025-02-20 19:21:31 +02:00
Matt Ellis 4453862ea0 Extract function tests 2025-02-20 19:21:31 +02:00
Matt Ellis 23329cc522 Add bitwise functions 2025-02-20 19:21:31 +02:00
Osvaldo Cordova Aburto 31a6d8174a feat: add mini-ai extension 2025-01-27 23:19:24 +02:00
Alex Plate e358dc9cee Fix(VIM-3640): Enable IdeaVim only in the editor context component
As the GitHub Copilot is placed right in the editor component, the IdeaVim's actions are also collected. Action promoter promotes the IdeaVim's action and, since the data context has the editor, executes a Vim's actions like backspace.
Now we make sure that IdeaVim works only in the actual editor.
Since this change may affect some places where the IdeaVim used to work, but won't work now (this will be a surprise), a registry key is introduced to help the users that face this problem.
2025-01-24 13:34:08 +02:00
Alex Plate 00d9ed93ec Fix(VIM-3543): Disable IdeaVim in the new terminal 2025-01-23 12:22:22 +02:00
Alex Plate 6ab0add430 Update the twitter icon to X 2025-01-14 13:37:39 +02:00
Alex Plate ad584d553c Reformat code 2025-01-10 13:28:48 +03:00
Filipp Vakhitov 66aec26091 Move ColLineFunctionHandler.kt to vim-engine 2024-11-22 17:15:07 +02:00
Filipp Vakhitov 1d59c49b95 Move more logic to vim-engine 2024-11-22 17:15:07 +02:00
Matt Ellis 5fc4462b03 Support map! to map insert and cmdline modes
Also supports `mapclear!` and `unmap!`

Moves parsing of the bang modifier to the parser so we can tell the difference between `map! foo bar` and `map ! foo bar`
2024-11-13 17:57:31 +02:00
Alex Plate 8dfd41a891 Refactoring: Move VimDocumentListener from multicaster to plugin.xml registration
The problem happens in tests: after the refactorings in 242, the `EditorListenerTracker` may be called before the initialization of the IdeaVim. In this case, it'll report the VimDocumentListener as a leaked listener, however, it's incorrect.
Generally, I think that this situation with the listener tracker is a bug.

There should be no changes in IdeaVim behaviour as the multicaster does the same thing: subscribes every editor on this listener. However, the multicaster does this in the "registerEditor" stage. However, I don't think this is a problem.
2024-10-25 14:35:55 +03:00
Kirill Karnaukhov 5198864f34 [ai-completion] LLM-11886: make AI completion invoke on Enter when IdeaVim is turned on 2024-10-21 17:02:36 +03:00
Matt Ellis 10283ce2f8 Add support for custom digraphs 2024-09-05 19:22:04 +03:00
Matt Ellis 3fcc4746d8 Migrate digraph output to engine 2024-09-05 19:22:04 +03:00
Matt Ellis 55fef03a4a Add 'whichwrap' to dictionary 2024-08-30 16:36:24 +03:00
Filipp Vakhitov 5b17d7740e Update generated files after merging PRs 2024-08-25 21:51:14 +03:00
Filipp Vakhitov b005328b4a Exclude generated files from .gitignore
I've also added sorting to be more confident that the generated file will be persistent across different machines
2024-08-23 14:18:03 +03:00
Matt Ellis e07a16863e Show possible IDs based on the action's shortcuts
Fixes VIM-3499
2024-07-12 15:09:02 +03:00
Filipp Vakhitov 5f2baefc6c Introduce new interface for VimOutputPanel to support the output panel in Fleet
Why is the old interface bad?
- it is not obvious. You cannot create a new panel or check if it is already created. Only "getOrCreate" it
- output panel is bound to editor while in Vim it is global
- we have the `isActive` field and the `clear()` method at the same time, because interface implies that you store the same instance of the panel and reactivate it for each output and I don't like it. We also can forget to call `clear()` after reusing panel
- we cannot "build" output before showing to make the panel more efficient. With multiple carets we can only cal `output(oldText + newText)` for each caret, and it is bad. (imagine we have global command with a lot of matches and for each time we will need to call the `output(oldText + newText)`)
- the `output()` method shows panel, activates it and updates it
- there are more things that I do not like, but the points above should be already enough
2024-07-08 13:09:08 +03:00
Filipp Vakhitov f355bef36b Remove deprecated SearchGroup.java 2024-06-28 13:55:06 +03:00
Matt Ellis 5eb0fae08f Remove explicit since-build from plugin.xml
Let the Gradle plugin manage since-build, based on our target compile version. We leave until-build open ended
2024-06-17 11:18:50 +01:00
Matt Ellis 8ecb1f7296 Add tests and fixes for print command
Handles validation of count and correctly moves caret to end of range after execution. Also fix issue where the results of :print are accumulated and not cleared.

Fixes VIM-2570
2024-06-03 11:54:48 +03:00
Matt Ellis 54e27afc3f Simplify getCount functions
Made it explicit to get the count from argument and/or range. Default count is not passed, because it was never used. Added some tests where possible, but hard to test select file and friends
2024-06-03 11:54:48 +03:00
Matt Ellis cb37f6df63 Add tests and fixes for goto line command
Correctly handles some validation, and also allows going to line zero
2024-06-03 11:54:48 +03:00
Matt Ellis ca3a18cf37 Add tests for goto character command
Also start to refactor handling of count
2024-06-03 11:54:48 +03:00
Filipp Vakhitov 9e3ca56afd Merge branch 'refs/heads/master' into fleet
# Conflicts:
#	src/main/java/com/maddyhome/idea/vim/ui/ex/ExEntryPanel.java
#	vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/ex/LeaveCommandLineAction.kt
#	vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/SearchEntryFwdAction.kt
#	vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/SearchEntryRevAction.kt
#	vim-engine/src/main/kotlin/com/maddyhome/idea/vim/key/consumers/CommandConsumer.kt
2024-05-28 22:19:17 +03:00
Matt Ellis 3f28e197ca Clear status bar on scrolling, add/remove lines, etc.
Also implements <C-L> to "redraw" screen and clear status line
2024-05-28 13:53:13 +03:00
Matt Ellis 3a67524e8a Show status bar message when search wraps
Fixes VIM-1043
2024-05-28 13:53:13 +03:00
Matt Ellis f554b21cd9 Support count for search
Fixes VIM-2836
2024-05-28 13:53:13 +03:00