Filipp Vakhitov
6386770ff3
Move more tests to src
2024-02-05 16:29:49 +02:00
filipp
9bea5bf5f7
Remove deprecated code
2024-02-05 16:29:49 +02:00
filipp
9fbc990493
Fix visual matching
2024-02-05 16:29:49 +02:00
filipp
b05fdaaa73
Fix tests
2024-02-05 16:29:49 +02:00
filipp
807457c718
Hide method and add Deprecated annotation
2024-02-05 16:29:49 +02:00
Emanuel Gestosa
022b196d6a
adding comments and small refactors
2024-02-05 16:29:49 +02:00
Emanuel Gestosa
bf7d2bd465
marking classes as deprecated
2024-02-05 16:29:49 +02:00
Emanuel Gestosa
fc7c470966
fixing nohlsearch command
2024-02-05 16:29:49 +02:00
Emanuel Gestosa
51492ca121
moving seach methods back to VimSearchGroup base
2024-02-05 16:29:49 +02:00
Emanuel Gestosa
ce1df84330
creating new IjVimSearchGroup class
2024-02-05 16:29:49 +02:00
Emanuel Gestosa
9b43e2a715
working on kotlin implementation of SearchGroup class
2024-02-05 16:29:49 +02:00
Emanuel Gestosa
732cabd6aa
working on processSearchCommand
2024-02-05 16:29:49 +02:00
Emanuel Gestosa
7c14801d5c
deprecating most of SearchHelper
2024-02-05 16:29:49 +02:00
Emanuel Gestosa
66df09c065
use injector for IjVimSearchHelper calls
2024-02-05 16:29:49 +02:00
Emanuel Gestosa
8fd6985316
deprecating SearchHelper find and findAll
2024-02-05 16:29:49 +02:00
Emanuel Gestosa
feac001499
substitute command working with new engine
2024-02-05 16:29:49 +02:00
Emanuel Gestosa
4c47e3a8eb
integrating new regex into global command
2024-02-05 16:29:49 +02:00
Emanuel Gestosa
f4e743acc5
VimRegex uses wrapscan option
2024-02-05 16:29:49 +02:00
Emanuel Gestosa
06d58cbda5
integrating options into the main module
2024-02-05 16:29:49 +02:00
Emanuel Gestosa
ba9afc3f8e
adding usenewregex option to set command tests
...
rebasing
2024-02-05 16:29:49 +02:00
Emanuel Gestosa
39897bd012
allow findAll to have a max index
2024-02-05 16:29:49 +02:00
Emanuel Gestosa
575d563154
show pattern not found error message
2024-02-05 16:29:49 +02:00
Emanuel Gestosa
b49a185efc
using the count parameter in find()
2024-02-05 16:29:49 +02:00
Emanuel Gestosa
6025eaaca9
showing pattern not found error
2024-02-05 16:29:49 +02:00
Emanuel Gestosa
b2441c3cca
throwing and catching VimRegexException
2024-02-05 16:29:49 +02:00
Emanuel Gestosa
58398f40fa
using useNewRegex option
2024-02-05 16:29:49 +02:00
Emanuel Gestosa
43f5d5a8e8
integrating findAll
2024-02-05 16:29:49 +02:00
Emanuel Gestosa
9859974db7
integrating findNext and findPrevious
2024-02-05 16:29:49 +02:00
Emanuel Gestosa
6c24ddd1a0
adding useNewEngine option
2024-02-05 16:29:49 +02:00
Alex Plate
8de0313aca
Preparing the UI tests for the PyCharm
2024-02-02 20:16:47 +02:00
Alex Plate
143c5b17f9
Fix(VIM-3055): Fix the issue with double deleting after dot
2024-02-02 19:30:58 +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
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
Alex Plate
880efb012a
Fix compilation issues for the latest EAP
2024-01-31 17:58:19 +02:00
Alex Plate
b95308ac24
Migrate CopilotKeymapCorrector to the new API
2024-01-31 17:42:08 +02:00
Alex Plate
56410ac1f2
Make some classes public because they're used in EasyMotion plugin tests
2024-01-31 15:25:33 +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
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
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
7769985439
Merge remote-tracking branch 'origin/master'
2024-01-28 13:37:58 +02:00
Alex Plate
cc1b9e0a50
Expand all works a way worse
2024-01-27 07:43:28 +02:00
Alex Plate
2c58740cbb
Expand the full tree in UI tests
2024-01-26 21:49:49 +02:00
Alex Plate
808533b110
Fix(VIM-3260): Processing the offsets at the file end
2024-01-26 17:49:44 +02:00
Alex Plate
26d4074a61
[VIM-2974] Adopt other parts of key handling to the octopus handler switcher
2024-01-26 16:40:34 +02:00
filipp
0137de5ca2
Add Term widget theme
2024-01-26 15:52:07 +02:00
Alex Plate
355c560ddc
Add UI test with disabled octopus handler
2024-01-26 15:32:30 +02:00
Alex Plate
72f286d9c6
Add UI test for multicaret enter in select mode
2024-01-26 15:32:30 +02:00
Alex Plate
db6786414a
[VIM-2974] WIP: Bringing back the octopus handler switch
2024-01-26 15:32:29 +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
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 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
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
filipp
280e1ec16d
Fix updating widget for cases when statusbar is not initialized
2024-01-17 11:15:54 +02:00
Filipp Vakhitov
52cf10cb2e
Better widget
2024-01-13 23:01:01 +02:00
Alex Plate
df72b24ad2
Wait smart mode before starting to create files
2024-01-09 17:34:03 +02:00
Alex Plate
26bdd15400
Do not try to turn off IdeaVim dialog as we don't show it anymore in UI tests
2024-01-08 18:52:09 +02:00
Alex Plate
e13310b4e0
Get rid of typing the action name
2024-01-08 18:51:30 +02:00
Alex Plate
e9d4218705
Try another way to search for the action
2024-01-08 17:13:31 +02:00
Alex Plate
56b80e4e60
Fix UI test with action search
2024-01-08 15:23:12 +02:00
Alex Plate
679f6471e6
Wait longer for the track action id action
2024-01-05 20:16:13 +02:00
Alex Plate
5cca484a82
Do not use sample code for this case
2024-01-05 19:51:18 +02:00
Alex Plate
59768c16e2
Wait for track action id test to appear in search results
2024-01-05 19:36:03 +02:00
Alex Plate
ee94396afa
Double escape to exit multicaret is required
2024-01-05 18:53:22 +02:00
Alex Plate
f01cc4d0d0
Add UI test for enter in insert and select modes
2024-01-05 18:31:02 +02:00
Alex Plate
4c0f17429b
Get rid of function and clean up UI test
2024-01-05 18:15:16 +02:00
Alex Plate
6a2ae1c572
Increase the expand timeout for the tree. For some reason it doesn't open quickly during tests on GH
2024-01-05 18:10:53 +02:00
Alex Plate
a2681ce6cc
Add UI test for multicaret enter
...
For ticket VIM-3186
2024-01-05 18:01:23 +02:00
Alex Plate
28c0c3207a
Add UI test for mappings on A-Enter and C-Enter
...
For ticket VIM-3190
2024-01-05 17:40:40 +02:00
Alex Plate
ecfa0e2b49
Fix incorrect reference for the test
2024-01-05 17:24:20 +02:00
Alex Plate
7e4b4c973c
Add UI tests for adding new line above and below via action in normal mode
...
For ticket VIM-3190
2024-01-05 17:05:07 +02:00
Alex Plate
208a78c748
Get rid of testing error
2024-01-05 16:34:24 +02:00
Alex Plate
027249c575
Incorrect import was used for video
2024-01-05 16:15:00 +02:00
Alex Plate
5ceb960205
Use junit 5 version of video-recorder
2024-01-05 15:56:07 +02:00
Alex Plate
1cea156c5a
Try to update the ffmpeg downloader
2024-01-05 15:41:53 +02:00
Matt Ellis
3ad0519add
Extract initialisation strategies to new class
2024-01-04 15:58:36 +02:00
Matt Ellis
95a2354a86
Fix issue where global value wasn't properly set
2024-01-04 15:58:36 +02:00
Matt Ellis
1c17411f04
Add test for changing number global-local options
...
The local value is not unset, but set to a copy of the new value, so we need to make sure that we notify editors that are not "unset"
2024-01-04 15:58:36 +02:00
Filipp Vakhitov
2d74f121aa
Set min width for widget
2024-01-04 10:45:59 +02:00
Filipp Vakhitov
7fde66eb40
Better color
2024-01-03 12:15:31 +02:00
Filipp Vakhitov
b3cea3997d
Safer changes to VimPlugin
...
(avoid changes to old code that worked)
2024-01-03 12:15:31 +02:00
Filipp Vakhitov
2f20193086
Post-review improvements
2024-01-03 12:15:31 +02:00
filipp
601e207f04
Remove comment
2024-01-03 12:15:31 +02:00
filipp
f0d3d8b276
Add colors to showmode widget
2024-01-03 12:15:31 +02:00
Filipp Vakhitov
e02d34f023
Better ShowMode widget & Macro recording widget
2024-01-03 12:15:31 +02:00
Filipp Vakhitov
0504be84b6
Add base implementation of showmode widget
2024-01-03 12:15:31 +02:00
filipp
216f020b70
Add new listeners
2024-01-03 12:15:31 +02:00
Alex Plate
b307c7d88b
[VIM-2929]: Reset the key stack in case of exception during the execution
2024-01-02 13:57:12 +02:00
Alex Plate
47d4445fa8
Check the key stack at the end of every test
2024-01-02 13:57:12 +02:00
Alex Plate
e36131b38b
[VIM-2929]: Adding logging for tracing the keyStack
2023-12-28 11:24:13 +02:00
Alex Plate
b67868afde
Extract the companion object into the top level
...
As the inspection says, due to eager companion object initialization, it's better to keep such things on the top level
2023-12-28 10:03:50 +02:00
Alex Plate
328fdee281
Add comment about autocompletion in macros
2023-12-22 10:55:16 +02:00
Matt Ellis
8ab43e98fe
Remove unnecessary keeping visual mode flag
...
The value was only ever set to false.
2023-12-22 10:55:00 +02:00
Matt Ellis
5f3fddd3e4
Remove unnecessary post process method
...
We no longer need to post process the selection because it is up to the operator implementation to end in the correct mode
2023-12-22 10:55:00 +02:00
Matt Ellis
6c9930ac2a
Removes unnecessary 'exit visual' command flag
...
This flag is only used to modify the behaviour of visual operators, but all visual operators have the flag, which means it's unnecessary. The only behaviour for visual operators now is to exit visual mode.
Note that visual motions are implemented separately, and handle their own visual mode requirements (e.g. MotionArrowLeftAction).
2023-12-22 10:55:00 +02:00
673222da6c
Prevent code completion popup from appearing after running a macro
2023-12-22 09:32:33 +02:00
Alex Plate
40d4354dfc
Avoid issue with blocked execution due to starting a coroutine in ProjectActivity
2023-12-19 10:30:14 +02:00
Alex Plate
27f2f5bb2b
Migrate KeymapChecker to ProjectActivity
2023-12-19 10:08:01 +02:00
Alex Plate
e2e2b4d176
Proper tear down with tests with mock
2023-12-19 09:59:54 +02:00
Alex Plate
7a1763bbee
Dispose carets of custom editor in test
2023-12-19 02:21:34 +02:00
Alex Plate
ca8904b6bb
Refactor common extension tests in order to avoid double remove of extension.
...
Firstly extension is removed in tearDown, then as disposable of VimPlugin.getInstance()
2023-12-19 02:21:18 +02:00
Alex Plate
6384b28689
Refactor listeners to avoid manual unregister
...
However, manual removal of listeners may cause "double" remove in cause the user turns off the plugin and then closes IDE: firstly listener is removed manually, and then by dispose call
2023-12-19 01:44:57 +02:00
Alex Plate
e661466558
Small refactorings on IdeaSelectionControl
...
They are done because if we don't set timer to null after tests, we have a leaked project
2023-12-19 00:12:54 +02:00
Alex Plate
8faf2beba4
Refactor IdeaRefactorModeHelper for splitting logic into change calculation and change apply
2023-12-19 00:12:54 +02:00
Alex Plate
fb29319ec6
Add VimPlugin.isNotEnabled function to simplify a lot of checks for !isEnabled()
2023-12-19 00:12:54 +02:00
Alex Plate
7779d7d193
This Easter egg caused a bug that a disposable balloon was leaked.
...
As smart people suggest, it's better not to have easter eggs at all.
2023-12-19 00:12:54 +02:00
Alex Plate
2c5246b62f
Avoid project leak via KeyEvent
2023-12-19 00:12:53 +02:00
Alex Plate
e43a3f4518
Avoid disposable leak because of widget
...
With the call that was removed, we initialized the widget too early, and the widget wasn't properly registered as disposable. This caused disposable leak.
Also, there is no understanding why this code was used to update the widget. The call for ShowCmd.update seems enough
2023-12-19 00:12:53 +02:00
Alex Plate
b5716f7a6d
Fix incorrect error handling
...
Since TestLoggerAssertionError is not available in production, we can't catch this exception in production code
2023-12-19 00:12:53 +02:00
Alex Plate
b3e47e3bac
Revert "Disable some tests"
...
This reverts commit 95838d045d
.
2023-12-19 00:12:52 +02:00
Alex Plate
7fb6f4b47f
Revert "Refactor key cache"
...
This reverts commit e159866d3b
.
2023-12-15 18:49:18 +02:00
Alex Plate
df3b435a1f
Revert "Clean swing timer"
...
This reverts commit 5b65f1b544
.
2023-12-15 18:49:18 +02:00
Alex Plate
5b65f1b544
Clean swing timer
2023-12-15 18:43:49 +02:00
Alex Plate
e159866d3b
Refactor key cache
2023-12-15 18:40:04 +02:00
Alex Plate
95838d045d
Disable some tests
2023-12-15 17:17:01 +02:00
Alex Plate
997cb85663
Do not log LOG.error during test execution
2023-12-15 16:34:37 +02:00
Alex Plate
517c6b40b5
Fix issue with disposed editor
...
If we process a focus change event, there is a chance that the editor is already disposed
2023-12-15 14:51:27 +02:00
Alex Plate
1fa78935a6
Factor disposable objects on editor opening
2023-12-15 14:28:18 +02:00
Alex Plate
4ddcd56740
Fix(VIM-3085): Open access to VimTypedActionHandler and VimShortcutKeyAction
2023-12-15 12:46:35 +02:00
Alex Plate
4809742088
Do not run tests for esc iin neovim
2023-12-01 12:13:44 +02:00
samabcde
dee808752f
Fix(VIM-3176) add test for restore selection after pasting in/below selection
2023-11-25 13:14:29 +02:00
filipp
5afd161fba
Update minimal supported version to 2023.3
2023-11-24 20:42:48 +02:00
Alex Plate
336efa1e8b
Add some tests for one time mode
2023-11-24 17:49:04 +02:00
Alex Plate
568d5ca4ff
Fix(VIM-3090): Cmd line mode saves the visual mode
...
Previously, cmd line mode always returned to normal mode. However, it should keep the visual or one-time modes
2023-11-24 17:42:33 +02:00
Alex Plate
a9991f2a50
Convert ProcessGroup to kotlin
2023-11-24 17:00:06 +02:00
Alex Plate
1c8096444a
Rename .java to .kt
2023-11-24 17:00:05 +02:00
Filipp Vakhitov
8fcca05565
Fix(VIM-3176): Reselecting visual selection after pasting above it select wrong lines
2023-11-23 22:53:07 +02:00
Alex Plate
ed1f3cec59
Make sure the injector is initialized in VimShortcutKeyAction
2023-11-23 16:19:13 +02:00
Alex Plate
c29a409f28
Log other actions assigned to the escape and enter actions
2023-11-23 15:07:01 +02:00
Alex Plate
1a46936ad6
Suggest fix when two escape shortcuts are assigned to the editor escape action
...
The case is here: https://youtrack.jetbrains.com/issue/VIM-3162/Escape-stopped-working-after-updating-to-2.7.0#focus=Comments-27-8421289.0-0
2023-11-23 15:07:00 +02:00
Alex Plate
e82abfb948
Do not perform keymap check if the plugin is disabled
2023-11-23 15:07:00 +02:00
Alex Plate
c3409be780
Fix(VIM-3206): Disable both copilot suggestion and insert mode on a single escape
2023-11-23 15:07:00 +02:00
Alex Plate
1557ab3474
Use single alarm to schedule verifications of the keymap
2023-11-23 15:07:00 +02:00
Alex Plate
4d75ef2849
Fix(VIM-3204): Add checker that verifies the configuratin of the keymap
2023-11-23 12:01:42 +02:00
Alex Plate
a1da23d1ba
Log the name of the keymap
2023-11-23 10:14:58 +02:00
Alex Plate
c4bc751df7
Fix(VIM-3084): Double update for the status bar icon
2023-11-23 09:01:18 +02:00
Alex Plate
972d89ec6e
Refactor companion object to util object
2023-11-23 09:01:17 +02:00
Alex Plate
70f040e104
Create an outline version of icon
2023-11-23 09:01:17 +02:00
Alex Plate
d4de0b49c8
Do not run ActionsTest with neovim
2023-11-23 09:01:17 +02:00
Alex Plate
2f86ac0dfa
Log the shortcuts that are assigned to esc and enter
2023-11-22 12:20:05 +02:00
Alex Plate
b550d1990e
Fix(VIM-3195): Fix escape in injected editor
2023-11-22 12:04:37 +02:00
Alex Plate
22062f0c77
Fix(VIM-3190): Do not use octopus handler if the enter key is used with modifiers like shift or control
2023-11-22 11:51:57 +02:00
Alex Plate
515f613a53
Add tests for other actions
2023-11-22 10:17:30 +02:00
Alex Plate
615ed6b713
Fix(VIM-3203): Split action not works in normal mode
2023-11-22 10:14:37 +02:00
Alex Plate
f6eab62c3c
Fix(VIM-3184): Revert "VIM-3184: Temporally disable new handlers for the thin client"
...
This reverts commit 6960a34d02
.
2023-11-22 09:42:59 +02:00
Alex Plate
6960a34d02
VIM-3184: Temporally disable new handlers for the thin client
2023-11-21 13:09:52 +02:00
Alex Plate
b3662d4e6e
Fix(VIM-3157): For for PyCharm 2023.1
2023-11-17 16:09:38 +02:00
Alex Plate
50c9b7c352
Fix(VIM-3159): Start new line before current action works in normal mode now
2023-11-17 15:23:31 +02:00
Alex Plate
f395d3b2bf
Fix(VIM-3186): Do not multiply the enter action by the amount of carets
2023-11-17 15:10:16 +02:00
Alex Plate
e95d6343cb
Fix(VIM-3177): Formatting of commit message works again
2023-11-17 13:52:25 +02:00
filipp
a9052a068f
Fix property tests
2023-11-17 13:05:30 +02:00
filipp
b1323c0d67
Fix(VIM-1611): actions related to resolving conflicts doesn't seem to work
2023-11-17 12:43:04 +02:00
filipp
87ceb8fb58
Much better undo
2023-11-17 11:59:27 +02:00
Alex Plate
3db31e9347
Fix(VIM-3159): Shift-enter now works in normal mode again
2023-11-14 11:12:49 +02:00
Alex Plate
1dc6045ae1
Fix(VIM-3157): Do not invoke enter in invokeLater for python console
2023-11-13 12:25:49 +02:00
Alex Plate
c13fc8a805
Fix(VIM-3168): Do not switch to block caret after enter if the IdeaVim is disabled
2023-11-13 11:39:07 +02:00
Alex Plate
41025d78de
Fix(VIM-3165): Do not process enter key as IdeaVim shortcut if it's not an actual keypress
2023-11-13 11:23:26 +02:00
Filipp Vakhitov
b3ad222cdc
Change default undo behavior
2023-11-10 19:22:43 +02:00
Alex Plate
efd9ed0a5f
Add logs around pressing of esc and enter keys of the user
2023-11-10 17:17:13 +02:00
Alex Plate
9d20061924
Do not register VimShortcutKeyAction for esc and enter keys
...
This is no more needed as we have a different way of getting the key. Also, this causes a bug VIM-3169
2023-11-10 17:17:13 +02:00
Filipp Vakhitov
ddfe8cf361
Support temporary options
2023-11-10 16:01:22 +02:00
Filipp Vakhitov
93c83f773a
Add generated JSON files to gitignore
2023-11-10 16:01:22 +02:00
Filipp Vakhitov
876e16fa9e
Support registering commands from json
2023-11-10 16:01:21 +02:00
Filipp Vakhitov
083ac8cfa3
Convert RegisterActions to Kotlin
2023-11-10 16:01:21 +02:00
Filipp Vakhitov
fe6c1ae452
Add LazyVimCommand and CommandProvider
2023-11-10 16:01:21 +02:00
Filipp Vakhitov
ced50bb2e8
Mark xml related classes for commands as deprecated
2023-11-10 16:01:21 +02:00
Filipp Vakhitov
dee84bcc63
Annotate commands
2023-11-10 16:01:21 +02:00
Alex Plate
620f54344f
Fix(VIM-3138): Do not try to register disposer if the caret is already disposed
2023-11-03 19:19:17 +02:00
Alex Plate
5ef4af6b55
Revert "Testing CI integrations: simple change"
...
This reverts commit b294bdd013
.
2023-11-03 18:20:00 +02:00
Alex Plate
b294bdd013
Testing CI integrations: simple change
2023-11-03 17:41:16 +02:00
Alex Plate
dfe8c43c33
Fix VIM-3146 for Rider
...
Now we process IdeaVim esc before Rider's esc
2023-11-03 17:23:41 +02:00
Alex Plate
3e54ad5a68
Get rid of ordering with terminalEnter
...
This caused a blocker issue VIM-3124. The problem is that this ordering doesn't work well in PyCharm.
Unfortunately, this means that we have to reopen VIM-3122
2023-11-03 16:36:45 +02:00
Alex Plate
288c66d8a2
Refactor execution of vim script
...
Now we set the flag `executingVimscript` during execution of any vimscript and we run initialization of delayed plugins after every call for execute.
This is needed to properly initialize plugins after call for `source` command. Previously this command initialized extensions as they met in the script, what may cause incorrect behaviour. With this update, we unified an approach for executing vim script.
2023-11-03 13:27:38 +02:00
Alex Plate
44c8a97f44
Consider the case when we load .ideavimrc file from using the source command
...
This includes updating the "ReloadIdeaVimRc" button and setting the correct mapping owner
Previously, the `source` command loaded ~/.ideavimrc file as a regular file, thus several features didn't work properly.
This refactoring was caused by this PR: https://github.com/JetBrains/ideavim/pull/736
2023-11-03 13:27:38 +02:00
Alex Plate
60c27b1dea
Add documentation about some aspects of IdeaVim implementation
2023-11-03 13:27:38 +02:00
419160724c
Fix(VIM-2933): Reloading/sourcing .ideavimrc does not initialize new plugins
2023-11-03 11:27:41 +02:00
Matt Ellis
1841b7c4e6
Allow tilde forward slash on Windows
2023-11-03 08:46:57 +02:00
Alex Plate
5e4ee1b60f
Fix the issue with the status bar icon
...
In the 2023.3 EAP call to isAvailable seems to happen much earlier than it used to be.
This caused the fact that `injector` is not yet initialised at that moment and we fail with an exception. All other status bar icons are also not loaded because of this exception.
Adding `VimPlugin.getInstance()` is a quick workaround to initialize the needed injector
2023-10-28 08:53:21 +03:00
Alex Plate
b164dc1b55
Revert "Remove deprecated MarkGroup.java"
...
This reverts commit fdd32cb954
.
2023-10-27 21:41:18 +03:00
filipp
530eba3d00
Update tests for disabled oldundo option
2023-10-27 19:18:53 +03:00
filipp
808066f2e2
Disable new undo before release
2023-10-27 19:18:53 +03:00
Alex Plate
cb3e683c8e
Use different API for creating editor disposable
2023-10-27 17:00:06 +03:00
Alex Plate
6c07687a86
Fix enter in read-only files
...
VIM-3122
2023-10-27 17:00:06 +03:00
Matt Ellis
f0abe5d80d
Fix range for fall back comment mode
...
Callback to reset caret was always called, even if action was unavailable. Fall back action would therefore act on current line only.
2023-10-27 12:45:02 +03:00
fb78cdd304
Add operating system type to has()
function
2023-10-27 12:28:06 +03:00
Matt Ellis
5fd54dccd3
Add support for ShowHoverInfo action to 2023.1 and 2023.2 ( #733 )
...
* Fix(VIM-2106) Implement ShowHoverInfo if not provided by platform
* Bump minimum build to 2023.1 RTM
2023-10-27 11:06:11 +03:00
filipp
9ccd39d724
Better VIM-696
2023-10-26 16:38:12 +03:00
filipp
c876079e04
Fix(VIM-1639): Ctrl-o and Ctrl-i jumping in files of different projects
...
A commit with proper notation to run all the "Fixed tasks"
2023-10-26 13:38:45 +03:00
filipp
06ef1c1182
VIM-1639 Ctrl-o and Ctrl-i jumping in files of different projects
2023-10-26 10:23:16 +03:00
filipp
a9ba9789fd
Fix(VIM-696): Vim selection issue after undo
2023-10-25 16:55:32 +03:00
filipp
fdd32cb954
Remove deprecated MarkGroup.java
2023-10-25 16:55:32 +03:00
Alex Plate
af7bdb55a1
Fix rider issues with the new handler
2023-10-20 17:42:05 +03:00
Alex Plate
69af9aeff0
Fix(IDEA-300030): Mapping with enter to action may not work
2023-10-20 16:16:28 +03:00
Alex Plate
88f4192d61
Fix tests
2023-10-20 12:32:05 +03:00
Alex Plate
8c06767fdc
Show error instead of warning in case of exception
2023-10-20 11:10:55 +03:00
Matt Ellis
405b9ba7ea
Fix(VIM-2562): Fix hang with multi-width chars in command line
2023-10-11 11:08:08 +03:00
Alex Plate
ab9bd76d34
Update isOctopusEnabled function
2023-10-11 09:38:30 +03:00
Alex Plate
677da7d80a
Create a test with different combination of enter handlers
2023-10-11 09:18:51 +03:00
Alex Plate
b3ad2fd715
Next handler may be null
2023-10-10 16:01:24 +03:00
Alex Plate
97ca6ce5b8
Dialogs are now closed by esc
2023-10-10 15:33:49 +03:00
Alex Plate
e1abc4374e
Correct the shape of the caret after entering the cell in py notebooks
2023-10-10 13:08:26 +03:00
Alex Plate
9eeeb15c6c
Enable octopus handler by default
2023-10-10 11:39:14 +03:00
Alex Plate
337f5ade59
Get rid of deprecated method
2023-09-14 16:31:26 +03:00
Matt Ellis
585b815472
Only notify changes if the value is different
...
This is primarily to avoid instantiating inactive extensions when
resetting all options back to default values, which sets extensions
inactive.
It applies to global and local options, but not to global-local. The
notifications for global-local options are already complex, as they can
be reacting to changes to both the global and local value, and only
notifying editors that are affected.
2023-09-11 11:04:09 +03:00
Matt Ellis
c37e2f4176
Update fallback window when all windows close
2023-09-11 11:04:09 +03:00
Matt Ellis
626d59d3fc
Only use fallback for first initialisation
...
Subsequent initialisation will be treated like EDIT
2023-09-11 11:04:09 +03:00
Matt Ellis
ddd058a26f
Fix name of usage statistic
2023-09-11 11:04:09 +03:00
Matt Ellis
32b8d03c5e
Improve modifying string and string list options
2023-09-11 11:04:09 +03:00
Matt Ellis
71f3e1b4f1
Support per-window global values
...
For local-to-window options
2023-09-11 11:04:09 +03:00
Matt Ellis
aa6f53fa68
Require editor when getting/setting global option
2023-09-11 11:04:09 +03:00
Matt Ellis
1335e9f7f2
Improve detection of editor open scenarios
2023-09-11 11:04:09 +03:00
Matt Ellis
c75599b6a0
Refactor editor options initialisation
2023-09-11 11:04:09 +03:00
Matt Ellis
2efdfbd988
Remove unnecessary calls from tests
2023-09-11 11:04:09 +03:00
Matt Ellis
700198d8bc
Remove test only vimscript execute method
2023-09-11 11:04:09 +03:00
Matt Ellis
3efab5928e
Evaluate ideavimrc in the fallback window context
2023-09-11 11:04:09 +03:00
Matt Ellis
93037b6866
Add fallback window to capture local option state
2023-09-11 11:04:09 +03:00
Matt Ellis
0f19e50c69
Improve hierarchy of option accessors
...
Getting the effective IJ options would allow access to Vim global and IJ global, but not Vim effective. IntelliJ specific options are now a separate hierarchy, so the Vim effective and IJ effective accessors now simply access all Vim or all IJ options.
2023-09-11 11:04:09 +03:00
Matt Ellis
66ea6ad3d4
Rename OptionScope to OptionAccessScope
2023-09-11 11:04:09 +03:00
filipp
74a710c5e8
VIM-3060 Clipboard interaction stopped working
...
Fixed issue and tests (for Linux)
2023-09-07 02:39:23 +03:00
Alex Plate
456055bcf0
Do not run multiple carets from ChangeEditorActionHandler and instead pass this information to EditorActionHandlerBase
...
This is needed for the new way we register handlers. As we can't be sure that this commands won't be called from the `runForEachCaret` context, we have to avoid this method
2023-09-01 17:25:14 +03:00
Alex Plate
5ebe290424
Check if the caret if valid
2023-09-01 15:27:27 +03:00
Alex Plate
4532d68743
Convert change group to kotlin
2023-09-01 14:29:51 +03:00
Alex Plate
1903e18397
Rename .java to .kt
2023-09-01 14:13:57 +03:00
Alex Plate
a705bf7053
Get rid of the exception suppression
...
This suppression existed for a very long time. Now it hid one of the exceptions I expected.
2023-09-01 13:58:11 +03:00
Alex Plate
26e9bf5197
Detect if we run the action in runForEachCaret
scope or not
2023-09-01 13:25:15 +03:00
Alex Plate
e7a8b45c10
[VIM-3051] Refactor the way we store modes in IdeaVim
...
Now we have a single variable with current mode instead of stack of modes.
2023-08-25 11:38:21 +03:00
Alex Plate
2e0ec73d77
Remove some deprecated methods
2023-08-25 11:17:28 +03:00
Alex Plate
9f10a4a0b7
Revert "Temporally disable some tests"
...
This reverts commit bf6a8a71
2023-08-14 16:17:47 +03:00
Alex Plate
8e85d35d8f
Disable the failed test again
2023-08-14 10:53:17 +03:00
Alex Plate
6b6794a367
Check if test will fail on server
2023-08-14 10:36:44 +03:00
Alex Plate
14a726b5af
Add a note
2023-08-14 10:35:54 +03:00
Alex Plate
bf6a8a713b
Temporally disable some tests
2023-08-14 10:08:36 +03:00
Ludwig Valda Vasquez
41177b91be
Handle unicode grapheme clusters
...
Some characters that render as a single symbol can span over a sequence
of several unicode code points (e.g., flag emojis, combination of a
letter and a diacritic, Hangul syllables, etc.).
Such composites are called grapheme clusters in the unicode standard,
and this patch introduces recognition of extended grapheme cluster
boundaries, allowing to iterate over rendered characters. Without this,
user may observe the cursor being "stuck" inside a character for several
keystrokes, while it's making its way through each code point in the
grapheme cluster.
The implementation follows the boundaries search algorithm outlined in
the technical report 29 of the Unicode standard[1]. The implementation was
tested against the set of test cases provided by the unicode character
database[2].
Additionally to the grapheme cluster boundaries search itself, this
patch adds `isExtendedPictographic` function, that answers whether the
given code point has a unicode "Extended_Pictographic" property, which
is required to correctly determine grapheme cluster boundaries. This
method is implemented natively in the JDK 21 and can be removed once we
start targeting that version.
Extended_Pictographic property is stored as a bitmap. I was considering
making a similar map for the code point classification in the grapheme
cluster boundary search implementation, which could yield better
performance, but that would require adding another half a megabyte (at
least) of data into the JAR and I've settled for the bunch of `if`s way.
That is something that can be reconsidered and shouldn't be difficult to
change if the impact on performance would be noticeable (in my simple
tests it didn't show).
A few functions in the vim-engine were adjusted to handle grapheme
clusters (such as getting the horizontal offset and adjusting the cursor
to not reach over the end of the line).
[1]: https://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries
[2]: https://www.unicode.org/Public/UCD/latest/ucd/auxiliary/GraphemeBreakTest.txt
2023-08-14 09:04:41 +03:00
Filipp Vakhitov
c2ebacdfb3
Better annotations
2023-08-11 15:57:09 +03:00
Alex Plate
5d4996c085
Optimize imports on the project
2023-08-11 11:54:38 +03:00
Filipp Vakhitov
a46200ca17
Introduce TestForLinux annotation
2023-08-11 00:22:43 +03:00
filipp
1fe64e69ca
Support running tests if headless
2023-08-04 19:00:47 +03:00
Matt Ellis
cb8385a092
Fix issue adding back hidden status bar widget
2023-08-03 15:00:28 +03:00
Matt Ellis
d4aa1f87e0
Fix read-only stdin when running application
2023-08-03 14:58:47 +03:00
filipp
41df06a48b
Fix failing tests second attempt
...
(please please)
2023-08-03 14:00:03 +03:00
filipp
4188e636f3
Fix failing tests
...
(please)
2023-08-03 13:39:33 +03:00
filipp
e2c0d59e3a
Fix default register for unnamedplus without X
2023-08-03 11:24:29 +03:00
Alex Plate
a62cc3618c
Fix an issue with disposed caret when moving up
...
There was an issue that when we enter visual block, move up, then try to switch to the visual line, we get a disposed caret issue.
This was caused by the fact that we get the list of carets, then process them one by one. However, as we update the first caret, the second gets disposed.
2023-08-01 16:17:39 +03:00
Matt Ellis
98ca4080dd
Do not enter INSERT mode for read-only editors
...
It's not enough that the document is writable, the editor needs to be non-read-only, too.
Fixes VIM-2313, fixes VIM-2318, fixes VIM-2666, fixes VIM-2951
2023-08-01 12:22:26 +03:00
Matt Ellis
dd24ebf184
Rename OptionsScope.AUTO to EFFECTIVE
2023-07-31 11:28:32 +03:00
Matt Ellis
e3957d2207
Minor updates from code review
2023-07-31 11:28:32 +03:00
Matt Ellis
8ce1307d51
Fix tests under latest SDK
2023-07-31 11:28:32 +03:00
Matt Ellis
e1141dcd1c
Remove old option listener API
2023-07-31 11:28:32 +03:00
Matt Ellis
4e33b5f351
Migrate to effective value change listeners
2023-07-31 11:28:32 +03:00
Matt Ellis
54dc184dd0
Introduce option effective value change listener
2023-07-31 11:28:32 +03:00
Matt Ellis
c8c9d1729e
Introduce listener for global option changes
2023-07-31 11:28:32 +03:00
Matt Ellis
e6e4b81f3b
Simplify guicursor caret attributes cache
2023-07-31 11:28:32 +03:00
Matt Ellis
1c465f028e
Fix option scopes for :let command
2023-07-31 11:28:32 +03:00
Matt Ellis
12824c22c4
Add :setglobal command
2023-07-31 11:28:32 +03:00
Matt Ellis
64c5ad72a3
Use accessor API to set global-local value
2023-07-31 11:28:32 +03:00
Matt Ellis
080c2059ee
Format unset global-local toggle options
2023-07-31 11:28:32 +03:00
Matt Ellis
a288850010
Add support for resetting option to global value
2023-07-31 11:28:32 +03:00
Matt Ellis
16811602d2
Support global-local options
2023-07-31 11:28:32 +03:00
Matt Ellis
749d111e89
Reset options for current editor only
...
Matches Vim behaviour for `:set all&`
2023-07-31 11:28:32 +03:00
Matt Ellis
365d8d34ce
Introduce AUTO scope for effective option values
2023-07-31 11:28:32 +03:00
Matt Ellis
ced25bbf28
Initialise options when opening windows/buffers
...
Note that this temporarily changes the semantics of `:set` to always set the local option, instead of setting the global option (because we now eagerly initialise local values). Neither is correct, but we don't yet have a way to support the proper behaviour.
2023-07-31 11:28:32 +03:00
Matt Ellis
7e1ce5a203
Use Vim terminology in storage service
2023-07-31 11:28:32 +03:00
Matt Ellis
aeec754f7e
Override IjVimEditor.toString for better debugging
2023-07-31 11:28:32 +03:00
Matt Ellis
9a3fcb56a1
Support local-to-buffer options
...
Previously, all local options were treated as local-to-window
2023-07-31 11:28:32 +03:00
Matt Ellis
aff956f4c8
Update parsed value cache for declared scope
2023-07-31 11:28:32 +03:00
Matt Ellis
0f49fd6406
Introduce declared scope for all options
2023-07-31 11:28:32 +03:00
Filipp Vakhitov
0201acb5f7
Fix test
2023-07-28 20:09:09 +03:00
Filipp Vakhitov
dfbefe96da
Fix(VIM-802): IdeaVim vs. Vim: discrepancies in using registers
2023-07-28 19:58:51 +03:00
filipp
a71b35097f
Fix(VIM-2246): X11/Xorg Primary selection register "* not supported
2023-07-28 19:56:42 +03:00
filipp
0058f81e76
VIM-3022 Search is broken in folded regions
2023-07-27 01:03:12 +03:00
Matt Ellis
6bd1782c4b
Fix OS specific values in tests
2023-07-19 18:04:02 +03:00
Matt Ellis
2f5d402c61
Support :set! to output as a single column
2023-07-19 18:04:02 +03:00
Matt Ellis
a78e21a167
Use soft wraps instead of hard wraps in ex output
...
Hard wraps require figuring out the width of the panel, and all we have is the width of the associated editor, which excludes gutter, etc. Easier to let the UI toolkit handle it
2023-07-19 18:04:02 +03:00
Matt Ellis
2e9b626523
Fix formatting of value pair options
2023-07-19 18:04:02 +03:00
Matt Ellis
4487b8904c
Sort options output before formatting
...
Sorts on option name, not including "no" prefix for toggle options
2023-07-19 18:04:02 +03:00
Matt Ellis
1f01f915dc
Remove trailing padding from options list
2023-07-19 18:04:02 +03:00
Alex Plate
834d1476ce
Replace VimDataContext with a dataContextWrapper
...
This should fix some issues like
https://jb-web.exa.aws.intellij.net/report/16130069
https://jb-web.exa.aws.intellij.net/report/16092668
2023-07-14 16:58:26 +03:00
filipp
a769a8d1a4
Fix(VIM-2818): Wrong caret position after multicaret paste
2023-07-14 16:24:36 +03:00
filipp
ece8c3821d
Add test for VIM-481
2023-07-14 16:00:54 +03:00
filipp
2bc0c4c41b
Better buffer storage
2023-07-14 15:06:03 +03:00
filipp
58ad8417e5
Fix vim logger
2023-07-14 13:22:32 +03:00
samabcde
d3f942aebc
VIM-2920 fix select block expansion when enclose boundary is line break
2023-07-07 11:46:41 +03:00
Ludwig Valda Vasquez
28887c1da2
Update VimMessages#updateStatusBar to accept VimEditor
...
This is required for vim support in Fleet.
2023-07-07 10:57:56 +03:00
filipp
2582f1e907
Fix(VIM-1294): unvoluntary unfolding when using ideavim
2023-06-30 12:32:41 +03:00
Alex Plate
13139966ea
Implement UserDataHolder for out VimDataContext
...
This is needed for fix Rider issues with put: https://youtrack.jetbrains.com/issue/RIDER-94213/StackOverflowError-when-using-GotoDeclaration-action-or-gd-with-IdeaVIM-plugin-in-Rider-2023.2#focus=Comments-27-7617177.0-0
2023-06-30 10:50:38 +03:00
filipp
c376feb4d8
Fix(VIM-2685): Register command outputs different values for same registers
2023-06-27 17:40:56 +03:00
filipp
fa0bcfa37a
Remove duplicate file
2023-06-23 17:19:37 +03:00
filipp
6b70b11ffc
Focus active tab after :tabclose
2023-06-23 17:05:09 +03:00
filipp
e474075778
Basic support for commands that were not added to grammar
2023-06-23 15:18:57 +03:00
filipp
1205bb67f2
VIM-2973 Multiline editing like "ciw" doesn't work well when have remappings to stop c
and d
from using the default register
2023-06-21 01:20:46 +03:00
filipp
10bcd20cd8
Retire obsolete commands
...
With all the gratefulness for 20 years of service. Thank you, pioneers of our plugin's legacy.
2023-06-20 15:59:09 +03:00
filipp
3a2e6e018d
Add missing command tests
2023-06-20 15:59:09 +03:00
Alex Plate
2468c359a4
Disable test warning
2023-06-15 13:23:00 +03:00
Martin Yzeiri
dd490967d3
Add Matchit PHP patterns
2023-06-12 10:39:45 +03:00
Martin Yzeiri
391202877a
Extract tagNamePattern to an argument
...
Providing a custom tagNamePattern makes it easier to interop with
languages like PHP.
2023-06-12 10:39:45 +03:00
Martin Yzeiri
c48acd8fb7
Simplify JavaScript PSI checks
...
The less than/greater than operators are the only binary expressions in
the JS patterns, so the extra PSI checks are redundant.
2023-06-12 10:39:45 +03:00
Martin Yzeiri
c8428258fe
Switch to linkedMapOf
...
mapOf happens to give us LinkedHashMaps, but we'll use the explicit
constructor since insertion order matters for PatternsTables.
2023-06-12 10:39:45 +03:00
Alex Plate
7b71af9e1d
Fix(VIM-2964): Fix an issue with leaking caret instance
...
Now I use the subscription to the disposer, but I think we can update it to the flow
2023-06-06 16:12:54 +03:00
Alex Plate
51c464f8d2
Fix out of bounds exception
2023-06-06 12:07:33 +03:00
filipp
cc2de42415
Moving from gorgeous YAML to good old JSON
2023-06-06 10:42:42 +03:00
filipp
c9b9bb6cf8
Remove generated files for tests
2023-06-06 10:42:42 +03:00
filipp
434d882314
Add vimscriptfunctionannotation
option
2023-06-06 10:42:42 +03:00
filipp
617d9d90ed
Add excommandannotation
option
2023-06-06 10:42:42 +03:00
filipp
f456e0a8dd
Fix tests
2023-06-06 10:42:42 +03:00
filipp
4d907213c3
Split ex-commands in YAML
2023-06-06 10:42:42 +03:00
filipp
ee704f53c7
Support lazy ex command classloading
2023-06-06 10:42:42 +03:00
filipp
8aeab29303
Annotate ex-commands
2023-06-06 10:42:42 +03:00
filipp
7491d19309
Add yaml files
2023-06-06 10:42:42 +03:00
filipp
627c8a6eca
Move some functions to engine
2023-06-06 10:42:42 +03:00
filipp
8094758a82
Add function providers
2023-06-06 10:42:42 +03:00
filipp
c1b87eba03
Annotate functions
2023-06-06 10:42:42 +03:00
samabcde
437932cd57
VIM-1990 fix repeat delete find or till wrong MotionType
2023-06-01 10:36:28 +03:00
Alex Plate
b48950ff3a
Fix(VIM-2953): The previous fix for :q command caused weird behavior of tab closing
...
The initial change was caused by VIM-2912 in a8f0145333
, but when I took the old function back, it seems that both issues are fixed.
2023-05-31 11:41:25 +03:00
samabcde
4e7149c945
VIM-2615 add support to sort u command, fix natural sort issue when both string not contain number
2023-05-29 14:41:06 +03:00
Alex Plate
904ca5d529
Remove argument argument
from text object
2023-05-19 10:16:23 +03:00
Alex Plate
aabe56e8b3
Disable alternative context resolve during copy because of binary incompatibility with the newer version of EAP
2023-05-17 13:08:07 +03:00
Alex Plate
fc07ec3db3
Fix compilation for the new version of EAP
2023-05-17 12:39:39 +03:00
Alex Plate
2e8454907d
Fix esc for replace in octopus mode
...
VIM-2938
2023-05-17 12:39:39 +03:00
Matt Ellis
94ef9692f2
Fix typo in ideajoin notification
2023-05-17 10:54:13 +02:00
Matt Ellis
798750bf95
Use options API for more cached values
2023-05-17 10:54:13 +02:00
Matt Ellis
52dcb2d290
Treat 'iskeyword' as a local-to-buffer option
2023-05-17 10:54:13 +02:00
Matt Ellis
4cc883f174
Refactor search helper companion to interface
...
Helper functions now take the editor rather than the text, ready for search to rely on per-editor options (i.e. '`iskeyword'`). Also standardises on `Int` for search parameters. While the file size is a `Long`, the editor returns a `CharSequence`, which is indexed by `Int`.
2023-05-17 10:54:13 +02:00
Matt Ellis
5a3c5bd761
Treat 'virtualedit' as a global-local option
2023-05-17 10:54:13 +02:00
Matt Ellis
66830b7cb3
Treat 'idearefactor' as a global-local option
2023-05-17 10:54:13 +02:00
Matt Ellis
b742865e8a
Treat 'ideajoin' as a global-local option
2023-05-17 10:54:13 +02:00
Matt Ellis
fd314a3288
Treat 'matchpairs' as a local option
2023-05-17 10:54:13 +02:00
filipp
527b321ee0
Fix(VIM-2945): %-movement mismatches braces
2023-05-14 00:09:00 +03:00
filipp
d89fbeea62
Fix(VIM-2930): vim-multiple-cursors + ReplaceWithRegister issue
2023-05-07 23:51:05 +03:00
filipp
e4f7700044
Refactoring
...
Update method signatures and return types:
- Getting rid of "magic constants" (e.g. -1) and replacing them with nullable
- Replacing direction Int with Enum
- JetBrains annotations
2023-05-05 09:41:27 +03:00
filipp
a1d0c3ebf4
Remove println
2023-05-05 09:41:27 +03:00
filipp
2088c1ce00
Move more methods to engine
2023-05-05 09:41:27 +03:00
Martin Yzeiri
bcf10a0b8e
Matchit: Ignore JS comparison operators
...
In files that mix HTML and JavaScript, arrow functions or forms like (x > y)
conflict with the brackets on HTML tags. We can ignore those JS elements
using PSI checks like we do for some Ruby keywords.
2023-04-26 11:14:06 +03:00
Martin Yzeiri
546137c0f5
Matchit: Correct HTML regex
...
A final closing > is required on the search pair, otherwise tags with a
shared prefix in their names will conflict.
2023-04-26 11:14:06 +03:00
Martin Yzeiri
92bc691e1f
Matchit: Improve comment handling
...
Since the cursor can come before the start of the matching pair, we need
to check the PSI element at the first match offset, not the caret offset,
when deciding if we need to skip comments.
This fix makes the special isHtmlAttribute check unnecessary. If the caret
is in an HTML attribute, the first match offset will point to the start
of the tag.
2023-04-26 11:14:06 +03:00
Martin Yzeiri
d834d0fdd9
Move a unit test
2023-04-26 11:14:06 +03:00
Matt Ellis
77ad9deeba
Use interface for IJ specific options
2023-04-26 10:26:06 +03:00
Matt Ellis
ffa6c45b62
Reset test injector after each test
2023-04-26 10:26:06 +03:00
Matt Ellis
330d92116c
Refine inheritance of IJ specific option classes
2023-04-26 10:26:06 +03:00
Matt Ellis
899adfc1b0
More refactoring to use new API
2023-04-26 10:26:06 +03:00
Matt Ellis
23535a6ad5
Remove OptionValueAccessor
2023-04-26 10:26:06 +03:00
Matt Ellis
e8b7f00370
Remove accessor from new API
2023-04-26 10:26:06 +03:00
Matt Ellis
3f2c5070ee
Migrate local option access to new API
2023-04-26 10:26:06 +03:00
Matt Ellis
a2352525c5
Migrate global option access to new API
...
Also fixes some incorrect usages of local options as global, e.g. 'ideajoin' and 'scroll'. There are some options that should be local that are only ever accessed at global scope. These need fixing in the future, e.g. 'iskeyword', 'matchpairs' and 'virtualedit'
2023-04-26 10:26:06 +03:00
Matt Ellis
50384a526b
Introduce option accessor delegated properties
...
Also migrates tests to use new properties
2023-04-26 10:26:06 +03:00
Matt Ellis
9ade3365ff
Extract StringListOption
...
While it is conceptually very similar to StringOption, the implementation of list vs not-list operations are very different, and having a separate type will allow us to do more interesting things with overloading when we introduce delegate properties
2023-04-26 10:26:06 +03:00
filipp
6473ad02a0
Add test for next paragraph motion
2023-04-19 15:25:44 +03:00
filipp
8107f669cd
Fix ReplaceWithRegister with single caret
2023-04-19 15:22:49 +03:00
filipp
2f55d92d83
Move more methods to engine
2023-04-19 15:07:06 +03:00
Alex Plate
f4be162aea
Fix issue with missing key-repeat dialog on new mac machine
2023-04-14 23:14:01 +03:00
Alex Plate
c64810509f
Fix(VIM-2909): Fix incorrect file detection while closing diff window
2023-04-13 15:58:56 +03:00
Alex Plate
a8f0145333
Fix(VIM-2912): Fix focus after :q
2023-04-12 11:01:03 +03:00
Stzx
26ed6670d5
Fix dispose
operation
2023-04-04 08:02:03 +03:00
Alex Plate
260bb47434
Different approach for getting editor during bookmarks initialization in order to get rid of slow operations exception
2023-04-01 09:01:19 +03:00
Alex Plate
9d7872e64e
Update initialization instructions
2023-03-31 17:39:06 +03:00
filipp
31bdc23b3c
Add support for variables in exists function
2023-03-31 17:37:57 +03:00
Matt Ellis
f803c0aa72
Add deterministic initialisation of options
2023-03-31 17:37:48 +03:00
Matt Ellis
531b0e3537
Provide an API to override option default value
...
This is specifically to support ideaput in 'clipboard'
2023-03-31 17:37:48 +03:00
Matt Ellis
18d52c2459
Make addListener more strongly typed
2023-03-31 17:37:48 +03:00
Matt Ellis
ee55cfd2dd
Improve handling of variance with setOptionValue
...
With the `out` modifier, the compiler won't report a problem trying to assign `VimInt` to an `Option<VimString>`
2023-03-31 17:37:48 +03:00
Matt Ellis
3ab5fc1120
Improve handling of variance
2023-03-31 17:37:48 +03:00
Matt Ellis
f7f60f5079
Fix warnings
2023-03-31 17:37:48 +03:00
Matt Ellis
b7dcff79ae
Improve modifyOptionValue
2023-03-31 17:37:48 +03:00
Matt Ellis
8f8c05e451
Remove string based option helper functions
2023-03-31 17:37:48 +03:00
Matt Ellis
af3ebe60f4
Use strongly typed options instead of constants
2023-03-31 17:37:48 +03:00
Matt Ellis
be64d24c00
Introduce strongly typed properties for options
2023-03-31 17:37:48 +03:00
Matt Ellis
8f04575efd
Extract IJ specific options to own file
2023-03-31 17:37:48 +03:00
Matt Ellis
4e1b8f3ec4
Extract IJ specific options to own class
2023-03-31 17:37:48 +03:00
Matt Ellis
88f0d2e532
Replace constants with strongly typed properties
2023-03-31 17:37:48 +03:00
Matt Ellis
e1bd790294
Add tests to ensure ideaput is added or required
2023-03-31 17:37:48 +03:00
Matt Ellis
d042ee3058
Move octopushandler option out of vim-engine
2023-03-31 17:37:48 +03:00
Alex Plate
24df3be8f1
Print more logging in case the vim shortcut is disabled
2023-03-31 17:13:25 +03:00
Alex Plate
0f07e4bdc3
Fix(VIM-2896): Correct ordering of handlers
2023-03-31 12:45:54 +03:00
filipp
f4068301ff
Add information about text range in original script for executable
2023-03-31 11:00:39 +03:00
Alex Plate
832c1c0be3
Revert "Update formatting"
...
This reverts commit bf0fba9c58
.
2023-03-27 11:32:59 +03:00
Alex Plate
bf0fba9c58
Update formatting
2023-03-27 08:27:13 +00:00
Alex Plate
0f8b67e6ce
Reformat files
2023-03-27 11:14:00 +03:00
Alex Plate
1e17db6d21
Add lorem ipsum tests to dictionary
2023-03-20 17:42:28 +02:00
Alex Plate
03bd4bbeed
Use Lorem Ipsum for tests
2023-03-20 17:31:31 +02:00
Alex Plate
f0505b8919
Fix(VIM-2433): Do not clear clipboard after inserting with ideaput
2023-03-17 13:26:13 +02:00
Alex Plate
db12fbe725
Get rid of test clipboard manager
2023-03-17 11:56:50 +02:00
Alex Plate
f88580eb88
Get rid of editor setup function
2023-03-17 10:21:10 +02:00
Alex Plate
dbfce696b9
Make some multicaret tests more stable
2023-03-16 18:05:39 +02:00
Alex Plate
bca5af9c23
Enable some tests with missing @Test annotation
2023-03-16 14:55:05 +02:00
Alex Plate
381abf7c40
Simple fix for the code
2023-03-16 13:36:09 +02:00
Alex Plate
1a2112daf9
Fix code compilation
2023-03-16 13:18:47 +02:00
Alex Plate
e30e194b91
Code cleanup
2023-03-16 13:05:37 +02:00
Alex Plate
edf9962abf
Introduce new mechanizm for options testing
2023-03-16 13:01:42 +02:00
Alex Plate
fd896c4af6
Pass testInfo to tear down
2023-03-16 10:52:53 +02:00
Alex Plate
0ae57af270
Do not track action ids for vim actions
2023-03-16 10:52:53 +02:00
Alex Plate
123c8ded11
Rename product function
2023-03-16 10:52:53 +02:00
Alex Plate
0510fe8530
Ktlint format
2023-03-16 10:52:52 +02:00
Alex Plate
3ebaf38486
Fix bug in nerdtree
2023-03-16 10:52:51 +02:00
filipp
84fc962bb0
ReplaceWithRegister
2023-03-15 18:42:22 +02:00
filipp
814bc20cf7
Add more VimScript tests
2023-03-15 14:20:33 +02:00
Alex Plate
6b76270d51
Reformat code
2023-03-15 07:59:25 +02:00
filipp
21162ba34e
Fix(VIM-2286): Set surround not working for me as expected
2023-03-14 15:24:11 +02:00
Alex Plate
153a36d4e9
Rename method
2023-03-14 14:08:39 +02:00
Alex Plate
9271ca082c
Migration of tests to JUnit 5
2023-03-14 14:05:35 +02:00
filipp
0fea44f735
Fix(VIM-1750): Surround with tag wrong position
2023-03-14 01:14:35 +02:00
filipp
b383706bfb
Fix(VIM-1746): IdeaVim Surround removes unwanted characters
2023-03-14 00:23:45 +02:00
filipp
a78f66fd36
Better multiple caret support for surround
2023-03-14 00:23:44 +02:00
filipp
48ec19d9bf
Fix(VIM-1551): Surround: line surround not working
2023-03-13 23:45:05 +02:00
filipp
f4198a0409
Add Oskar Persson to contributors list
2023-03-13 19:57:56 +02:00
filipp
9454ebcb35
Move some methods to engine
2023-03-13 19:34:14 +02:00
Alex Plate
441721b63f
Reformat source code
2023-03-13 11:44:02 +02:00
Alex Plate
01e4c80adb
Remove traces of the experimental API
2023-03-13 10:29:09 +02:00
Alex Plate
ae18ccb8cd
Add new word to the doc
2023-03-13 09:35:24 +02:00
Alex Plate
ad63afc242
Add more info to the issue report
2023-03-13 09:35:24 +02:00
Alex Plate
8210b122bc
Update version of kt lint and reformat files
2023-03-13 09:01:38 +02:00
Alex Plate
a0d3cf561b
Apply ktlint reformat
2023-03-13 08:43:52 +02:00
filipp
f385c3fa21
Fix(VIM-795): Ctrl-w + h doesn't alway work (window navigation to the left window)
2023-03-12 00:20:08 +02:00
filipp
7768c9147d
Fix(VIM-2819): Move command works incorrectly
2023-03-11 20:01:55 +02:00
filipp
3ddd4a1a58
Fix(VIM-2868): Pasting in visual mode with P should not replace yank register like when pasting with p
2023-03-10 23:30:35 +02:00
filipp
2369814092
Fix(VIM-2884): Moving multiple lines in visual mode is not working
2023-03-10 22:48:16 +02:00
filipp
4c7c3dba00
Fix(VIM-2733): vim-surround emulation interacts incorrectly with unmatched quotes on previous lines
2023-03-10 21:20:18 +02:00
Alex Plate
119975c313
Remove experimental API
2023-03-10 18:30:07 +02:00
Alex Plate
d5eaf85473
Better support for esc in octopus mode
2023-03-10 14:33:31 +02:00
Alex Plate
7f4c967a20
Fix compilation in tests
2023-03-10 13:34:19 +02:00
Alex Plate
66172c843d
Enable explicit api mode for IdeaVim
2023-03-10 13:20:29 +02:00
Alex Plate
88b3373e5c
Add option to enable octopus handler
2023-03-10 12:11:17 +02:00
Alex Plate
320d91d639
Add esc to octopus handler
2023-03-10 12:00:41 +02:00
Matt Ellis
c192f319d1
Simplify setting known options a little
2023-03-10 10:17:45 +02:00
Matt Ellis
097dfa06a6
Add a couple of convenience functions
2023-03-10 10:17:45 +02:00
Matt Ellis
90ca544d0a
Move getter helpers out of the options interface
...
The interface now has a simple setter and getter, as well as other functions for managing options. More friendly functions for getting and setting values are available as extension functions
2023-03-10 10:17:45 +02:00
Matt Ellis
2bc9640b88
Remove last of 'set' validation code
2023-03-10 10:17:45 +02:00
Matt Ellis
40ffddf5ef
Push toggle option validation into ':set' command
2023-03-10 10:17:45 +02:00
Matt Ellis
bd28c9da23
Push more ':set' command validation into command
2023-03-10 10:17:45 +02:00
Matt Ellis
11ef024779
Move ':set' command validation out of interface
...
Moves functions that require validation parameters to extension functions. Core interface should not require additional user facing paramter
2023-03-10 10:17:45 +02:00
Matt Ellis
40d9a201ea
Use bundle for exception messages
2023-03-10 10:17:45 +02:00
Matt Ellis
6e2ac21fab
Refactor getDefaultValue into property
2023-03-10 10:17:45 +02:00
Matt Ellis
7858cf57c6
Fix number operations for set command
2023-03-10 10:17:45 +02:00
Matt Ellis
91c8e7ebda
Rename getOptionByNameOrAbbrev
2023-03-10 10:17:45 +02:00
Matt Ellis
3c3014fdc6
Remove unused getAbbrevs function
2023-03-10 10:17:45 +02:00
Matt Ellis
d97e4c44ee
Rename "token" and remove default argument
2023-03-10 10:17:45 +02:00
Matt Ellis
1b88c514da
Move IjVimOptionGroup to correct package & rename
2023-03-10 10:17:45 +02:00
Matt Ellis
96c1094a61
Replace OptionService with VimOptionGroup
...
Leaves a skeleton, deprecated implementation of OptionService for existing external use by plugins
2023-03-10 10:17:45 +02:00
Matt Ellis
4232d3d8a2
Remove unused local options types
2023-03-10 10:17:45 +02:00
Matt Ellis
73b64c19ff
Move OptionValueAccessor to options package
2023-03-10 10:17:45 +02:00
Matt Ellis
15ccdb2055
Remove unnecessary getOptionServiceImpl
2023-03-10 10:17:45 +02:00
Matt Ellis
418067b077
Remove unused deprecated method
...
No external usages
2023-03-10 10:17:45 +02:00
Matt Ellis
88b29d1a14
Isolate and remove deprecated code
...
Moves ToggleOption to the proper package, leaving behind a skeleton class to keep ideavim-sneak and IdeaVim-EasyMotion happy.
Removes NumberOption and related number OptionsManager properties which are only used by which-key 0.6.2, because this plugin is already broken due to a separate API change. (The plugin is expecting the command trie to use `CommandPartNode<ActionBeanClass>`, but it's actually using `CommandPartNode<VimActionsInitiator>`). Also removes `ToggleOption.value`, used by which-key
2023-03-10 10:17:45 +02:00
Matt Ellis
b831aa8eca
Fix incorrect type parameter in cast
...
Cast succeeds, but only due to erasure
2023-03-10 10:17:45 +02:00
Matt Ellis
4540d216cb
Move StrictMode out of options package
2023-03-10 10:17:45 +02:00
Alex Plate
b345ebb366
Add test for escaped pairs
2023-03-10 09:42:49 +02:00
kawagh
9f5ed99b79
Add tests to secure % motion behavior with escaped parentheses
2023-03-10 09:37:46 +02:00
kawagh
1bd6defc84
Include escaped character in search target
2023-03-10 09:37:46 +02:00
Alex Plate
181d76ae7b
Improvements for octopus handler
2023-03-09 16:45:06 +02:00
filipp
72be9845fa
Fix(VIM-2885): "v:searchforward" does't work for IdeaVim
2023-03-09 15:56:34 +02:00
filipp
a6a4e50479
Add ` mark to jumplist
2023-03-09 15:29:13 +02:00
filipp
8303cafbc9
Fix(VIM-2244): nnoremap mapping doesn't work correctly
2023-03-09 14:01:35 +02:00
filipp
00901f60dc
Add get()
function
2023-03-08 20:06:43 +02:00
filipp
21aaf06a63
Add split function
2023-03-08 19:21:02 +02:00
Alex Plate
d81774c9a7
Add octopus connector that attaches IdeaVim to IJ using EditorActionHandlers
2023-03-08 13:56:31 +02:00
Alex Plate
2cb6fb041e
Use injector to create execution context
2023-03-08 13:06:36 +02:00
Alex Plate
b7d5ee9a75
Add doc why we can move to project activity at the moment
2023-03-08 12:59:48 +02:00
Alex Plate
24dd84b31c
Revert "Migrate to project activity"
...
This reverts commit fc7efd5484
.
2023-03-08 12:57:13 +02:00
Alex Plate
0e96819e86
Update creation of execution context
2023-03-08 11:35:01 +02:00
Alex Plate
897d393342
Add delay in UI test
2023-03-08 09:45:25 +02:00
Alex Plate
fc7efd5484
Migrate to project activity
2023-03-08 09:30:33 +02:00
Alex Plate
834695420d
Update UI tests
2023-03-08 09:18:45 +02:00
Alex Plate
c4025c0cc1
Set larget expand timeout for UI tests
2023-03-08 08:44:42 +02:00
Alex Plate
c80ef82f2a
Remove unnecessary curly braces
2023-03-08 08:34:11 +02:00
filipp
2c9aa8e30e
FIX(VIM-2881): ReplaceRegister does no longer worker with MultiCursor
2023-03-07 17:24:19 +02:00
Alex Plate
a3039e05d4
Fix(VIM-1735): Fix enabling mulple carets after line selection
2023-03-07 09:44:01 +02:00
Alex Plate
bed078213b
Fix some qodana issues
2023-03-07 09:44:01 +02:00
Alex Plate
b413c8e715
Update formatting
2023-03-05 00:20:18 +00:00
Alex Plate
5b636b2b5e
Perform code cleanup
2023-03-03 17:57:42 +02:00
Alex Plate
6db4874acd
Migrate NerdTree to new startup activity
2023-03-03 17:57:41 +02:00
Alex Plate
c5f8eaf1cf
Run ktlinter
2023-03-03 17:57:41 +02:00
Alex Plate
c9568b4301
Switch to AnActionWrapper instead of deprecated EmptyAction
2023-03-03 17:57:41 +02:00
Alex Plate
e1c712abb7
Include the original editor context into our custom editor context
...
Bug reference: https://youtrack.jetbrains.com/issue/VIM-2315/Bug-in-leader-key-handling-in-ideavim#focus=Comments-27-6918383.0-0
2023-03-03 17:57:41 +02:00
Dominic Palmer
dd69d0fad2
Prevent viewport displacement on undo
2023-03-01 17:41:59 +02:00