- Feature branches SHOULD be used for development work
- Feature branches MUST be rebased to master frequently (e.g., daily)
- Update API layer spec and plan to use feature branch
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- spec.md, plan.md: Change from feature branch to master (trunk-based)
- constitution.md: Expand branch selection guidelines
- Long-running features develop on master to avoid divergence
- Short-lived changes may use feature branches
- Planning must analyze scope to determine branch strategy
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add Principle VIII: Trunk-Based Development
- Master branch as trunk, always release-ready
- Prefer direct commits to master when safe
- Feature branches for long-running work
- Rebase-only integration (no merge commits)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Clarifications from /speckit.clarify session:
- External plugins: Use list from doc/IdeaVim Plugins.md, re-research
before migration to ensure completeness
- Deprecation: No harsh deprecation; approach defined after successful
external plugin migrations
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Defines requirements for IdeaVim extension API layer:
- Complete API module exposing all extension functionality
- Internal plugin migration to validate API design
- External plugin support with team-provided migration PRs
- API safety (state updates, editor context, test accessibility)
Based on prior Mia API analysis and design decisions:
- XML-based extension registration (not @VimPlugin annotation)
- Listener/event API deferred to future version
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Added principles:
- V. External Contributors: Recognizes community contributions
- VI. Documentation Goals: Commits to improving code documentation
- VII. Architecture Decision Records: ADRs tracked in YouTrack
Expanded:
- IV. Code Quality Standards: Added commit clarity requirements
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
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>