Commit Graph
100 Commits
Author SHA1 Message Date
1grzyb1andGrzybek 4dec9a95a4 VIM-186 Support nested comments 2026-04-23 13:57:28 +02:00
1grzyb1andGrzybek cd5c8e9e17 VIM-186 Use vim license for code wrapper 2026-04-23 13:57:28 +02:00
1grzyb1andGrzybek 64e110f27a VIM-186 Add comment-aware code wrapping for gq/gw 2026-04-23 13:57:28 +02:00
1grzyb1andGrzybek eaf39234b2 VIM-1158 Add gw to reformat code with preserving the cursor position 2026-04-23 13:57:28 +02:00
1grzyb1andGrzybek 607920d262 VIM-4207 Add support for update command 2026-04-22 09:07:58 +02:00
1grzyb1andGrzybek ab7ca0e32e VIM-4202 Don't intercept all <S-Tab>
When <S-Tab> was in VIM_ONLY_EDITOR_KEYS users couldn't override it for other intelij actions
2026-04-21 11:05:19 +02:00
1grzyb1andGrzybek 7ec1e4c58d VIM-4202 Fix state after commentary action
in split mode/clion/ rider, after the comment action runs on rpc, it happens after removing selection. To fix that, we execute handler directly in synchronous way
2026-04-21 10:21:29 +02:00
1grzyb1andGrzybek 558d670f4e VIM-4139 Compute nesting depth for fold regions 2026-04-21 08:21:47 +02:00
1grzyb1andGrzybek 0df627ab19 VIM-1693 Normalize BufRead and BufWrite aliases at registration 2026-04-20 13:40:32 +02:00
1grzyb1andGrzybek 7546b0737d VIM-1693 Fix clearAuGroup on CopyOnWriteArrayList 2026-04-20 13:40:32 +02:00
1grzyb1andGrzybek d58a68df78 VIM-1693 Bound BufNewFile tracker and clear on disable 2026-04-20 13:40:32 +02:00
1grzyb1andGrzybek aedf114576 VIM-1693 Run write events against main editor 2026-04-20 13:40:32 +02:00
1grzyb1andGrzybek 9decc7095b VIM-1693 Document autocmd 2026-04-20 13:40:32 +02:00
1grzyb1andGrzybek 4edc23006e VIM-1693 BufWrite events support 2026-04-20 13:40:32 +02:00
1grzyb1andGrzybek 6e21fbd61a VIM-1693 BufNewFile event support 2026-04-20 13:40:32 +02:00
1grzyb1andGrzybek 1be8183399 VIM-1693 BufRead event support 2026-04-20 13:40:32 +02:00
1grzyb1andGrzybek f7718b6dd8 VIM-1693 FileType event support 2026-04-20 13:40:32 +02:00
1grzyb1andGrzybek 5cfd1d1fe6 VIM-1693 Focus Gained Lost support 2026-04-20 13:40:32 +02:00
1grzyb1andGrzybek 66ed07e6f5 VIM-1693 WinLeave WinEnter support 2026-04-20 13:40:32 +02:00
1grzyb1andGrzybek 720d8fab40 VIM-1693 fix buf enter leave handling 2026-04-20 13:40:32 +02:00
1grzyb1andGrzybek 6c803e3154 VIM-1693 File pattern matching in autocmd 2026-04-20 13:40:32 +02:00
1grzyb1andGrzybek 38c74d6b9d VIM-1693 Add support for multiple autocmd events 2026-04-20 13:40:32 +02:00
1grzyb1andGrzybek 55a451ac2f VIM-1693 Refactor Insert Leave/Enter to work on listeners 2026-04-20 13:40:32 +02:00
1grzyb1andGrzybek 29a02a102b VIM-1693 Use thread-safe collections for autocmd event handling 2026-04-20 13:40:32 +02:00
bebce05950 VIM-1693 Support augroup
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-20 13:40:32 +02:00
f86ba678e5 VIM-1693 Fix autocmd grammar
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-20 13:40:32 +02:00
64f2d5b628 VIM-1693 Support for Buffer events
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-20 13:40:32 +02:00
98abfedb98 VIM-1693 Fix autocmd in test injector
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-20 13:40:32 +02:00
1dcb386b92 VIM-1693 Basic autocmd implementation
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-20 13:40:32 +02:00
1grzyb1andGrzybek d085b3ffce VIM-4112 collapse restored carets after undo of block-visual edit
After undoing a block-visual edit (<C-V>…x, <C-V>…c, <C-V>…I), IntelliJ restored the pre-edit multi-caret CaretState even though Vim is in single-cursor normal mode, leaving stray native carets. UndoRedoHelper now detects the 1 -> N caret jump across undo - a signal unique to block-visual since it's the only flow that collapses multi-carets on exit - and collapses back to a single caret at the block's top-left, matching Vim's convention
2026-04-20 11:41:24 +02:00
499069177c VIM-4195 Remove legacy $APP_CONFIG$ macro from @Storage annotations
The $APP_CONFIG$ path macro in @Storage annotations is rejected by
SecurityHelper.validateSettingsFile in remote dev / split mode. The
platform resolves app-level storage to the config directory automatically,
so the bare filename is sufficient.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-16 11:45:17 +02:00
1grzyb1andGrzybek f5afa628d9 Make nerdtree work without calling backend actions
Nerdtree was using actions that went through RPC whihch resulted in poor performance in split mode
2026-04-15 12:53:42 +02:00
70066dffc1 Update changelog: gw command, search panel fixes, range errors, visual mode off-EDT
Combines changelog entries from PRs #1680, #1670, and #1661:
- VIM-1158: Added gw command
- VIM-4176: Fixed search output panel race condition
- VIM-4175: Fixed search "not found" display
- Fixed \/, \?, \& range errors (E35/E33)
- VIM-4113: Fixed visual mode commands off-EDT

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-15 10:42:41 +02:00
1grzyb1andGrzybek 75b4d3fce3 VIM-4172 Disable ideavim in Python Console 2026-04-15 10:17:46 +02:00
1grzyb1andGrzybek 08aea2b202 Split mode test for simple undo insert 2026-04-15 10:14:13 +02:00
1grzyb1andGrzybek f5fdc217be Restore old VimPLugin method signatures
During splitting plugin arhcitecture, we changed method signature, making them not backward compatible.
2026-04-15 10:04:58 +02:00
1grzyb1andGrzybek 5416d1505f VIM-4172 Add test for visual selection commands 2026-04-15 09:52:06 +02:00
01789c6a7b VIM-3727 Fix Python console Enter and arrow keys in split mode
In split mode, VimShortcutKeyAction and ToolWindowNavDispatcher claimed Enter/arrow key shortcuts on the Python console editor component, preventing the thin client from creating backend delegating actions for Console.Execute and history navigation.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-15 09:39:33 +02:00
1grzyb1andGrzybek ebc09ddab1 VIM-3727 Add debug pycharm in splitmode run configuration 2026-04-15 09:39:33 +02:00
1grzyb1andGrzybek e7722bef61 VIM-268 scroll through results using arrow keys 2026-04-14 11:33:32 +02:00
1grzyb1andGrzybek d28889fc7b VIM-268 edit command autocomplete 2026-04-14 11:33:32 +02:00
1grzyb1andGrzybek 9251a83031 VIM-1158 Refactor gq tests: use multiline strings and class-level annotation 2026-04-13 10:29:20 +02:00
1grzyb1andGrzybek 3793458d64 VIM-1158 Add gw to reformat code with preserving the cursor position 2026-04-13 10:29:20 +02:00
1grzyb1andGrzybek 34196bc0dd Disable split mode tests
Agent doesn't have Xvfb will enable when it will have
2026-04-10 13:24:04 +02:00
1grzyb1andGrzybek 2a7d23586a Install Xvfb in TC 2026-04-10 11:16:16 +02:00
1grzyb1andGrzybek d47a22e96f Disable Xvfb access control 2026-04-10 10:56:05 +02:00
1grzyb1andGrzybek f4c6e04558 Wait for display to be ready in split mode tests 2026-04-10 10:27:52 +02:00
1grzyb1andGrzybek c82539e379 Remove manual DriverRunner registration 2026-04-10 09:59:25 +02:00
1grzyb1andGrzybek 11f1745c63 VIM-4175 Don't insert repeat when not needed
In split mode calling insertRepeatTExt each time over rpc was adding unessesery overhead
2026-04-10 09:09:36 +02:00
1grzyb1andGrzybek 581001f199 VIM-4175 Don't refocus editor after close output panel 2026-04-10 08:47:31 +02:00
1grzyb1andGrzybek 9f33320e66 Move split mode tests to team city 2026-04-09 14:21:18 +02:00
1grzyb1andGrzybek 5dc5aaa0d8 VIM-4176 Don't focus single line output
Scroll was causing clearing output panel which resulted in race conditions
2026-04-09 14:06:05 +02:00
1grzyb1andGrzybek 0d8d215946 Clear gradle caches in random order tests
They were keeping old class descriptors
2026-04-09 12:26:32 +02:00
1grzyb1andGrzybek c9234b82f5 VIM-4175 Clear output panel before showing error
Split showing error message into two separate methods. Once that appends the error to the current output panel and the second that clears the output panel before showing the error. So when no search results are found we don;t show hit enter message,
2026-04-09 11:45:56 +02:00
1grzyb1andGrzybek b9bd523648 Fix visual selection commands failing off-EDT due to nested write-in-read action
Commands entered from Visual mode (e.g. :'<,'>sort) fail because Command.execute wraps selection cleanup in runReadAction, but exitVisualMode nests a runWriteAction inside it, which deadlocks off-EDT. Remove the unnecessary runWriteAction from exitVisualMode since removeSelection only requires EDT, not a write lock.
2026-04-08 13:48:33 +02:00
1grzyb1andGrzybek 4f5b793642 Bump ideaVersion to 2026.1 2026-04-08 13:48:33 +02:00
1grzyb1andGrzybek 2fdf52d305 Split double undo into two singles once 2026-04-08 09:24:14 +02:00
1grzyb1andGrzybek 56103c990b Increase compatibility pipeline timeout to 180 minutes 2026-04-08 08:50:47 +02:00
1grzyb1andGrzybek 1e489e2c14 Wait for ideavim to attatch to editor 2026-04-08 08:44:16 +02:00
1grzyb1andGrzybek 06d877415d Make go back shortcut platform-specific 2026-04-07 12:52:07 +02:00
706ac76b5e Update changelog: aggregate all pending changelog entries
Combines entries from 10 individual changelog PRs (#1593, #1604, #1607,
#1612, #1614, #1618, #1625, #1637, #1644, #1648) into a single update.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 11:13:16 +02:00
1grzyb1andGrzybek 98934ff7bf Clean Gradle before running tests
It should ensure no stale classes survive between builds
2026-04-07 11:09:05 +02:00
1grzyb1andGrzybek c26658d27d Ensure editor is ready before proceeding with split tests 2026-04-07 10:52:41 +02:00
1grzyb1andGrzybek f6fb0fbea6 Disable gradle cache for testing build type
It was preserving old class descriptors
2026-04-07 10:36:31 +02:00
1grzyb1andGrzybek 46a48b03a1 Return ChangeGroup from VimPLugin to make it compatibile 2026-04-07 08:55:25 +02:00
1grzyb1andGrzybek 46823abcda Fix timing in jump navigation split tests 2026-04-03 12:25:19 +02:00
1grzyb1andGrzybek a9c3277a51 Reset KeyHandler in rider esc lookup 2026-04-03 11:28:24 +02:00
1grzyb1andGrzybek 6e6039c22a Enable lookup listener only in rider/clion 2026-04-03 11:28:24 +02:00
1grzyb1andGrzybek 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
1grzyb1andGrzybek 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
1grzyb1andGrzybek 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
1grzyb1andGrzybek 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
1grzyb1andGrzybek 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
1grzyb1andGrzybek 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
1grzyb1andGrzybek 89bad651c0 Add missing frontend module decriptor 2026-04-02 11:02:04 +02:00
1grzyb1andGrzybek 02130a87c9 Exit search with proper defocus and handle escape 2026-04-01 11:48:43 +02:00
1grzyb1andGrzybek 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
1grzyb1andGrzybek 21f304a560 VIM-4135 fix loading rider module 2026-04-01 09:32:32 +02:00
1grzyb1andGrzybek 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
1grzyb1andGrzybek 5a2d982ca5 VIM-3918 Ensure commentary is installed 2026-03-26 11:28:28 +01:00
1grzyb1andGrzybek 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
1grzyb1andGrzybek 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
1grzyb1andGrzybek c01a38d584 VIM-3918 Add split-mode tests for jump navigation 2026-03-25 11:43:43 +01:00
1grzyb1andGrzybek 6c569d9cb3 VIM-3918 Add split-mode tests for file ops, marks, and bookmarks 2026-03-25 11:43:43 +01:00
1grzyb1andGrzybek c332b010f4 VIM-3918 Add split-mode tests for commentary, repeat, and format undo 2026-03-25 11:43:43 +01:00
1grzyb1andGrzybek 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
1grzyb1andGrzybek 2b0485fb9c Fix flaky Transaction test 2026-03-24 11:09:16 +01:00
1grzyb1andGrzybek 65ae630623 Fix flaky Transaction test 2026-03-24 10:08:28 +01:00
1grzyb1andGrzybek 8c89f8d4eb Fix slow edt operation exception 2026-03-24 09:13:42 +01:00
1grzyb1andGrzybek d0ad4caf76 Move dependency support to the plugin.xml file
Otherwise, exception thrown from `DependencySupportBean.setPluginDescriptor()`.
2026-03-24 09:13:42 +01:00
1grzyb1andGrzybek 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
1grzyb1andGrzybek 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
1grzyb1andGrzybek 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
1grzyb1andGrzybek 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
1grzyb1andGrzybek 729cf9be0f Revert "Remove maxMapDepthReached mechanism from KeyHandler"
This reverts commit bddedb0080.
2026-03-17 11:48:35 +01:00
1grzyb1andGrzybek 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
1grzyb1andGrzybek cbc8249a71 adjust visual marks position after deletion 2026-03-17 11:48:35 +01:00
1grzyb1andGrzybek 20cb0afa5d VIM-4134 assert editor state on EDT 2026-03-17 11:48:35 +01:00
1grzyb1andGrzybek 2d63251b29 VIM-4134 Check for write lock before removing bookmark 2026-03-17 11:48:35 +01:00