Added changelog entries for VIM-566 feature that adds support for zr
(increase fold level) and zm (decrease fold level) commands.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Added entry for VIM-566 feature that adds support for zA command
to toggle folds recursively.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add general guidance for fixing flaky UI tests:
- Flaky = race condition, not timeout issue
- Wait for unique state identifiers, not shared elements
- Understand framework built-in waits (findText already waits)
- Trace causality backwards to find correct wait condition
- State transitions have intermediate states
These principles should improve autofix success rate for UI test failures.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Wait for "Action id copied" confirmation notification after clicking
"Copy Action Id". This ensures the clipboard was actually updated before
proceeding to paste, fixing the race condition where the test would
paste stale clipboard data.
The old wait for "Stop Tracking" was unreliable because that button
exists in both the old and new notifications during the transition.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Documents how to use the new IdeaVim extension API and how to
migrate existing extensions from VimExtensionFacade to the new
@VimPlugin annotation-based API.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace VimExtensionFacade.putExtensionHandlerMapping with the new
api.textObjects { register(...) } pattern. This simplifies the
extension by removing the ArgumentHandler class and its inner
ArgumentTextObjectHandler.
Key changes:
- Add LineInfoProvider interface to decouple ArgBoundsFinder from Document
- Create findArgumentRange extension function on VimApi
- Use api.textObjects { } for registering ia/aa text objects
- Remove unused imports and old handler code
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add tests covering: change outer argument, single argument handling,
whitespace handling, cursor positioning, nested function calls,
quoted strings, multiline arguments, and various bracket types.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
UI tests were being skipped due to Gradle build cache restoring
previous results. This defeats the purpose of stability testing.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Claude AI should not be listed as a contributor. This removes the
entry and adds an exclusion to prevent it from being re-added.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Documents the approach for handling duplicate issues including:
- Choosing primary issues based on age and activity
- Protecting customer-tagged issues from duplication
- Avoiding duplication into closed issues
- Consolidating duplicates to a single primary
- Leaving courteous comments for reporters
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Document that each CI run should make only one logical change
to ensure granular, reviewable PRs. Multiple annotations can
only be grouped if they share the same reason and fix pattern.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Install Neovim in workflows that run tests:
- testsMaintenance.yml: deals with @TestWithoutNeovim annotations
- codebaseMaintenance.yml: can run gradle tests
- youtrackAutoAnalysis.yml: uses TDD for bug fixes and features
Also add guidance in testsMaintenance to verify actual Neovim behavior
when working with skip reasons, and allow nvim/echo bash commands.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Print "NEOVIM TESTING ENABLED" message when running tests with -Dnvim
flag so AI can verify Neovim testing is actually active.
Also fix skill documentation to use correct -Dnvim flag.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Similar to DIFFERENT, UNCLEAR is too vague and should be replaced
with a more specific reason after investigation.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Document the process for tests-maintenance skill:
1. Try removing annotation and running with Neovim first
2. If test passes, remove the outdated annotation
3. If test fails, replace with a more specific reason
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Change `test negative lookbehind regression` to use IDEAVIM_API_USED
(test uses internal search() helper that calls VimPlugin API directly)
- Remove outdated TestWithoutNeovim annotations from 5 tests that now
pass with Neovim: smartcase/ignorecase search tests
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Added changelog entries for:
- New VimScript functions (20+ List/Dictionary/String functions)
- High CPU usage fix while showing command line
- String/Number comparison fix in VimScript
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add a new package for functions that apply to both List and Dictionary, as well as some String functions (where a String is treated like a collection of characters). Trying to group some functions that shouldn't just sit at top level