Commit Graph
100 Commits
Author SHA1 Message Date
filippandAlex Pláte cb40426976 Fix(FL-25338): Vim plugin stopped working in 1.31.107 2024-03-29 14:52:52 +02:00
filippandAlex Pláte 3f65d1d99a Revert "Revert changes to SearchGroup"
This reverts commit 00ccddf8cf.
2024-03-29 14:52:52 +02:00
filipp 00ccddf8cf Revert changes to SearchGroup
Wrong branch. The changes should be merged to master only after review in the Fleet branch
2024-03-03 22:16:19 +02:00
filipp 00cbf188fb Replace findUnmatchedBlock method with a new implementation 2024-03-03 22:05:28 +02:00
filipp 988ea74461 Fix(VIM-3294): %-movement mismatches braces 2024-03-03 22:05:28 +02:00
filipp 0914cda7e5 Better matching for a sequence of single-line comments 2024-03-03 22:05:28 +02:00
filipp 5959e9aaa1 Fix(VIM-1399): Uncommented brackets are matched to commented ones in VIM mode 2024-03-03 22:05:28 +02:00
filipp 434df565ae Migrate % command to work with newer method in SearchGroup.kt 2024-03-03 22:05:28 +02:00
filipp c8f36504d8 Fix tests for % 2024-03-03 22:05:28 +02:00
filipp 06e1af371e Add SearchGroup.kt
In the future, it should become a container for all the search methods that we have in IdeaVim
At the moment we have a bunch of SearchGroups and SearchHelpers, and it may be confusing.
We also want to avoid using unnecessary OOP.
2024-03-03 22:05:28 +02:00
filipp d744987ac8 Add VimPsiService
We want to avoid unnecessary OOP and use interfaces only for cases where we will have different implementations for different IDEs
This service will help us in our future refactorings of SearchGroup and SearchHelper
2024-03-03 22:03:58 +02:00
filipp b4eef17aaa Add StringUtil.kt class
Methods in this file will be helpful in future search refactorings
2024-03-03 22:03:58 +02:00
filipp 5c50e8607c Fix search 2024-03-01 08:50:18 +02:00
filipp 3c94091d30 Merge branch 'refs/heads/master' into fleet 2024-02-23 17:24:08 +02:00
filipp b737362aba Update CaretVisualAttributesListener to use new Editor API 2024-02-23 17:21:18 +02:00
filipp 7d679e68dc Merge branch 'refs/heads/master' into fleet
# Conflicts:
#	vim-engine/src/main/kotlin/com/maddyhome/idea/vim/api/VimEditorGroup.kt
#	vim-engine/src/main/kotlin/com/maddyhome/idea/vim/impl/state/VimStateMachineImpl.kt
2024-02-23 17:08:01 +02:00
filipp 4aac113522 Remove duplicate method 2024-02-23 15:09:45 +02:00
filipp 795abd77a7 Add documentation 2024-02-23 15:09:45 +02:00
filipp d3704d602f Cleanup after moving logic to other classes 2024-02-23 15:09:45 +02:00
filipp ea62f227bf Remove piece of code for handling bad commands
Bad commands are handled in consumers
2024-02-23 15:09:45 +02:00
filipp 23fdadc32e Fix test
Sometimes it's not a plugin error and may indicate that key is propagated for later handling by IDE
But what we know for sure - that for both cases we should reset command builder
2024-02-23 15:09:45 +02:00
filipp e9bf06686f Add synchronize blocks to minimize risk of concurrent key processing and changing of the KeyHandlerState 2024-02-23 15:09:45 +02:00
filipp 7842b155c1 Move some logic to ModeInputConsumer 2024-02-23 15:09:45 +02:00
filipp 74a8277e10 Move some logic to SelectRegisterConsumer 2024-02-23 15:09:45 +02:00
filipp ddb1b80463 Move some logic to CommandConsumer 2024-02-23 15:09:45 +02:00
filipp eea3336934 Move some logic to CommandConsumer 2024-02-23 15:09:45 +02:00
filipp f801145712 Update MappingInfo to match newer signature 2024-02-23 15:09:45 +02:00
filipp e033b08535 Move some logic to DigraphConsumer 2024-02-23 15:09:45 +02:00
filipp 1d9514a205 Move some logic to RegisterConsumer 2024-02-23 15:09:45 +02:00
filipp 6741120f19 Move some logic to CharArgumentConsumer 2024-02-23 15:09:45 +02:00
filipp c501457322 Move some logic to EditorResetConsumer 2024-02-23 15:09:45 +02:00
filipp 46425a24c3 Move some logic to DeleteCommandConsumer 2024-02-23 15:09:45 +02:00
filipp 9826f0a7f0 Move some logic to CommandCountConsumer 2024-02-23 15:09:45 +02:00
filipp 43175061e0 Fix broken digraphSequence
It shouldn't be retested on partial reset
2024-02-23 15:09:45 +02:00
filipp 0ab32cac34 Make MappingProcessor a KeyConsumer 2024-02-23 15:09:45 +02:00
filipp e3ec9c614b Add KeyConsumer
It will help us to have a more modular KeyHandler in future (chain of different consumers)
2024-02-23 15:09:45 +02:00
filipp f454d60234 Add MutableBoolean to be able to pass and modify shouldRecord in methods 2024-02-23 15:09:45 +02:00
filipp 19fa00837c Use KeyProcessResultBuilder
It will help us to build the KeyProcessResult that we need for asynchronous key processing
2024-02-23 15:09:45 +02:00
filipp 275c5d28e1 Add KeyProcessResultBuilder 2024-02-23 15:09:45 +02:00
filipp 15ae069f6f Make keyHandlerState argument not null
Applying default values may lead to unexpected results, especially if we sometimes want to use the global state (IJ), and at other times, its clone for asynchronous processing (Fleet).
2024-02-23 15:09:45 +02:00
filipp 7966a6dc91 Create KeyHandlerState
We do not need multiple commandBuilder, digraphSequence or mappingState and this class will be a singleton containing them
2024-02-23 15:09:45 +02:00
filipp 5fc2f04224 Remove mappingMode from MappingState
It unnecessarily binds mappingState to mode and thus to editor. And we want to simplify things and have a single MappingState instead of multiple of them
2024-02-23 15:09:45 +02:00
filipp 6edfd8ed22 Remove deprecated showmode status bar text update that does not work with the new UI and will be replaced with widget 2024-02-23 15:09:45 +02:00
filipp 363db05db7 Macro recording state is no longer per editor
It will not only simplify VimStateMachine, but also help us to support multi-editor macros in future
2024-02-23 15:09:45 +02:00
filipp 3738012dd6 Listeners refactoring
1. Listeners now disposed after turning plugin off
2. Change widget listeners to be recreated on plugin toggle
3. Add CaretVisualAttributesListener
2024-02-23 15:09:45 +02:00
filipp 355cfe035d Remove Editor from VimStateMachine
Rationale:
1. A much more experienced developer, whom I highly respect, suggested to empty VimStateMachineImpl constructor in his TODO comment.
2. I aim for VimStateMachine to be a data class rather than being a container for both data and complex logic.
3. From an architectural perspective, it is more correct. Editors do have state (or they may possess a single global state if the corresponding option is set), but a state does not own an editor.
2024-02-23 15:09:44 +02:00
filipp 7769985439 Merge remote-tracking branch 'origin/master' 2024-01-28 13:37:58 +02:00
filipp 0137de5ca2 Add Term widget theme 2024-01-26 15:52:07 +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 32cae8ca11 Remove more deprecated things 2024-01-26 13:05:48 +02:00
filipp 0cb65279d9 Remove deprecated mark-related methods 2024-01-26 13:02:23 +02:00
filipp 412da06554 Remove deprecated ToggleOption.kt 2024-01-26 12:47:06 +02:00
filipp 247f8a2778 Remove deprecated OptionsManager.kt 2024-01-26 12:45:46 +02:00
filipp 017c9a6a70 Remove deprecated OptionService.kt 2024-01-26 12:43:06 +02:00
filipp eccb2430b5 Remove deprecated MarkGroup.java 2024-01-26 12:39:30 +02:00
filipp 5c64ebf1cc Remove deprecated VimScriptGlobalEnvironment.java 2024-01-26 12:38:28 +02:00
filipp 1d7796805c Fix(VIM-3183): Execute .ideavimrc on pooled thread 2024-01-26 12:27:03 +02:00
filipp 280e1ec16d Fix updating widget for cases when statusbar is not initialized 2024-01-17 11:15:54 +02:00
filipp 4dc7982baa (EA-480768) Better exception message 2022-06-27 16:19:45 +06:00
filipp 38292e97af Fix context for function argument evaluation 2022-06-24 03:13:07 +06:00
filipp 46ea752164 Add tolower(), toupper(), join() 2022-06-24 02:58:41 +06:00
filipp e365d0b07c Unsubscribe document listener in UndoRedoHelper 2022-06-20 03:26:40 +06:00
filipp 69c273c4a5 Track more actions 2022-06-19 01:07:18 +06:00
filipp f7950e7adb Fix(VIM-2683) Pasting from system clipboard multiple lines freezes the main thread 2022-06-18 07:31:44 +06:00
filipp 7c1ae9812e Update formatting 2022-06-18 06:26:11 +06:00
filipp 5c794ac40e Fix(VIM-749) Support for :let command 2022-06-18 06:21:26 +06:00
filipp 9dbe3c3363 Fix(VIM-308) Undo requires one more step if the cursor is not at the position where it was after undo 2022-06-16 18:50:42 +06:00
filipp 8a98f46235 Move mapDepth to MappingState 2022-06-15 16:22:31 +06:00
filipp 9ed8db4d4a Add oldundo option 2022-06-15 16:06:47 +06:00
filipp f1e427e2ff Fix command history 2022-06-14 22:10:04 +06:00
filipp a112cfe35f Add count to undo/redo 2022-06-14 18:47:16 +06:00
filipp 412b60d6b4 Fix selection after undo 2022-06-14 18:36:14 +06:00
filipp f52eb5e124 Update formatting 2022-06-10 00:07:27 +06:00
filipp 5da9c5e1cd Move variableService logic to base class 2022-06-09 23:54:43 +06:00
filipp 53fdd891fb Move optionService logic to base class 2022-06-09 02:17:40 +06:00
filipp 94820d7a83 Update formatting 2022-06-08 20:04:50 +06:00
filipp 51c50cb902 Update formatting 2022-06-07 04:00:06 +06:00
filipp 6355d7765e Add documentation to OptionService.kt and fix some exception messages 2022-06-07 03:59:23 +06:00
filipp c083631590 Undo changing ideaVersion 2022-06-07 01:13:07 +06:00
filipp f62575c870 Fix bugs with appending/prepending/removing value from string option 2022-06-07 01:09:19 +06:00
filipp 01e367cadf Delete deprecated OptionsManager.kt 2022-06-07 01:08:10 +06:00
filipp 1744ec74c7 Add some info to the Map command 2022-06-05 00:12:09 +06:00
filipp 905f8003da Fix repeating the @@ command 2022-06-04 01:02:01 +06:00
filipp 3b3a036806 Remove StringHelper.kt & CommonStringHelper.kt 2022-06-03 22:22:49 +06:00
filipp 11c80b2ea9 Fix cast :action mappings to <Action> 2022-05-30 16:22:40 +06:00
filipp eb536766db Fix exception during parsing of empty stings 2022-05-30 15:34:17 +06:00
filipp f3b4933ef2 Fix number options 2022-05-25 19:33:40 +06:00
filipp 2ff429cc76 Update changelog 2022-05-23 22:54:51 +06:00
filipp 47d4aee986 Support return without expression 2022-05-23 22:47:47 +06:00
filipp 938325b93e Update formatting 2022-05-23 21:02:39 +06:00
filipp 12d0a2ffb7 Update gradle & gradle wrapper 2022-05-23 21:00:52 +06:00
filipp 4ff7e9aefa Move some logic to base classes 2022-05-23 21:00:32 +06:00
filipp f52792e7f0 Move Regexp from engine 2022-05-23 00:10:57 +06:00
filipp cbc6662ef7 Update formatting 2022-05-08 21:10:40 +06:00
filipp 26ffc2ad32 Move some classes to vim-engine 2022-05-08 21:09:52 +06:00
filipp df32e573b0 Move some classes to vim-engine 2022-05-08 15:49:53 +06:00
filipp 19647d96b2 Move some classes to vim-engine 2022-05-08 12:23:14 +06:00
filipp 83199d5475 Move some classes to vim-engine 2022-05-07 22:45:52 +06:00
filipp 3ef86186eb Fix parsing strings with \r in the end 2022-04-25 00:30:56 +06:00