Commit Graph
10430 Commits
Author SHA1 Message Date
IdeaVim Bot f6e6f04004 Add 1grzyb1 to contributors list 2026-01-22 09:05:22 +00:00
dependabot[bot] c1944f1369 Bump org.mockito.kotlin:mockito-kotlin from 6.1.0 to 6.2.2
Bumps [org.mockito.kotlin:mockito-kotlin](https://github.com/mockito/mockito-kotlin) from 6.1.0 to 6.2.2.
- [Release notes](https://github.com/mockito/mockito-kotlin/releases)
- [Commits](https://github.com/mockito/mockito-kotlin/compare/v6.1.0...v6.2.2)

---
updated-dependencies:
- dependency-name: org.mockito.kotlin:mockito-kotlin
  dependency-version: 6.2.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-21 15:35:02 +00:00
Grzybek 0264e1cd75 VIM-566 Add zA toggle folding support 2026-01-21 16:48:36 +02:00
Alex PlateandClaude Opus 4.5 da4d0bdee3 Add extensions-api-migration skill for Claude Code
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>
2026-01-16 18:44:44 +02:00
Alex PlateandClaude Opus 4.5 86bf54d84c Migrate argtextobj extension to new textObjects API
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>
2026-01-16 18:28:45 +02:00
Alex Plate 9decb6152d Add sync.lock to gitignore 2026-01-16 16:29:17 +02:00
Alex PlateandClaude Opus 4.5 f49d36fa02 Add comprehensive tests for argtextobj extension
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>
2026-01-16 15:54:00 +02:00
Alex Plate eed102d035 Convert VimArgTextObjExtension to kotlin 2026-01-16 15:48:33 +02:00
Alex Plate 38f428dec3 Rename .java to .kt 2026-01-16 15:48:32 +02:00
Alex PlateandClaude Opus 4.5 ed0f74d85c Run UI tests every 5 minutes to test stability
Testing the UI tests stability with more frequent runs.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 15:08:59 +02:00
Alex PlateandClaude Opus 4.5 3627d62175 Disable build cache for PyCharm and Rider UI tests
Same fix as ui-ij-tests - ensures tests actually run instead of
using cached results.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 15:03:36 +02:00
Alex PlateandClaude Opus 4.5 add0c5b327 Run UI tests every 30 minutes instead of daily
Increase frequency to verify test stability.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 14:55:17 +02:00
Alex PlateandClaude Opus 4.5 0312531361 Disable build cache for UI tests to ensure they always run
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>
2026-01-16 14:55:00 +02:00
Alex PlateandClaude Opus 4.5 41c462c975 Remove Claude from contributors and exclude from authors workflow
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>
2026-01-16 13:56:41 +02:00
Alex PlateandClaude Opus 4.5 6a2429c849 Add issues-deduplication skill for YouTrack issue management
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>
2026-01-16 13:53:58 +02:00
IdeaVim Bot a359b68de3 Add claude to contributors list 2026-01-13 09:03:28 +00:00
Alex PlateandClaude Opus 4.5 9cd28d4721 Add change granularity guidelines to tests-maintenance skill
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>
2026-01-13 09:31:42 +02:00
Alex Plate 79d36c1edc Ignore last-touched file in beads workspace 2026-01-13 07:33:05 +02:00
Alex Plate e407d9ebad Add beads workflow tracking 2026-01-13 07:18:38 +02:00
Alex PlateandClaude Opus 4.5 275475755d Add --console=plain note for gradle tasks in CLAUDE.md
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 07:09:37 +02:00
Alex PlateandClaude Opus 4.5 9ef7ce1d36 Add Neovim installation to Claude Code workflows
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>
2026-01-13 07:05:27 +02:00
Claude 381dc2684b Remove unused SkipNeovimReason.CMD
This enum value had no documentation, a vague name, and was not used
anywhere in the codebase.
2026-01-13 06:43:22 +02:00
Alex PlateandClaude Opus 4.5 26154061f7 Add clear output when Neovim testing is enabled
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>
2026-01-12 14:04:43 +02:00
Alex PlateandClaude Opus 4.5 fa2b54bc2d Deprecate SkipNeovimReason.UNCLEAR
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>
2026-01-12 14:00:59 +02:00
Alex PlateandClaude Opus 4.5 85ccfcd4b0 Add instructions for handling deprecated DIFFERENT annotation
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>
2026-01-12 13:58:56 +02:00
Alex PlateandClaude Opus 4.5 3c967d1f03 Fix Neovim test annotations in SearchGroupTest
- 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>
2026-01-12 13:55:04 +02:00
Alex PlateandClaude Opus 4.5 47215cfda1 Deprecate SkipNeovimReason.DIFFERENT in favor of more specific reasons
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-12 13:55:04 +02:00
Alex PlateandClaude Opus 4.5 20f86bc0b4 Add explanations for disabled tests in MultipleCaretsTest
Document why each disabled test is disabled:
- testCopyVisualText: CopyTextCommand processes carets sequentially,
  causing document shifts that corrupt subsequent caret operations
- testPutVisualLines: Multi-caret :put with visual selection only
  processes one caret (also fixed invokeAndWait wrapper)
- testMoveText* tests: MoveTextCommand explicitly throws exception
  for multiple carets

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-12 13:55:04 +02:00
claude[bot]andClaude Sonnet 4.5 7fa5ebb80c Update changelog: Add VimScript functions, fix high CPU
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>
2026-01-12 13:47:56 +02:00
Matt Ellis 9bffb4f42f Fix min arity for remove() function 2026-01-09 19:12:27 +02:00
Matt Ellis 3cdea85df4 Move common functions to collectionFunctions
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
2026-01-09 19:12:27 +02:00
Matt Ellis cc1122b3b6 Rename file 2026-01-09 19:12:27 +02:00
Matt Ellis 5adff67ec8 Add List uniq() function 2026-01-09 19:12:27 +02:00
Matt Ellis 8340be8459 Add List sort() function 2026-01-09 19:12:27 +02:00
Matt Ellis 9fbee06890 Add filter() function 2026-01-09 19:12:27 +02:00
Matt Ellis 4bf947a143 Fix comparison of String and Number 2026-01-09 19:12:27 +02:00
Matt Ellis 5225c409d8 Add List reduce() function 2026-01-09 19:12:27 +02:00
Matt Ellis 17eddab2ac Add map() and mapnew() functions 2026-01-09 19:12:27 +02:00
Matt Ellis 00fee97117 Add List indexof() function 2026-01-09 19:12:27 +02:00
Matt Ellis fd9b283df1 Add call() function
Vim lists call() as part of List functions. We document it the same way so we can cross-reference, but it's not really a List function, so it's implemented with varFunctions
2026-01-09 19:12:27 +02:00
Matt Ellis e6b863f1ca Add List+Dictionary foreach() function 2026-01-09 19:12:27 +02:00
Matt Ellis ea209d5c94 Refactor function and funcref functions 2026-01-09 19:12:27 +02:00
Matt Ellis 88fa7c2a29 Add doc comment 2026-01-09 19:12:27 +02:00
Matt Ellis 648cebf8d5 Encapsulate calling named function 2026-01-09 19:12:27 +02:00
Matt Ellis e2adf0af51 Handle range for builtin functions 2026-01-09 19:12:27 +02:00
Matt Ellis 1333051ad8 Make range an argument instead of a field 2026-01-09 19:12:27 +02:00
Matt Ellis bd0edb01b6 Introduce BuiltinFunctionHandler base class 2026-01-09 19:12:27 +02:00
Matt Ellis 0f9923128d Update doc comment 2026-01-09 19:12:27 +02:00
Matt Ellis 7600d96d0a Improve handling of dictionary functions
VimFuncref is no longer mutable, since the instance can be shared between variables. A dictionary function must be invoked with a Funcref that captures the dictionary; when accessing a dictionary entry that is a function, the returned value is a newly created partial function that captures the dictionary. This helps fix some issues when printing a dictionary and/or dictionary function with `echo`, including a stack overflow.
2026-01-09 19:12:27 +02:00
Matt Ellis 5e5005f068 Rename FunctionCallExpression for clarity 2026-01-09 19:12:27 +02:00