Commit Graph
100 Commits
Author SHA1 Message Date
Filipp Vakhitov ab7359ffd3 Fix options test for Windows
Thanks @citizenmatt for this patch
2024-05-29 18:48:05 +03:00
Filipp Vakhitov 7abb1fd630 Finalizing merge 2024-05-28 23:35:31 +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
Filipp Vakhitov 5379528e3e Minor post-review PR improvements 2024-05-28 21:52:43 +03:00
Filipp Vakhitov 12201359bc Fix unwanted triggering of IDE actions instead of Vim ones
https://github.com/JetBrains/ideavim/pull/893#pullrequestreview-2082768468
2024-05-28 21:39:14 +03:00
Filipp Vakhitov 3843a193cb Deprecate classes related to Swing TextActions 2024-05-26 23:56:27 +03:00
Filipp Vakhitov a81d54eb90 Remove VimCommandLineHelper 2024-05-24 17:18:24 +03:00
Filipp Vakhitov 23519bbdae Refactoring to use interfaces from vim-engine 2024-05-24 16:51:38 +03:00
Filipp Vakhitov 8e2fd44f55 Remove unnecessary methods from ProcessGroup 2024-05-24 14:25:51 +03:00
Filipp Vakhitov 1c84917b29 Move LeaveCommandLineAction to its own class 2024-05-24 12:58:04 +03:00
Filipp Vakhitov c5522ed19d Move ExEntryAction to vim-engine 2024-05-24 12:56:52 +03:00
Filipp Vakhitov 91e54c8b0d Replace c_CTRL-R swing TextAction implementation with proper Vim engine implementation 2024-05-23 17:31:18 +03:00
Filipp Vakhitov 15ccebfe11 Cleanup 2024-05-23 15:27:18 +03:00
Filipp Vakhitov 5c849c9105 Fix ExEntryAction 2024-05-23 02:24:34 +03:00
Filipp Vakhitov 9e99506223 Move some logic to engine 2024-05-23 01:32:48 +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
Filipp Vakhitov 2619d7ebb4 Moved some classes to the same file in vim-engine
They will share some logic in future commits
2024-05-22 22:14:54 +03:00
Filipp Vakhitov 8c8a7aceca Moved some classes to the same file in vim-engine
They will share some logic in future commits
2024-05-22 22:12:34 +03:00
Filipp Vakhitov 726b885b60 More obvious processing of ex-commands.
1. Now we have two parallel commandBuilders: for the editor and for the command prompt. It's done for sequence of keys like `d/foo<C-R>"<CR>` where we have two different commands that are built at the same time.
2. We simplified the CommandConsumer and made the logic more straightforward. `/`, `?` and `:` enter the command mode, while pressing final `<CR>` fires the command execution.
2024-05-22 22:04:32 +03:00
Filipp Vakhitov a6994a09c3 Add support for commands that can be executed either once or for each caret depending on some circumstances
In a future commit, I'm going to make ProcessExEntryAction responsible for processing both search and ex commands. Search commands are motions that are executed for each caret, while ex-commands are executed once. The per-caret code is held internally by the ex commands themselves.

The current solution is definitely not the right one, and the whole ex command subsystem needs to be reviewed and refactored:

