1grzyb1 and Grzybek
46823abcda
Fix timing in jump navigation split tests
2026-04-03 12:25:19 +02:00
1grzyb1 and Grzybek
a9c3277a51
Reset KeyHandler in rider esc lookup
2026-04-03 11:28:24 +02:00
1grzyb1 and Grzybek
6e6039c22a
Enable lookup listener only in rider/clion
2026-04-03 11:28:24 +02:00
1grzyb1 and Grzybek
b49e896b41
Return VimCaret fields back to IjVimCaret
...
There was compatibility issue with multicursor due to change of return type
2026-04-03 11:14:54 +02:00
1grzyb1 and Grzybek
122b066b75
Return KeyGroup from getKey
...
There was compatibility issue with multicursor due to change of return type
2026-04-03 11:14:54 +02:00
1grzyb1 and Grzybek
cb24ac2bfa
Restore public fields in IjVimEditor
...
Some fields where moved to factory and it resulted in compatybility issues with multicursor plugin
2026-04-03 11:14:54 +02:00
1grzyb1 and Grzybek
b14324a3e6
Catching initialization exceptions
...
When external plugin couldn't be initilized and throw exception it resulted in broken ideavim state
2026-04-03 08:37:20 +02:00
1grzyb1 and Grzybek
e40a839f52
Fix Escape not exiting insert mode after Ctrl+Space completion in Rider
...
Octopus is disabled for Rider (VIM-3815), and Rider's LookupSummaryInfo popup causes the popup manager to consume Escape before IdeaVim's action handlers can process it, so we now listen for explicit lookup cancellation via LookupListener to exit insert mode.
2026-04-02 12:27:25 +02:00
1grzyb1 and Grzybek
a45cc0891b
Don't extend octopus handler in VimEscForRiderHandler
...
Octopus is disabled for Rider so VimEscForRiderHandler couldn't properly handle esc
2026-04-02 11:02:08 +02:00
1grzyb1 and Grzybek
89bad651c0
Add missing frontend module decriptor
2026-04-02 11:02:04 +02:00
1grzyb1 and Grzybek
02130a87c9
Exit search with proper defocus and handle escape
2026-04-01 11:48:43 +02:00
1grzyb1 and Grzybek
40ba977e58
Add run configurations for all platforms
...
To simplify running ideavim with different platforms, this commit introduce run configurations for each platform both in monolith and split mode
2026-04-01 09:43:37 +02:00
1grzyb1 and Grzybek
21f304a560
VIM-4135 fix loading rider module
2026-04-01 09:32:32 +02:00
1grzyb1 and Grzybek
36e8bd4663
VIM-4016 Fix :edit when project has no source roots
...
When project couldn't properlly indexed and didn't have source roots it couldn't find file using edit command. So I've modified it to search using absolute paths in project
2026-03-31 09:48:34 +02:00
1grzyb1 and Grzybek
5a2d982ca5
VIM-3918 Ensure commentary is installed
2026-03-26 11:28:28 +01:00
1grzyb1 and Grzybek
527f612e75
VIM-3918 Run split mode tests using github actions
...
To make it work same way as ui tests I moved split mode tests to run on gh also
2026-03-26 09:51:15 +01:00
1grzyb1 and Grzybek
4f748e5a98
VIM-3918 Add TeamCity configuration for split-mode tests
...
Register SplitModeTests build type: daily schedule at 4am,
XLARGE agent, artifact collection including IDE logs.
2026-03-25 11:43:43 +01:00
1grzyb1 and Grzybek
c01a38d584
VIM-3918 Add split-mode tests for jump navigation
2026-03-25 11:43:43 +01:00
1grzyb1 and Grzybek
6c569d9cb3
VIM-3918 Add split-mode tests for file ops, marks, and bookmarks
2026-03-25 11:43:43 +01:00
1grzyb1 and Grzybek
c332b010f4
VIM-3918 Add split-mode tests for commentary, repeat, and format undo
2026-03-25 11:43:43 +01:00
1grzyb1 and Grzybek
01a7cb4865
VIM-3918 Infrastructure for running split mode tests
2026-03-25 11:43:43 +01:00
13fd228707
Fix TransactionTest project leak on CI
...
The mock services (VimMarkService, VimJumpService) were replaced via
MockTestCase.mockService() using @TestDisposable, which is disposed
AFTER @AfterEach. During super.tearDown(), editor disposal triggers
injector.markService.editorReleased(vimEditor), which still hits the
mock (service replacement not yet undone). This records a new Mockito
invocation on the EDT's MockingProgressImpl thread-local, holding
IjVimEditor → EditorImpl → ProjectImpl — causing the leaked project.
Fix: use a separate Disposable for service replacements and dispose it
before super.tearDown(), so editorReleased goes to the real service.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-24 13:48:44 +01:00
1grzyb1 and Grzybek
2b0485fb9c
Fix flaky Transaction test
2026-03-24 11:09:16 +01:00
1grzyb1 and Grzybek
65ae630623
Fix flaky Transaction test
2026-03-24 10:08:28 +01:00
1grzyb1 and Grzybek
8c89f8d4eb
Fix slow edt operation exception
2026-03-24 09:13:42 +01:00
1grzyb1 and Grzybek
d0ad4caf76
Move dependency support to the plugin.xml file
...
Otherwise, exception thrown from `DependencySupportBean.setPluginDescriptor()`.
2026-03-24 09:13:42 +01:00
1grzyb1 and Grzybek
35fe3f9cca
VIM-2821 Undo for repeating insertText in split mode
...
Insert text wasn't being properly grouped into single undo group when performing `.`
Now whole `.` is grouped into single undo entry
2026-03-24 08:56:46 +01:00
1grzyb1 and Grzybek
681a44da77
Fix IndexOutOfBoundsException in findBlock when caret is at end of file
...
The caret can legitimately be at position chars.length (end-of-file), which is valid in IntelliJ but not a valid character index. findBlock and getQuoteRangeNoPSI assumed the caret was always on a character, causing a crash when text objects like a) were used at EOF.
Return null early when pos is out of character index range, since there is no block or quote to match at that position.
2026-03-20 09:14:35 +01:00
1grzyb1 and Grzybek
a2246c966a
VIM-3473 Sync ideavim in remdev
...
ideavimrc is on local and it coused sync issues between editor and actuall file os it's better to refresh with document content
2026-03-19 13:39:42 +01:00
1grzyb1 and Grzybek
f3b67416cd
VIM-4134 Format with = action in split mode
...
Formatting was broken in split mode and also in monolith mode cursor position restoring didn't match vim actual behaviour. refactored it to work in same way as commenting works
2026-03-18 11:35:37 +01:00
1grzyb1 and Grzybek
729cf9be0f
Revert "Remove maxMapDepthReached mechanism from KeyHandler"
...
This reverts commit bddedb0080 .
2026-03-17 11:48:35 +01:00
1grzyb1 and Grzybek
06954e3759
Disable ^ in nvim tests
...
It was to complex to fix proper ^ mark positioning so leaving it for later covered by VIM-4154.
2026-03-17 11:48:35 +01:00
1grzyb1 and Grzybek
cbc8249a71
adjust visual marks position after deletion
2026-03-17 11:48:35 +01:00
1grzyb1 and Grzybek
20cb0afa5d
VIM-4134 assert editor state on EDT
2026-03-17 11:48:35 +01:00
1grzyb1 and Grzybek
2d63251b29
VIM-4134 Check for write lock before removing bookmark
2026-03-17 11:48:35 +01:00
1grzyb1 and Grzybek
34d580898c
VIM-4134 Fix undo in commentary
...
Commentary was doing visual selection on frontend and actual commenting
on backend which resulted in strange undo behaviour.
Moving whole commenting logic fixes all undo issues by making all actions single undo group.
2026-03-16 14:24:30 +01:00
cbc446aea7
Fix focus in gi ga nerdtree
...
Add focusNew parameter to splitWindow to allow NERDTree preview
mappings (gs, gi, ga) to keep focus on the tree.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-16 14:24:30 +01:00
1grzyb1 and Grzybek
839446b7ed
VIM-4134 Load frontend classes only in frontend module
2026-03-16 14:24:30 +01:00
1grzyb1 and Grzybek
48dfa01234
VIM-4134 Remove frontend split module
...
All operations uses rpc interface right now and on backend we detect if we are in disptch thread if so we won't use EDT.
2026-03-16 14:24:30 +01:00
1grzyb1 and Grzybek
eb4a261984
VIM-4134 Synchronize idea jump through topic
2026-03-16 14:24:30 +01:00
1grzyb1 and Grzybek
1f3e7e701e
VIM-4134 replace path-based file identification with VirtualFileId and EditorId
2026-03-16 14:24:30 +01:00
1grzyb1 and Grzybek
230f816605
VIM-4134 migrate to ProjectId for project resolution
2026-03-16 14:24:30 +01:00
cf8e014053
VIM-4134 attach frontend debugger
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-16 14:24:30 +01:00
cb3a11e785
VIM-4134 update tests for new module structure
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-16 14:24:30 +01:00
0d396238f9
VIM-4134 add frontend-split module with RPC clients
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-16 14:24:30 +01:00
bef0b4c32a
VIM-4134 move frontend code to main source set
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-16 14:24:30 +01:00
3f12ecfc1a
VIM-4134 add backend module with service implementations
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-16 14:24:30 +01:00
325ccc3668
VIM-4134 add common module with shared services, RPC interfaces, and resources
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-16 14:24:30 +01:00
b3ad98ca49
VIM-4134 add vim-engine API changes for split architecture
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-16 14:24:30 +01:00
9a46a41e40
VIM-4134 add module skeleton and build configuration
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-16 14:24:30 +01:00
56d05115cc
Code style: classloader lookup, import ordering, cleanup
...
- Use this.javaClass.classLoader instead of object {}.javaClass.classLoader
- Alphabetize imports in VimInjector.kt
- Remove outdated TODO in VimMotionGroupBase.kt
- Fix missing trailing newline in VimPsiService.kt
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-16 14:24:30 +01:00
bddedb0080
Remove maxMapDepthReached mechanism from KeyHandler
...
The field was used to break out of the mapping replay loop when max
recursion depth was hit. This is unnecessary since handleKey already
returns early on max depth, stopping further processing.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-16 14:24:30 +01:00
d44bf3aa02
Update copyright years to 2026
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-16 14:24:30 +01:00
1grzyb1 and Grzybek
f9cbbad13e
Break in case of maximum recursion depth
2026-02-26 08:21:34 +01:00
1grzyb1 and Grzybek
0a962153c9
VIM-4134 migration to plugin model v2
2026-02-18 11:08:29 +01:00
1grzyb1 and Grzybek
15674af9e0
VIM-3948 add ToolWindowNavEverywhere extension to VimEverywhere plugin
...
This adds support for <C-W> navigation for non-editor windows.
IdeaVim doesn't read keystrokes outside the editor, so we need to create custom dispatcher that will handle does shortcuts in those scenarios.
This feature is enabled alongside `VimEverywhere`.
2026-02-17 15:01:17 +01:00
1grzyb1 and Grzybek
c3925abeaf
VIM-4134 test to forbid java.io.File usage
2026-02-17 15:01:02 +01:00
1grzyb1 and Grzybek
29067706ec
VIM-4134 Replace java.io.File with java.nio.file.Path
2026-02-17 15:01:02 +01:00
1grzyb1 and Grzybek
a250369735
VIM-3948 rename vimhints plugin to VimEverywhere
2026-02-11 15:58:34 +01:00
1grzyb1 and Grzybek
f22f973b0c
VIM-3948 include NerdTreeEverywhere extension in vimhints
2026-02-11 15:58:34 +01:00
1grzyb1 and Grzybek
d9c745fd8e
VIM-4120 handle ':' in output panel
2026-02-11 12:58:59 +01:00
1grzyb1 and Grzybek
9f0ae27440
VIM-4120 close output panel on active editor change
2026-02-11 12:58:59 +01:00
1grzyb1 and Grzybek
6591be3617
VIM-4120 remove isPanelActive from VimOutputPanel
2026-02-11 12:58:59 +01:00
1grzyb1 and Grzybek
410ac0ff39
VIM-4120 close current output panel when executing command
2026-02-11 12:58:59 +01:00
1grzyb1 and Grzybek
d382e0bc26
VIM-4120 single addText method
2026-02-11 12:58:59 +01:00
1grzyb1 and Grzybek
d318b935fc
VIM-4120 single output method with default message type
2026-02-11 12:58:59 +01:00
1grzyb1 and Grzybek
c91d43c45e
VIM-4120 Use weak reference for active OutputPanel to avoid project leak
2026-02-11 12:58:59 +01:00
1grzyb1 and Grzybek
622163194d
VIM-4120 removed awt color reference in engine
2026-02-11 12:58:59 +01:00
1grzyb1 and Grzybek
34f16f4daf
VIM-4120 Rename isActive to isVisible to not leak IJ impl details
2026-02-11 12:58:59 +01:00
1grzyb1 and Grzybek
44b0e24586
VIM-4120 Fix label in multiline output panel
...
During first echo with multiline it showed -- MORE -- instead of asking to press enter
2026-02-11 12:58:59 +01:00
1grzyb1 and Grzybek
c1f7a6b3a7
VIM-4120 Pass enter press back to editor
2026-02-11 12:58:59 +01:00
1grzyb1 and Grzybek
9848aab71a
VIM-4120 adjust arrows key handling
...
in single-line mode we just passed arrow keys back to the editor
in multiline mode they are used to scroll in output panel unless we are already at end, then it's passed back to editor
2026-02-11 12:58:59 +01:00
1grzyb1 and Grzybek
bcc8d1b525
VIM-4120 Remove caret from OutputPanel
2026-02-11 12:58:59 +01:00
1grzyb1 and Grzybek
5510a20654
VIM-4120 Pass eny keypress back to editor in single line output
2026-02-11 12:58:59 +01:00
1grzyb1 and Grzybek
bec8daa6ab
VIM-4120 Use showErrorMessage for displaying errors in red
2026-02-11 12:58:59 +01:00
1grzyb1 and Grzybek
5e20bbf14e
VIM-4120 display multiple lines in OutputPanel with different styles
2026-02-11 12:58:59 +01:00
1grzyb1 and Grzybek
6ecfb3e92e
VIM-4120 Add missing VimHintsExtension class
2026-02-11 08:51:10 +01:00
1grzyb1 and Grzybek
ce6115ee90
VIM-3948 Fix set command tests after removing vimhints option
2026-02-10 12:02:34 +01:00
1grzyb1 and Grzybek
f1355c3305
VIM-3948 Enable vimhints through 'Plug'
...
As vimhints are not part of neovim, it makes more sense to keep it as a plugin, not as an option
2026-02-10 12:02:34 +01:00
1grzyb1 and Grzybek
3ffd680650
VIM-3948 don't traverse not visible components
...
We don't want to apply labels for components that are inside not visible components. For example, setting has `SettingsEditor` with multiple `SettingWrapper` for each selected tab but only one is visible at one time. So we don't want to apply labels on not visible tabs
2026-02-10 09:06:06 +01:00
1grzyb1 and Grzybek
1588a9e15b
VIM-3948 Traverse vertical panes in ConfigurableEditor
...
Vertical planes in settings windows has a lot of elements that we may want to click using hints so we traverse inside them
2026-02-10 08:08:14 +01:00
1grzyb1 and Grzybek
72f0ef1602
VIM-3948 Traverse inside horizontal panes
...
Trees are skipped as they contain a lot of elements and would generate too many hints.
A similar situation is with vertical scroll panes (e.g. editors). but not horizontal.
This is a heuristic that I observed that horizontal scroll doesn't have many elements and doesn't have any keyboard navigation.
2026-02-10 08:08:14 +01:00
1grzyb1 and Grzybek
6fc6e1bfc7
VIM-3948 Handle status bar items as individual components
...
We are skipping Tree and scroll panes inside status bar as they would be a performance problem.
Exception is when we are inside the status bar where we want to apply hints on individual components.
2026-02-10 08:08:14 +01:00
1grzyb1 and Grzybek
4256d17282
VIM-3948 Don't apply hints on each commit
...
To achieve that for each scroll pane we apply single hint and navigation inside is handled by keys designed for that panel
2026-02-09 11:58:05 +01:00
1grzyb1 and Grzybek
c1ce2d57fd
VIM-3948 make hint test skipped in headless env
2026-02-09 11:37:13 +01:00
1grzyb1 and Grzybek
e4806ef6d6
VIM-3948 position label based only on visible part of Tree
...
When Tree was expanded and we positioned label on center it could not be rendered as center of tree was outside of view. To fix that we calculate label position based only on visible part of Tree.
2026-02-09 11:37:13 +01:00
1grzyb1 and Grzybek
feed3a0d82
VIM-3948 Simplify hint generation code
2026-02-09 11:37:13 +01:00
1grzyb1 and Grzybek
6ab9deceb3
VIM-3948 Add tests for Hint generation
2026-02-09 11:37:13 +01:00
1grzyb1 and Grzybek
402afae110
VIM-3948 Add support for ContentTabLabel in hint generation
2026-02-09 08:46:35 +01:00
1grzyb1 and Grzybek
30953c8ac4
VIM-3948 Don't crop hint labels
...
Make sure that labels are not cropped and are inside ide window
2026-02-09 08:25:22 +01:00
1grzyb1 and Grzybek
cf50dddcc1
VIM-3948 Skip scroll panes to avoid duplicated labels on editors
2026-02-09 08:25:22 +01:00
1grzyb1 and Grzybek
55ec7c2aee
VIM-3948 Add support for JScrollPane and center-aligned hint labels in HintGenerator
...
For Editor windows it makes more sense to show labels centered
2026-02-09 08:25:22 +01:00
1grzyb1 and Grzybek
57df4d6f16
VIM-3948 Fix applying Labels on VimModeWidget
...
By default, IntelliJ disables actions while a modal dialog is open.
We override isEnabledInModalContext flag so hints can target components inside popups and dialogs (e.g., IdeaVim settings).
2026-02-06 13:59:33 +01:00
1grzyb1 and Alex Plãte
2566e2a222
VIM-4218 Add RoundedHintLabel for improved hint rendering
2026-02-06 14:38:06 +02:00
1grzyb1 and Alex Plãte
6aa1a68c9d
VIM-3948 Fix nullability issue in hint generation
2026-02-06 13:54:22 +02:00
1grzyb1 and Alex Plãte
4b3271d4f9
VIM-3948 document vim hints
2026-02-06 13:51:54 +02:00
1grzyb1 and Alex Plãte
0f2ce4bcc5
VIM-4125 Update shortcut for Toggle Hints action to ctrl + BACK_SLASH
2026-02-05 13:42:22 +02:00
1grzyb1 and Alex Plãte
f4c84607cb
VIM-3948 Improve visibility checks for hint generation
2026-02-03 11:15:34 +02:00
1grzyb1 and Alex Plãte
3f43cf6aa4
VIM-4120 Fix isAtEnd offset logic
2026-02-03 11:09:38 +02:00
1grzyb1 and Alex Plãte
fa6d4a39a9
VIM-4120 Remove ExOutputModel and transition to a unified OutputPanel
2026-02-03 11:09:38 +02:00