Filipp Vakhitov
4925d9aada
Remove ideaglobalmode option
...
Mode is global now
2024-07-08 13:09:08 +03:00
Filipp Vakhitov
f3e6df32d0
Fix(VIM-3462): IdeaVim not responsive occasionally
...
This bug was caused by two reasons:
1. KeyHandler state is not longer per-editor and we can't reset it on editor creation
2. We do not need to do such things on editor creation. What actually matters is focusing the editor
2024-07-08 13:09:08 +03:00
Filipp Vakhitov
5aaa8752af
Move to new API from deprecated one
2024-07-08 13:09:08 +03:00
Filipp Vakhitov
a1d214316c
Make VimStateMachine global
...
It is global in Vim
2024-07-08 13:09:08 +03:00
Alex Plate
75a417773f
[VIM-547]: Turn off new undo for the next release as well
2024-07-05 12:14:10 +03:00
Filipp Vakhitov
07b1db4b28
Fix(VIM-3518): line numbers in :g/ not displayed
2024-07-04 01:50:33 +06:00
Filipp Vakhitov
dc775a0f22
Move number
option to vim-engine
2024-07-04 00:11:36 +06:00
Filipp Vakhitov
10228f953e
Fix(VIM-3517): Add support for global find & replace Vim-ism — :g/pattern/s//replacement/g
2024-07-03 22:34:42 +06:00
Matt Ellis
6b4e4bacd7
Fix null reference initialising output panel fonts
...
Fixes VIM-3515
2024-07-03 09:43:48 +03:00
Alex Plate
647510de5d
Optimize imports for the project
2024-06-28 17:30:17 +03:00
Alex Plate
9538714af1
Remove explicit API mode to enhance coding efficiency and maintain Kotlin's conciseness
...
Explicit API mode has been removed due to several reasons impacting developer productivity and the natural coding style in Kotlin.
Firstly, the mode was found to be more irritating than beneficial, as it forced unnecessary verbosity without enhancing thoughtfulness in coding. It often prompted automatic 'public' insertion reactions to red-highlighted code, which did not genuinely encourage more deliberate coding decisions.
Secondly, our aim is to form a robust API primarily through interfaces, which inherently define public scope and duty, rendering explicit API mode somewhat redundant.
Lastly, the additional verbosity caused by explicit API mode expanded code lines affecting code readability.
The compatibility with the existing plugins is verified via the compatibility checker, so no JetBrains plugins will be affected
2024-06-28 17:11:16 +03:00
Alex Plate
ffd832d990
Get rid of RegExp class
2024-06-28 17:01:30 +03:00
filipp
8de2b8976b
Avoid using deprecated RegExp in VimRegexService
2024-06-28 16:58:13 +03:00
filipp
a6aa26b5d9
Remove deprecated methods
2024-06-28 16:58:13 +03:00
filipp
e67c7b23ff
Remove deprecated code from VimStateMachine
2024-06-28 16:58:13 +03:00
filipp
6cee04a4be
Remove old compatibility layers
...
It is necessary to remove deprecated code from VimStateMachine in future commits
2024-06-28 16:58:13 +03:00
Matt Ellis
e748b7b265
Fix soft wrap inconsistency in run console
...
IntelliJ has multiple soft wrap options. One for main editors, another for consoles and a third for previews. This can lead to inconsistencies if initialising a console based on a main editor when both have default values, versus the same scenario when the main editor has an explicit value. Furthermore, the run console's soft-wraps toggle button uses the global value, so can get out of sync if the local value is initialised to an explicit value. This change will only copy the soft wrap value over during initialisation for similar editors (main editor, preview, diff) and not for different editors (console).
Fixes VIM-3450
2024-06-28 16:50:25 +03:00
Matt Ellis
c2401ec013
Protect against recursion when opening editors
...
Fixes VIM-3066
2024-06-28 16:50:25 +03:00
Matt Ellis
8073d7ecd0
Fix copying 'fileencoding' during window opening
...
The option should be "local-noglobal", and reset to default. Copying the value could cause the file to be converted immediately, possibly with a warning dialog
Fixes VIM-3467
2024-06-28 16:50:25 +03:00
Matt Ellis
64f7859ba7
Fix switching to insert for non-file backed diff
...
Fixes VIM-3442
2024-06-28 16:50:25 +03:00
Matt Ellis
f1b94d7026
Fix regression ignoring case in global command
...
Regression in new regex engine
2024-06-28 16:50:25 +03:00
Matt Ellis
79653b6048
Update ex output asserts to remove trailing newline
...
The trailing newline was never necessary. The text field always stripped it, but the test code didn't. The previous commit pulled this behaviour out of the UI code, so the test code behaves the same as the UI.
This commit fixes all of the tests that were broken by that change. No other logic has been changed.
2024-06-28 16:50:25 +03:00
Matt Ellis
b0e6b72281
Fix regression missing newlines in :print output
2024-06-28 16:50:25 +03:00
Matt Ellis
e6220e5e53
Fix regression clearing output instead of closing
2024-06-28 16:50:25 +03:00
Matt Ellis
3c064845b1
Fix ex text field handling of zoom and font size
...
The ex text field and output pane will correctly resize and reposition if visible when the IDE zoom value changes. If the editor's font size is zoomed with the mouse wheel, the panels are hidden, so they do not obscure the font zoom indicator widget
Fixes VIM-3417
2024-06-28 16:50:25 +03:00
Alex Plate
736cb219ca
Remove the use of RegExp
from ExEntryPanel
2024-06-28 16:47:32 +03:00
Alex Plate
fb30e4e387
Adapt the code to the new search helper functions
2024-06-28 16:17:45 +03:00
Alex Plate
74550ffa16
Refactor countWords function
2024-06-28 16:17:45 +03:00
Alex Plate
d0a0672282
Rename .java to .kt
2024-06-28 16:17:45 +03:00
Alex Plate
16e92ddf60
Move SearchHelper classes to kotlin file
2024-06-28 16:17:45 +03:00
Alex Plate
4d8e68d800
Get rid of many unused search functions
2024-06-28 16:17:45 +03:00
Alex Plate
bbebfaf32a
Remove some obsolete and deprecated code
2024-06-28 16:17:44 +03:00
Matt Ellis
750db8e71c
Fix 'incsearch'+'wrapscan' at bottom of file
...
If all results are before the caret, make sure it's still possible to highlight the closest match if 'wrapscan' is enabled
Fixes VIM-3505
2024-06-28 13:55:57 +03:00
Filipp Vakhitov
3313464214
Fix(VIM-3501): Global commands applied to the following lines if matches > 1
2024-06-28 13:55:06 +03:00
Filipp Vakhitov
90a60155e5
Move VimscriptParser to vim-engine
2024-06-28 13:55:06 +03:00
Filipp Vakhitov
b25d06ed9e
Move Vimscript visitors to vim-engine
2024-06-28 13:55:06 +03:00
Filipp Vakhitov
706ae3dd91
Move GlobalCommand to vim-engine
2024-06-28 13:55:06 +03:00
Filipp Vakhitov
9b15ed8181
Add VimRangeMarker
2024-06-28 13:55:06 +03:00
Filipp Vakhitov
f355bef36b
Remove deprecated SearchGroup.java
2024-06-28 13:55:06 +03:00
Filipp Vakhitov
4391e69c48
Move DocumentSearchListener to IjVimSearchGroup
2024-06-28 13:55:06 +03:00
Filipp Vakhitov
0710d80391
Remove SearchGroup from GlobalCommand
2024-06-28 13:55:06 +03:00
filipp
cf41a3a76c
Fix(VIM-3507): Mapping exits early on double backslash
2024-06-28 13:46:06 +03:00
jake.peters
31b2cd872f
Use when expression instead of convoluted nested if else
2024-06-28 12:39:58 +03:00
jake.peters
2b6945cbb2
Add ability to iterate over all states for unassigned handlers
...
This is still a WIP
2024-06-28 12:39:58 +03:00
jake.peters
ae5f43918f
Use BGT instead of EDT
2024-06-28 12:39:58 +03:00
jake.peters
6b6bc2752e
Rename method to be more reflective of its toggle functionality.
2024-06-28 12:39:58 +03:00
jake.peters
4556adae3c
Add ability to change all handlers to use either Vim or IDE shortcuts.
2024-06-28 12:39:58 +03:00
Filipp Vakhitov
1b0886041b
Fix(VIM-3506): in command mode no longer change cursor to "
2024-06-27 15:46:22 +05:00
filipp
948520f90a
Fix(VIM-3485): Stay in the same split when using (Back) or (Forward)
2024-06-21 17:44:44 +03:00
Matt Ellis
0765118ce2
Stop mapping negative 'scrolljump' to IntelliJ setting
2024-06-21 17:22:36 +03:00
Matt Ellis
efd4c7b617
Fix incorrect scrolling due to 'scrolloff' mapping
...
If IntelliJ's vertical scroll offset is set to the value of the 'scrolloff' option, IntelliJ's own implementation kicks in. This implementation includes virtual space at the bottom of the file in its calculation, scrolling to a different offset to IdeaVim's. In some circumstances, IdeaVim no longer scrolls, so the last line would no longer stick to the bottom of the screen after `G`. In other circumstances, the scroll would correctly reset, but there would be a visible flash as the editor scrolls to the wrong offset and then back, especially when using backspace at the bottom of the file.
Fixes VIM-3474
2024-06-21 17:22:36 +03:00
Alex Pláte
eae111bc2c
Merge branch 'master' into create-files-and-directories
2024-06-21 16:52:46 +03:00
kun-codes
6a6c1dc6b4
add NERDTree action to delete files and directories
2024-06-21 16:52:01 +03:00
Alex Pláte
28aa156cb7
Merge branch 'master' into feature/gradle-intellij-plugin-v2
2024-06-21 16:30:25 +03:00
Matt Ellis
a7814e69de
Fix incorrect double registration when opening editors
...
Ensures that the editor listeners are only registered once when the editor is created. IdeaVim uses two different events to track editor creation, to try to understand how the editor is being created (new window, split, preview, etc.) and this can lead to calling the `EditorListeners.add` method twice. This would create a second `Disposable` and cause handlers to leak. This is most visible when creating the first window and then disabling IdeaVim. This window would still handle drag events like IdeaVim, even changing the caret back to block after the drag finishes.
2024-06-21 13:13:15 +03:00
kun-codes
931d4be972
add NERDTree action to create new files and directories
2024-06-20 17:51:15 +05:30
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
c673f5818c
Make jumplist project ID key unique
...
Fixes an issue if multiple projects with the same name are open at the same time
2024-06-14 14:35:48 +01:00
Matt Ellis
ec78a87644
Fix recent places adding to jump list
...
Fixes VIM-3424
2024-06-14 14:29:12 +01:00
Matt Ellis
69d14ddcf5
Implement clearjumps command
2024-06-14 14:29:12 +01:00
Filipp Vakhitov
89e016ef6c
Fix infinite loop stuck because of a confirmation dialog appearing over and over
2024-06-12 10:57:45 +03:00
Filipp Vakhitov
c44ed58142
Make text deletion in change actions a part of insert sequence
2024-06-09 00:33:07 +03:00
Filipp Vakhitov
0091af2a41
Fix(VIM-547): Undo splits Insert mode edits into separate undo chunks
...
Add tests
2024-06-07 23:03:53 +03:00
Filipp Vakhitov
133aff7fd8
Add a return type to getInsertSequence method
2024-06-07 21:29:44 +03:00
Filipp Vakhitov
efde94db7a
Fix recursive forEachCaretInvocation
2024-06-07 18:05:02 +03:00
Filipp Vakhitov
6ec072b34e
End inputSequence on motion in insert mode
2024-06-07 17:12:11 +03:00
Filipp Vakhitov
4027a21514
Support most* cases for starting / ending inputSequence
...
* - Ending inputSequence on motion in insert mode is not supported in this commit
2024-06-07 16:55:22 +03:00
Filipp Vakhitov
3665b1ab00
Improve UndoRedoHelper to split insert input into multiple undo sequences
2024-06-07 16:27:58 +03:00
Filipp Vakhitov
cf6b292f0c
Add methods to work with InsertSequence
2024-06-07 16:24:37 +03:00
Filipp Vakhitov
507e4173d3
Introduce InsertSequence class
2024-06-07 16:09:25 +03:00
Filipp Vakhitov
abc3575d3e
Fix command registration order
...
We should prioritize ij commands over the engine ones
2024-06-07 16:03:27 +03:00
Filipp Vakhitov
2c0ff587e3
Post-review improvements
2024-06-05 11:35:58 +03:00
Filipp Vakhitov
26c87535d6
Fix focus
2024-06-05 11:35:58 +03:00
Filipp Vakhitov
04ee2dd1e7
Post-rebase fixes
2024-06-05 11:35:58 +03:00
Filipp Vakhitov
3106a98aee
Make IjVimSearchGroup a PersistentStateComponent instead of deprecated SearchGroup
2024-06-05 11:35:58 +03:00
Filipp Vakhitov
73769a3472
Move one method to VimProcessGroupBase
2024-06-05 11:35:58 +03:00
Filipp Vakhitov
b2af8f153e
Add VimScriptFunctionServiceBase
2024-06-05 11:35:58 +03:00
Filipp Vakhitov
37fb41fca8
Remove exCommandAnnotation option
2024-06-05 11:35:58 +03:00
Filipp Vakhitov
e2b05ab639
Move Vimscript grammar to engine
2024-06-05 11:35:58 +03:00
Filipp Vakhitov
354fd8fef0
Remove EditorHolderService.kt
2024-06-05 11:35:58 +03:00
Filipp Vakhitov
9b97867be1
Support replace mode in command line
2024-06-05 11:35:58 +03:00
Filipp Vakhitov
06685d1721
Move more logic to VimCommandLine interface
2024-06-05 11:35:58 +03:00
Filipp Vakhitov
ae4b88a06b
Remove ExEntryPanel and move its method to VimCommandLine
2024-06-05 11:35:58 +03:00
Filipp Vakhitov
c83ecc46ed
Rename method
2024-06-05 11:35:58 +03:00
Filipp Vakhitov
c32050a208
Introduce actualText
and visibleText
for command line
2024-06-05 11:35:58 +03:00
Filipp Vakhitov
4a8c7227e6
Remove default value
2024-06-05 11:35:58 +03:00
Filipp Vakhitov
55e61a7094
Remove count for command line
...
It was not used anywhere
2024-06-05 11:35:58 +03:00
Filipp Vakhitov
60977d05b6
Deprecate ExEntryPanel
2024-06-05 11:35:58 +03:00
Filipp Vakhitov
601747f720
Changes to replace ExEntryPanel with interface and move more code to engine
2024-06-05 11:35:58 +03:00
Filipp Vakhitov
0c91bc3207
Changes to replace ExEntryPanel with interface and move more code to engine
2024-06-05 11:35:58 +03:00
Filipp Vakhitov
f5cd2c173f
Changes to replace ExEntryPanel with interface and move more code to engine
2024-06-05 11:35:58 +03:00
Matt Ellis
d00bd8bb25
Fix incsearch highlights with operator count
...
E.g. `2"a3"b4"c5d6/foo` will now highlight the current match correctly
2024-06-03 11:54:48 +03:00
Matt Ellis
a66e44d835
Fix [count]:
initial range text in ex field
...
Fixes regression from changes in ex field handling
2024-06-03 11:54:48 +03:00
Matt Ellis
ce05317634
Maintain Visual when cancelling search entry
2024-06-03 11:54:48 +03:00
Matt Ellis
a31a4a8ca7
Share ex entry set up with filter commands
2024-06-03 11:54:48 +03:00
Matt Ellis
c34d000b91
Reintroduce ProcessGroup.startExEntry
...
We need to share the implementation between starting an Ex command, and starting a filter command, which is just an Ex command with initial text
2024-06-03 11:54:48 +03:00
Matt Ellis
a2bfe950fa
Fix move command moving to current line
...
Removes a workaround that would break moving a range to the current line because it would always move the caret to the start of the range. Now positions the caret to the start of the selection if there is one. This also means we can remove the SAVE_VISUAL flag from JoinLinesCommand
Fixes VIM-2936
2024-06-03 11:54:48 +03:00
Matt Ellis
b44f40acd6
Fix incorrect output for line() in Normal mode
2024-06-03 11:54:48 +03:00
Matt Ellis
5169093bbf
Clear ex output after assert and fix tests
...
This ensures that a failing action doesn't pass due to previous state
2024-06-03 11:54:48 +03:00
Matt Ellis
b15b1cd3f8
Fix range with missing last address
...
Fixes VIM-992
2024-06-03 11:54:48 +03:00
Matt Ellis
f7b6a97435
Support 0 as part of a range address
...
Fixes VIM-1137
2024-06-03 11:54:48 +03:00
Matt Ellis
f64c99c406
Support incsearch highlighting for global command
...
Fixes VIM-2891
2024-06-03 11:54:48 +03:00
Matt Ellis
4798198e41
Minor refactorings
2024-06-03 11:54:48 +03:00
Matt Ellis
a59de4ce05
Add tests and fixes for yank command
...
Handles validation for count and ensures correct behaviour for registers.
2024-06-03 11:54:48 +03:00
Matt Ellis
2dea525665
Add tests and fixes for join command
...
Handles validation for count and positions caret in the correct place. Also handles join with visual multicaret scenarios.
2024-06-03 11:54:48 +03: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
9ca9530061
Add tests and fixes for shift commands
...
Shift left and right now work with counts, validate the counts and move the caret to the correct end position
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
5e67032655
Add tests and fixes for delete lines command
...
Validates register before use and correctly uses register and count
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
Matt Ellis
cac36627aa
Support 0 in copy command to copy to top of file
2024-06-03 11:54:48 +03:00
Matt Ellis
6404e1127e
Remove incorrect VimBehaviourDiffers annotation
2024-06-03 11:54:48 +03:00
Matt Ellis
739ac2ae5e
Simplify getting address from argument
2024-06-03 11:54:48 +03:00
Matt Ellis
77c364a2d0
Move count handling out of range into command
2024-06-03 11:54:48 +03:00
Matt Ellis
103cd9f5ce
Fix off-by-one error in count
...
Count needs to be one-based, lines must be zero-based. So store addresses as one-based until processed
2024-06-03 11:54:48 +03:00
Matt Ellis
99859fe857
Rename test classes
...
Also ensure that test derives from VimTestCase so that injector is correctly initialised
2024-06-03 11:54:48 +03:00
Matt Ellis
0a14150840
Extract TextRange from Ex range class
2024-06-03 11:54:48 +03:00
Matt Ellis
e8ffc0313f
Remove Range overloads that don't require a caret
...
Provide caret when calling from Command
2024-06-03 11:54:48 +03:00
Matt Ellis
076aab1ccf
Rename Ranges, and ExRanges.kt
2024-06-03 11:54:48 +03:00
Matt Ellis
751f51c88f
Rename Range and related classes to Address
...
An address evaluates to a line, and a range is a collection of addresses
2024-06-03 11:54:48 +03:00
Filipp Vakhitov
ab7359ffd3
Fix options test for Windows
...
Thanks @citizenmatt for this patch
2024-05-29 18:48:05 +03:00
Alex Plate
d795d70041
Disable some tests due to VIM-3376
2024-05-29 18:33:31 +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
Alex Plate
4481631547
Disable RedrawListener if the plugin is not enabled
2024-05-28 13:55:47 +03:00
Matt Ellis
7865388086
Fix regression when sub string ends with backslash
...
Fixes VIM-3428
2024-05-28 13:53:13 +03:00
Matt Ellis
26297bc5a9
Fix last line sometimes obscured by scrollbar
...
Fixes VIM-3028
2024-05-28 13:53:13 +03:00
Matt Ellis
9db5cdd8e3
Fix last line sometimes obscured by ex entry prompt
...
When performing a substitute command with confirmation, the height of the editor content pane should be reduced by the height of the ex entry panel. IdeaVim would do this correctly when moving a search result to the bottom of the file, but not when the result was on the last line of the file. Because the wrong height was used, IdeaVim would decide that no scrolling was necessary and the result in the last line would be obscured.
Fixes VIM-1560
2024-05-28 13:53:13 +03:00
Matt Ellis
2b17534a08
Fix infinite loop while highlighting in old regex
...
Fixes VIM-2510
2024-05-28 13:53:13 +03:00
Matt Ellis
4e2db68acf
Update selection when searching in Visual mode
2024-05-28 13:53:13 +03:00
Matt Ellis
ddabf8df5e
Fix regression finding endpos in new regex engine
...
Fixes VIM-3344
2024-05-28 13:53:13 +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
Matt Ellis
d9fa4e4648
Fix end of file atom for old regex engine
...
Fixes VIM-2888
2024-05-28 13:53:13 +03:00
Matt Ellis
e98a284d40
Fix multiline regex substitution
...
Fixes VIM-2141
2024-05-28 13:53:13 +03:00
Matt Ellis
38ef8c1053
Fix removing search highlight that crosses newline
2024-05-28 13:53:13 +03:00
Matt Ellis
d3f560a31c
Add special case to match newline with end of file
2024-05-28 13:53:13 +03:00
Matt Ellis
e2cb3ff284
Stop subst skipping too far with multiline pattern
...
Fixes VIM-698
2024-05-28 13:53:13 +03:00
Matt Ellis
0f5a3953e1
Don't break ex field with exceptions from incsearch
2024-05-28 13:53:13 +03:00
Matt Ellis
633667ed7f
Fix regression with global not saving used patterns
...
This is a messy quick fix, as the search group needs a lot of tidying up right now. Perhaps a better implementation would be to move the implementation of the global command into the search group - processGlobalCommand, like we already have processSearchCommand and processSubstituteCommand
Fixes VIM-3348
2024-05-28 13:53:13 +03:00
Matt Ellis
656e975562
Fix reset of last substitution string on use
...
Fixes VIM-3354
2024-05-28 13:53:13 +03:00
Matt Ellis
f7fbe89de4
Use EnumSet instead of list of enums
2024-05-28 13:53:13 +03:00
Matt Ellis
509829b052
Fix force ignorecase atom in search highlights
...
Fixes VIM-3391
2024-05-28 13:53:13 +03:00
Matt Ellis
efd61e17f2
Reset CMD_LINE mode when losing focus
...
Fixes VIM-3293
2024-05-28 13:53:13 +03:00
Matt Ellis
cf2b021d02
Fix search for last search pattern with new offset
...
Fixes VIM-2356
2024-05-28 13:53:13 +03:00
Matt Ellis
67f10aece5
Fix search motion type when providing offset
...
Search motion type should be linewise if there's a line offset, or inclusive if the `e` flag is provided. Otherwise, it's exclusive.
Fixes VIM-1940
2024-05-28 13:53:13 +03:00
Matt Ellis
9b5c777fcf
Update highlights when editor scheme changes
2024-05-28 13:53:13 +03:00
Matt Ellis
c65e5f8341
Fix highlighting for 'incsearch' and 'nohlsearch'
...
Setting 'incsearch' and 'nohlsearch' should highlight only the current match in the current editor
2024-05-28 13:53:13 +03:00
Matt Ellis
053bb603cd
Fix errors with incsearch and substitute command
...
Fixes VIM-3325
2024-05-28 13:53:13 +03:00
Matt Ellis
93b07bbb90
Update comments and fix warnings
2024-05-28 13:53:13 +03:00
Matt Ellis
764a115601
Show search highlights in all visible editors
...
Fixes VIM-2174
2024-05-28 13:53:13 +03:00
Matt Ellis
1adfe53f29
Fix wrong offset returned for current search result
...
Fixes VIM-2779
2024-05-28 13:53:13 +03:00
Matt Ellis
bfe0f51cb1
Restore current match highlighting for :s command
...
Regression while migrating to the new regex engine removed the highlights shown when confirming each change
2024-05-28 13:53:13 +03:00
Matt Ellis
ffce61906a
Restore search highlights when setting 'hlsearch'
...
Fixes VIM-3257
2024-05-28 13:53:13 +03:00
Filipp Vakhitov
3843a193cb
Deprecate classes related to Swing TextActions
2024-05-26 23:56:27 +03:00
Matt Ellis
f382544101
Fix clearing highlighted yank in modal dialogs
...
Also fixes a memory leak registering a disposable for each yank, allows config variables to be numbers rather than strings and removes highlights when IdeaVim is disabled
Fixes VIM-2236
2024-05-24 18:05:51 +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
Alex Plate
73fd25773a
Add test for VimIndentObject
...
For PR https://github.com/JetBrains/ideavim/pull/884
2024-05-24 16:20:36 +03:00
Egor Nikolaevsky
746d483179
Fix indent size calculation
2024-05-24 16:19:50 +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
8e2fd44f55
Remove unnecessary methods from ProcessGroup
2024-05-24 14:25:51 +03:00
Filipp Vakhitov
c5522ed19d
Move ExEntryAction to vim-engine
2024-05-24 12:56:52 +03:00
Alex Plate
16cd05fc76
Fix incorrect use of visual position instead of buffer position
...
We should calculate the line above based on logical position rather than visual position.
This issue was detected thanks to newly introduced soft wraps and proprty tests
2024-05-24 11:39:45 +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
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
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
Matt Ellis
c46008dddc
Update Vim option even when IdeaVim is disabled
2024-05-10 15:27:24 +03:00
Matt Ellis
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 Ellis
1e4a60bfe6
Fix nullability warning
2024-05-10 15:27:24 +03:00
Matt Ellis
c9ee685956
Codify assumption re global-local external setting
2024-05-10 15:27:24 +03:00
Matt Ellis
c2b1083836
Updated descriptions as per review comments
2024-05-10 15:27:24 +03:00
Matt Ellis
3518528f22
Prevent resetting options when plugin re-enabled
2024-05-10 15:27:24 +03:00
Matt Ellis
9bed8fec79
Map 'scrolloff' and 'sidescrolloff' options
...
Fixes VIM-3110
2024-05-10 15:27:24 +03:00
Matt Ellis
3ffbea7d42
Match Vim's behaviour for :set[local] {option}<
...
String and number/toggle options have different and opposite behaviour for `:set {option}<` and `:setlocal {option}<`. This change matches Vim's behaviour.
2024-05-10 15:27:24 +03:00
Matt Ellis
39b42193cb
Map 'scrolljump' and 'sidescroll' options
...
Fixes VIM-3110
2024-05-10 15:27:24 +03:00
Matt Ellis
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 Ellis
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 Ellis
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 Ellis
6aeffe71de
Map 'number' and 'relativenumber' options
2024-05-10 15:27:24 +03:00
Matt Ellis
04c33d719e
Improve relative line converter for soft wraps
...
It now shows visual lines relative to the caret's visual line, rather than relative to the caret's logical line. This still isn't correct, and we should be showing the relative count of Vim logical lines (buffer lines + fold lines) but this matches movement so is more helpful
2024-05-10 15:27:24 +03:00
Matt Ellis
07f1d1e8e6
Move number/relativenumber options out of engine
...
While they are core Vim options, they are implemented by the host, not by the engine. If another host wants to support these options, they can add them in their implementation layer.
2024-05-10 15:27:24 +03:00
Matt Ellis
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 Ellis
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 Ellis
80f43a7c66
Add 'cursorline' option
2024-05-10 15:27:24 +03:00
Matt Ellis
9f5d3a9a28
Add 'list' option to show whitespace
...
Fixes VIM-267
2024-05-10 15:27:24 +03:00
Matt Ellis
8800a4f70b
Add 'breakindent' option
...
Fixes VIM-2748
2024-05-10 15:27:24 +03:00
Matt Ellis
990254dcac
Sort ideavim.dic to make it easier to modify
2024-05-10 15:27:24 +03:00
Matt Ellis
73a1118e78
Extract base implementation for IDE backed options
2024-05-10 15:27:24 +03:00
Matt Ellis
d3bedf26cf
Treat IDE value as default for 'wrap' option
2024-05-10 15:27:24 +03:00
Matt Ellis
25b29f429a
Track how option value is set
2024-05-10 15:27:24 +03:00
Matt Ellis
363f821962
Introduce 'wrap' option based on IntelliJ setting
...
Fixes VIM-1265
2024-05-10 15:27:24 +03:00
4c3ad3f263
Add NERDTree action to toggle excluded files
2024-05-08 10:02:10 +03:00