1. Some commands can be motions, which is currently not supported.
2. We need to figure out a gentle way of handling multiple carets.
2024-05-22 15:44:12 +03:00
Filipp VakhitovandAlex Pláte 423ed390a2 Fix(FL-25087): p in vim mode
Pasting was broken with immutable carets because the old caret was not updated during execution
2024-03-29 14:52:52 +02:00
Filipp VakhitovandAlex Pláte 7652b16ca6 Move more MotionGroup methods to its base class 2024-03-29 14:52:52 +02:00
Filipp VakhitovandAlex Pláte 618a010c15 Move some MotionGroup methods to its base class 2024-03-29 14:52:52 +02:00
Filipp VakhitovandAlex Pláte d44a34ed9b Remove unnecessary abstract method 2024-03-29 14:52:52 +02:00
Filipp VakhitovandAlex Pláte c84fc996db Move some methods to vim-engine
The more methods we have in the engine, the fewer number of methods we will need to implement in the Fleet
2024-03-29 14:52:52 +02:00
Filipp VakhitovandAlex Pláte 43f232543b Replace findBlockRange with newer implementation
The newer implementation is a part of the vim-engine library and uses new methods from the SearchGroup.kt, but it is not fully refactored yet
2024-03-29 14:52:52 +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
Filipp Vakhitov a94a8b8539 Fix tests 2024-02-24 01:03:18 +02:00
Filipp Vakhitov 261230b23a Remove experimental showmodewidget option 2024-02-24 00:36:36 +02:00
Filipp Vakhitov b90317e00e More visible text color for mode widget
Visibility may be unexpected for custom themes with non-obvious colors
2024-02-24 00:27:48 +02:00
Filipp Vakhitov 21c9dc8785 Add statistic collector for mode widget 2024-02-24 00:15:01 +02:00
Filipp Vakhitovandfilipp 1a4333fa1b Move implementations to upper level
It will simplify support of immutable editors in Fleet
2024-02-23 15:09:45 +02:00
Filipp Vakhitovandfilipp 8eaa6df318 Throw error instead of warning on state conflict
It may indicate some serious issues, and we would like to know if anything goes wrong
2024-02-23 15:09:45 +02:00
Filipp Vakhitovandfilipp 7523db186f Empty status bar message after each test 2024-02-23 15:09:45 +02:00
Filipp Vakhitovandfilipp 38bc914504 Avoid using annotation-processors in vim-engine 2024-02-23 15:09:45 +02:00
Filipp Vakhitovandfilipp c8113eea83 Commit state after receiving unknown key 2024-02-23 15:09:45 +02:00
Filipp Vakhitovandfilipp 924b7418e8 Fix DigraphSequence cloning 2024-02-23 15:09:45 +02:00
Filipp Vakhitovandfilipp a7dfef61e9 Make LazyVimCommand open 2024-02-23 15:09:45 +02:00
Filipp Vakhitovandfilipp db35c979b4 Move some editor methods to the base class 2024-02-23 15:09:45 +02:00
Filipp Vakhitovandfilipp 2de933c723 Make processKey public 2024-02-23 15:09:45 +02:00
Filipp Vakhitovandfilipp 00f5541dc6 Add KeyProcessResult interface 2024-02-23 15:09:45 +02:00
Filipp Vakhitovandfilipp 02540eb303 Pass KeyHandlerState as a method argument 2024-02-23 15:09:45 +02:00
Filipp Vakhitovandfilipp 282e581bdb Make state cloneable 2024-02-23 15:09:45 +02:00
Filipp Vakhitovandfilipp 31e7c49608 Add equals & hashCode 2024-02-23 15:09:45 +02:00
Filipp Vakhitov 2a1c4b3a1c Better widget order 2024-02-06 00:32:25 +02:00
Filipp Vakhitovandlippfi 63995e8c61 Support e flag for search 2024-02-05 16:29:49 +02:00
Filipp Vakhitovandlippfi 7062d9b8f8 Enable new regex engine by default 2024-02-05 16:29:49 +02:00
Filipp Vakhitovandlippfi ede62f5c75 Fix compilation 2024-02-05 16:29:49 +02:00
Filipp Vakhitovandlippfi 6386770ff3 Move more tests to src 2024-02-05 16:29:49 +02:00
Filipp Vakhitovandlippfi b4e831a81f Fix VisualAreaMatcher & TextRange 2024-02-05 16:29:49 +02:00
Filipp Vakhitovandlippfi 9b283360ce Minor improvements 2024-02-05 16:29:49 +02:00
Filipp Vakhitovandlippfi fabbd4d156 Better SelectionInfo implementation 2024-02-05 16:29:49 +02:00
filippandlippfi 9bea5bf5f7 Remove deprecated code 2024-02-05 16:29:49 +02:00
filippandlippfi 9fbc990493 Fix visual matching 2024-02-05 16:29:49 +02:00
filippandlippfi b05fdaaa73 Fix tests 2024-02-05 16:29:49 +02:00
filippandlippfi 52d5d4d64c Fix Keyword token 2024-02-05 16:29:49 +02:00
filippandlippfi 6ec712466c Fix StartOfWordMatcher & EndOfWordMatcher 2024-02-05 16:29:49 +02:00
filippandlippfi 6616b8dc07 Simplify MarkMatchers 2024-02-05 16:29:49 +02:00
filippandlippfi 807457c718 Hide method and add Deprecated annotation 2024-02-05 16:29:49 +02:00
Filipp Vakhitov c3defdcda4 Add sources and JavaDoc to vim-engine jar 2024-02-01 11:07:28 +02:00
Filipp Vakhitov 11761b66b2 Revert "Fix(VIM-3183): Execute .ideavimrc on pooled thread"
This reverts commit 1d7796805c.
2024-01-31 20:10:32 +02:00
Filipp Vakhitov f83f107bd1 Revert "Support triggering option listeners outside EDT"
This reverts commit 5a6f54c96c.
2024-01-31 20:10:18 +02:00
Filipp Vakhitov f1b90857ff Revert "Fix code in execute requiring EDT or write actions"
This reverts commit e7236beedd.
2024-01-31 20:10:15 +02:00
Filipp Vakhitov 5aea4cdd65 Revert "Avoiding slow operations on EDT"
This reverts commit 00fb5bc6cf.
2024-01-31 20:09:55 +02:00
Filipp Vakhitov 1822a59c70 Revert "Fix(VIM-3273): Config file stopped working"
This reverts commit 04230fdd9c.
2024-01-31 20:09:31 +02:00
Filipp Vakhitov 37c6934802 Revert "Update changelog. Action id - 7724318708"
This reverts commit 434511658b.
2024-01-31 20:09:27 +02:00
Filipp Vakhitov 90c7f747a4 Revert "Fix(VIM-3278) Relative number is broken in 2.8.0"
This reverts commit a1646a7a88.
2024-01-31 20:09:23 +02:00
Filipp Vakhitov b7efa3dcd6 Revert "Add EDT where it is needed"
This reverts commit 3e9706e6ce.
2024-01-31 20:09:19 +02:00
Filipp Vakhitov da80f537ac Revert "Avoid concurrent VimScript execution"
This reverts commit 0e03151505.
2024-01-31 20:09:15 +02:00
Filipp Vakhitov 0119912318 Revert "Add readActions & EDT"
This reverts commit 45a2eadc58.
2024-01-31 20:09:08 +02:00
Filipp Vakhitov 45a2eadc58 Add readActions & EDT 2024-01-31 14:43:23 +02:00
Filipp Vakhitov 0e03151505 Avoid concurrent VimScript execution 2024-01-31 14:42:58 +02:00
Filipp Vakhitov 3e9706e6ce Add EDT where it is needed 2024-01-31 14:09:06 +02:00
Filipp Vakhitov a1646a7a88 Fix(VIM-3278) Relative number is broken in 2.8.0
Proper options initialization order
2024-01-31 13:34:33 +02:00
Filipp Vakhitov 04230fdd9c Fix(VIM-3273): Config file stopped working 2024-01-31 09:12:23 +02:00
Filipp Vakhitov 2e16ad8a2a Revert "Downgrade ktor dependencies to check if "Publish vim-engine" fails because of them"
This reverts commit 7fb59b0fa9.
2024-01-30 20:13:36 +02:00
Filipp Vakhitov 7fb59b0fa9 Downgrade ktor dependencies to check if "Publish vim-engine" fails because of them 2024-01-30 20:05:45 +02:00
Filipp Vakhitov 24e044bcda Remove deprecated ComplicatedKeysAction.kt 2024-01-30 18:56:38 +02:00
Filipp Vakhitov 00fb5bc6cf Avoiding slow operations on EDT 2024-01-29 13:30:41 +02:00
Filipp Vakhitov 5e01f726d3 Revert "Remove deprecated VimScriptGlobalEnvironment.java"
This reverts commit 5c64ebf1cc.
2024-01-29 12:58:46 +02:00
Filipp Vakhitov e87290aeea Simplify storing global variables 2024-01-29 12:58:31 +02:00
Filipp Vakhitov e7236beedd Fix code in execute requiring EDT or write actions 2024-01-29 10:00:55 +02:00
Filipp Vakhitov 5a6f54c96c Support triggering option listeners outside EDT 2024-01-28 14:00:36 +02:00
Filipp Vakhitov fb75508258 Support widget themes 2024-01-23 23:59:57 +02:00
Filipp Vakhitov 0e69168382 Make the Apply button disabled by default 2024-01-23 18:54:47 +02:00
Filipp Vakhitov 9970ab8643 Allow to open only one widget settings window at a time 2024-01-23 18:53:41 +02:00
Filipp Vakhitov 7ff82010c3 Rename "Foreground:" field to "Text:" in mode widget settings 2024-01-23 16:47:21 +02:00
Filipp Vakhitov 1da8cd53d2 VIM-1377 Normal mode needs to be more obvious
Save mode widget colors state in XML
2024-01-23 01:27:57 +02:00
Filipp Vakhitov 9337a89eac VIM-1377 Normal mode needs to be more obvious
Redraw widget after applying new colors
2024-01-23 01:27:57 +02:00
Filipp Vakhitov 510564dd91 VIM-1377 Normal mode needs to be more obvious
Do not show widget with no files opened
2024-01-23 01:27:57 +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
Filipp Vakhitov 52cf10cb2e Better widget 2024-01-13 23:01:01 +02:00
Filipp Vakhitov 2d74f121aa Set min width for widget 2024-01-04 10:45:59 +02:00
Filipp VakhitovandAlex Pláte fc46acb2e4 Move to concurrent list 2024-01-03 12:15:31 +02:00
Filipp VakhitovandAlex Pláte 7fde66eb40 Better color 2024-01-03 12:15:31 +02:00
Filipp VakhitovandAlex Pláte b3cea3997d Safer changes to VimPlugin
(avoid changes to old code that worked)
2024-01-03 12:15:31 +02:00
Filipp VakhitovandAlex Pláte 2f20193086 Post-review improvements 2024-01-03 12:15:31 +02:00
filippandAlex Pláte 601e207f04 Remove comment 2024-01-03 12:15:31 +02: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