Commit Graph
181 Commits
Author SHA1 Message Date
chylex 0f7116b136 Add action to run last macro in all opened files 2024-08-25 06:11:12 +02:00
chylex 00c799595f Fix(VIM-3178): Workaround to support "Jump to Source" action mapping 2024-08-25 06:10:58 +02:00
chylex bd6f2d4b2f Set custom plugin version 2024-08-25 06:10:31 +02:00
Filipp VakhitovandAlex Pláte 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 EllisandAlex Pláte e07a16863e Show possible IDs based on the action's shortcuts
Fixes VIM-3499
2024-07-12 15:09:02 +03:00
Filipp Vakhitovandlippfi 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 VakhitovandAlex Pláte 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 EllisandAlex Pláte 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 EllisandAlex Pláte 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 EllisandAlex Pláte 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 EllisandAlex Pláte 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 EllisandAlex Pláte 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 EllisandAlex Pláte 3a67524e8a Show status bar message when search wraps
Fixes VIM-1043
2024-05-28 13:53:13 +03:00
Matt EllisandAlex Pláte f554b21cd9 Support count for search
Fixes VIM-2836
2024-05-28 13:53:13 +03:00
Alex Plate 1a7e90c7d7 Bump the minimal version of IJ to 241
There are a lot of incompatibilities with IdeaVim on 241 if it's built on 233

Also, this time the special branch for the IJ version won't be created. Previously on bumping the version of IJ, we've created the branch to keep the reference to the moment when it happened. However, IJ version bumps are easy to trace anyway by git.
2024-05-24 15:37:05 +03:00
Filipp Vakhitov 53ea90379f Moved some search related logic to commands to simplify KeyHandler and ProcessGroup 2024-05-23 00:15:46 +03:00
Matt EllisandAlex Pláte 755000c376 Reset Vim options when IDE setting changes
Options are not reset if they've been explicitly set by the user (e.g. `:set list` or _View | Active Editor | Show Whitespaces_). They are reset if they were explicitly set in `~/.ideavimrc`.

Also bumps the IDE build number to 233.11799.241 in order to use EditorSettingsExternalizable.PropNames
2024-05-10 15:27:24 +03:00
Matt EllisandAlex Pláte c69e080b05 Add 'fileencoding' option
No tests, as I don't know how to test interaction with saving to disk
2024-05-10 15:27:24 +03:00
Matt EllisandAlex Pláte 50b42036d1 Add 'bomb' option
No tests, as I don't know how to test interaction with saving to disk
2024-05-10 15:27:24 +03:00
Matt EllisandAlex Pláte 340c40ceff Add 'fileformat' option
No tests, as I don't know how to test interaction with saving to disk
2024-05-10 15:27:24 +03:00
Matt EllisandAlex Pláte 6c61254c50 Add 'colorcolumn' option to show visual guides
IntelliJ ties the hard wrap right margin guide with the other visual guides, and it's not possible to show one without the other. In Vim, you can show the hard wrap margin by adding "+0" to 'colorcolumn', so in IdeaVim, we automatically add this.
2024-05-10 15:27:24 +03:00
Matt EllisandAlex Pláte c6efea8c34 Add 'textwidth' option
Also supports overriding local-to-buffer options with IDE values, ensuring that changes to the option/IDE value are applied to all editors for the buffer.

Fixes VIM-1310
2024-05-10 15:27:24 +03:00
Matt EllisandAlex Pláte 80f43a7c66 Add 'cursorline' option 2024-05-10 15:27:24 +03:00
Matt EllisandAlex Pláte 9f5d3a9a28 Add 'list' option to show whitespace
Fixes VIM-267
2024-05-10 15:27:24 +03:00
Matt EllisandAlex Pláte 8800a4f70b Add 'breakindent' option
Fixes VIM-2748
2024-05-10 15:27:24 +03:00
Matt EllisandAlex Pláte 990254dcac Sort ideavim.dic to make it easier to modify 2024-05-10 15:27:24 +03:00
Alex Plate 58a8b96c3c Revert "Stop IdeaVim actions flowing into JB Client"
This reverts commit bd192561ae.

This commit reverts the fix for VIM-3283 because it causes VIM-3346 and VIM-3347
2024-03-20 13:08:04 +02:00
Filipp Vakhitov 9a324ab448 Reset KeyHandlerState when switching Editors
Now we have a single state for all the editors, so we should not mix their states
2024-02-29 20:27:46 +02:00
Alex Plate 90f2d2ff29 Small update of the minimal version of IJ 2024-02-27 14:43:23 +02:00
Filipp Vakhitov 21c9dc8785 Add statistic collector for mode widget 2024-02-24 00:15:01 +02:00
Matt EllisandAlex Pláte bd192561ae Stop IdeaVim actions flowing into JB Client
IdeaVim actions are local only - they control local behaviour and should not be visible in the Client

Fixes VIM-3283
2024-02-23 15:54:20 +02:00
Matt EllisandAlex Pláte ba89babd10 Move listener to app level
Fixes VIM-2167
2024-02-23 15:54:20 +02:00
Alex Plate d3d93b898f Unregister NotificationService project service
It's not registered as a light service and doesn't need to be registered in xml files
2024-02-20 16:46:07 +02:00
Alex Plate 67ef0a75d5 Update capitalization 2024-02-20 16:12:11 +02:00
Alex Plate 328bc5e95a Convert some services to light services 2024-02-20 16:10:07 +02:00
Filipp Vakhitov 2a1c4b3a1c Better widget order 2024-02-06 00:32:25 +02:00
Alex Plate aae0d825e7 Move the ideavim-sneak plugin into IdeaVim
The author of the original plugin announced the deprecation of the plugin.
However, we've got an approval to move the sources into IdeaVim and continue the development.

Original repo: https://github.com/Mishkun/ideavim-sneak
Approval: https://twitter.com/ideavim/status/1754512214344478939
2024-02-05 19:28:36 +02:00
filipp f8f046f193 Fix plugin.xml 2024-01-26 14:00:07 +02:00
filipp 6c9ad4ded2 Remove deprecated xml-related code 2024-01-26 13:45:46 +02:00
filipp eccb2430b5 Remove deprecated MarkGroup.java 2024-01-26 12:39:30 +02:00
Filipp Vakhitov fb75508258 Support widget themes 2024-01-23 23:59:57 +02:00
Filipp Vakhitov 7ff82010c3 Rename "Foreground:" field to "Text:" in mode widget settings 2024-01-23 16:47:21 +02:00
Filipp Vakhitov a9ededc997 VIM-1377 Normal mode needs to be more obvious
Add color customization to mode widget
2024-01-23 01:27:57 +02:00
Alex Plate 722cffbd48 [RIDER-85968] Do not format inserted code for CLion Nova
CLion Nova gets the  same problem with formatting as Rider has
2024-01-22 10:20:07 +04:00
Alex Plate a787befd72 Add special esc processor for CLion Nova
CLion Nova has a similar architecture like Rider. So, it got the same problem like Rider has with the esc after adding the octopus handler.
2024-01-22 09:51:31 +04:00
filippandAlex Pláte f0d3d8b276 Add colors to showmode widget 2024-01-03 12:15:31 +02:00
Filipp VakhitovandAlex Pláte e02d34f023 Better ShowMode widget & Macro recording widget 2024-01-03 12:15:31 +02:00
Filipp VakhitovandAlex Pláte 0504be84b6 Add base implementation of showmode widget 2024-01-03 12:15:31 +02:00