1
0
mirror of https://github.com/chylex/IntelliJ-IdeaVim.git synced 2026-05-04 11:03:08 +02:00
Commit Graph

9718 Commits

Author SHA1 Message Date
Alex Plate
8093b08f06 Fix claude CLI invocation - use -p flag correctly
-p and --print are the same flag. Use just -p with prompt as argument.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 17:05:31 +02:00
Alex Plate
0d9042047e Skip version check in dry-run mode for Slack notification
Allow testing the Slack notification message generation without
requiring a release version number.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 16:57:56 +02:00
Alex Plate
65ed9a072f Add changelogUtils script to parse commit messages for YouTrack fixes
- Extracts commit messages matching `fix(VIM-XXXX):` pattern
- Builds a list of changes since the last successful commit
2025-12-23 16:51:48 +02:00
Alex Plate
44b05ab316 Remove unused method and reorder Foojay plugin in settings.gradle
- Delete `updateMergedPr` call from integration test
- Move Foojay plugin declaration below repository configuration
2025-12-23 16:47:10 +02:00
Alex Plate
ae66866abd Refactor Slack notification to use Claude Code CLI
Replace markdown-to-slack library with Claude Code CLI for generating
Slack messages. This simplifies the code and adds retry logic where
Claude analyzes Slack errors and fixes the message format.

Changes:
- Add callClaudeCode() to shell out to `claude --print`
- Add sendToSlackWithRetry() with 3 retry attempts
- Add dry-run mode (4th argument) for testing
- Add slackNotificationTest gradle task
- Add TeamCity build config for testing
- Remove mark-down-to-slack dependency

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 15:57:10 +02:00
Alex Plate
9b435ec3ff Make tag update conditional on Claude step success
Only update the workflow-changelog tag if the Claude step completes
successfully, preventing tag advancement on failures.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 15:35:18 +02:00
Alex Plate
7f939987af Migrate changelog workflow to Claude-managed approach
- Update Claude changelog workflow to use workflow-changelog tag for
  tracking processed commits
- Update changelog skill to document the tag-based commit tracking
- Remove old disabled workflows (updateChangelog.yml, mergePr.yml)
- Remove unused Gradle tasks (updateChangelog, updateMergedPr)
- Delete unused scripts (updateChangelog.kt, updateMergedPr.kt, changelogUtils.kt)
- Remove unused markdown dependency from scripts

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 15:32:22 +02:00
claude[bot]
9189ae0357 Update changelog: Sync changeNotes with recent fixes
Updated build.gradle.kts changeNotes section to reflect the [To Be Released]
content from CHANGES.md:
- VIM-4097: Fixed NextOccurrence with backslashes
- VIM-4094: Fixed UninitializedPropertyAccessException

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-23 14:22:44 +01:00
Alex Plate
0cf7dbeb88 Add Skill to allowed tools in changelog workflow
The Skill tool is needed to load the changelog skill instructions.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 15:14:31 +02:00
Alex Plate
2527427d67 Update changelog workflow to use changelog skill
Replace reference to deleted changelog-instructions.md with
the changelog skill for loading maintenance instructions.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 15:10:49 +02:00
Alex Plate
08f48b3c82 Update CHANGES.md with 2.28.0 release notes
Add changelog entries for version 2.28.0 and upcoming fixes.
Restore structured changelog format after previous simplified approach.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 15:05:22 +02:00
Alex Plate
e5127a57c9 Convert changelog instructions to Claude Code skill
Move changelog maintenance instructions from a standalone markdown file
to a proper Claude Code skill that is auto-detected when updating the
changelog.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 14:56:14 +02:00
Alex Plate
7063107675 Add foojay-resolver-convention plugin for automatic JDK download
Enables automatic JDK toolchain resolution from the Foojay API when
a required toolchain version is not installed locally.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 13:07:10 +02:00
Alex Plate
e12177abdc Refactor updateAuthors script with JetBrains IP section support
- Replace fragile 'yole' marker with section header constants
- Add isJetBrainsEmployee property to Author (checks @jetbrains.com)
- Route JetBrains employees to "Contributors with JetBrains IP:" section
- Extract emails from entire file to prevent duplicates across sections
- Add unit tests for author adding logic
- Remove markdown parser dependency for section finding

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 12:17:13 +02:00
Alex Plate
fd0951b366 Add JetBrains IP section to AUTHORS.md
- Add new section "Contributors with JetBrains IP" to track contributors
  who have assigned intellectual property rights to JetBrains
- Add "(JetBrains employee)" notes to maintainer entries
- Remove duplicate contributor entries
- Move JetBrains employees and contractors from Contributors to the
  new IP section to avoid duplication

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 12:11:06 +02:00
Alex Plate
f29deb15ba Remove contribution awards program information
The license awards program for quality contributions has ended.
Removed references from CONTRIBUTING.md, build.gradle.kts changeNotes,
and maintenance-instructions.md.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 14:58:15 +02:00
Alex Plate
82d4ef26e0 Refactor(VIM-2871): Migrate ParagraphMotion to new VimApi
Rewrite ParagraphMotion extension using the new VimApi DSL instead of
the legacy VimExtensionFacade API. The functionality remains identical.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 14:14:51 +01:00
Alex Plate
5c143e9951 Fix(VIM-4097): NextOccurrence ignores backslash in selected text
In very nomagic mode (\V), backslash still has special meaning and
introduces escape sequences. When selected text contained a backslash
(e.g., \IntegerField), it was interpreted as a regex atom instead of
a literal character.

The fix escapes backslashes in the search text before building the
pattern, ensuring literal matching.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 13:29:35 +01:00
Alex Plate
b11f8a1895 Fix(VIM-4094): UninitializedPropertyAccessException in VimHistoryBase
Use lazy initialization for logger to avoid accessing injector during
static class initialization when the service is loaded.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 13:17:18 +01:00
Alex Plate
2a919ecc4f Simplify updateCaret to Vim-like behavior
Remove selection parameter from updateCaret - selection now extends
automatically if present, matching Vim's native cursor movement behavior.

- Remove selection: Range.Simple? parameter from updateCaret
- Add mode-aware range validation ([0, fileSize) vs [0, fileSize])
- Remove selection-related tests that are no longer applicable

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-12 19:18:22 +02:00
Alex Plate
953a8f4a39 Improve Range documentation by reordering and consolidating normalization details 2025-12-12 18:34:23 +02:00
Alex Plate
de2daf6ee5 Use normalized ranges for selection API
- Range.Simple and Range.Block now always have start <= end
- Document that ranges are normalized with exclusive end semantics
- Normalize Range.Block by using min/max on vimSelectionStart and offset
- Add tests verifying ranges are normalized regardless of selection direction

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-12 15:24:58 +02:00
Alex Plate
b671a52480 Add link to Architecture Decision Records in CONTRIBUTING.md
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-12 15:24:58 +02:00
Alex Plate
f3de0d647d Refactor Range.Block API to use start/end offsets instead of array
Change Range.Block from storing an array of per-line ranges to using
simple start/end offsets, matching how block selection is stored
internally in VimBlockSelection. The conversion to per-line ranges
now happens internally in CaretTransactionImpl.

Changes:
- Range.Block now uses (start: Int, end: Int) like Range.Simple
- Add replaceTextBlockwise(Range.Block, String) overload for single text
- Update CaretReadImpl to return block start/end from primary caret
- Add blockToLineRanges() helper in CaretTransactionImpl
- Update ReplaceWithRegisterNewApi to use simplified API
- Add 17 new tests for block selection and replacement

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-12 15:24:57 +02:00
claude[bot]
b522f39358 Maintenance: ExitCommandTest - Expand test coverage for all command variants
Added comprehensive test coverage for all ExitCommand variants that were
previously untested. The ExitCommand implementation supports multiple
command aliases (qa/qall, xa/xall, wqa/wqall, quita/quitall), but the
test suite only covered qa and qall.

Changes:
- Added tests for xa and xall commands (exit all, with save)
- Added tests for wqa and wqall commands (write quit all)
- Added tests for quita and quitall commands (alternative quit all spelling)
- Added assertPluginError(false) checks to all tests to ensure commands
  execute without errors, following the pattern used in similar test files

This ensures all command variants are properly tested and prevents
regressions in any of the exit command aliases.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-12 12:40:57 +02:00
claude[bot]
a81fb7068b Fix typo in comment: change "e.q." to "e.g."
Changed incorrect abbreviation "e.q." to the correct "e.g." (exempli gratia)
in a comment explaining change command behavior in MotionWordEndAction.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-12 12:28:34 +02:00
Alex Plate
eb98fd3e01 Pass youtrackToken gradle property as YOUTRACK_TOKEN env variable
Add environment("YOUTRACK_TOKEN", youtrackToken) to JavaExec tasks
that use YouTrack API: releaseActions, eapReleaseActions,
updateYoutrackOnCommit, integrationsTest, and updateChangelog.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 12:58:33 +02:00
Alex Plate
3f5bbf4985 Update Kotlin version 2025-12-09 12:11:18 +02:00
Alex Plate
dbf26846ee Update the platform to 2025.3
Also, replace all IC dependencies on IU dependencies. The IC is deprecated since the unified release: https://blog.jetbrains.com/platform/2025/11/intellij-platform-2025-3-what-plugin-developers-should-know/
2025-12-09 10:00:58 +02:00
Alex Plate
8ee28a3f10 Update the minimal supported intellij platform version to 253 2025-12-03 12:03:00 +02:00
Alex Plate
655ba89561 Add mode-specific mapPluginAction extension functions
Add extension functions for creating plugin mappings in specific modes:
- nmapPluginAction: normal mode
- vmapPluginAction: visual and select modes
- xmapPluginAction: visual mode
- smapPluginAction: select mode
- omapPluginAction: operator-pending mode
- imapPluginAction: insert mode
- cmapPluginAction: command-line mode

Each function checks if a mapping already exists for that specific mode
before adding, allowing users to override default mappings per-mode.

Also update mapPluginAction to check each mode individually instead of
using the generic hasmapto check.
2025-11-28 18:39:00 +02:00
Alex Plate
ef91434a7b Fix vmap to apply to both visual and select modes
- Update MappingScope documentation: v* functions now correctly
  documented as "visual and select modes", x* functions as "visual mode"
- Fix MappingScopeImpl: vmap, vnoremap, vunmap, vhasmapto now operate
  on both MappingMode.VISUAL and MappingMode.SELECT
2025-11-28 18:38:52 +02:00
Alex Plate
c6bb7963ab Prevent duplicate author entries by filtering GitHub URLs in update script. 2025-11-28 15:45:41 +02:00
Alex Plate
7a1cbe5361 Remove bot contributors and simplify bot email filtering 2025-11-28 15:43:46 +02:00
claude[bot]
fdc75f983d Fix code style: Add space after colon in class declaration
Fixed missing space after colon in CommandLineReadImpl class declaration
to comply with Kotlin coding conventions.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 15:35:44 +02:00
dependabot[bot]
c3d2d54557 Bump org.jetbrains.changelog from 2.4.0 to 2.5.0
Bumps org.jetbrains.changelog from 2.4.0 to 2.5.0.

---
updated-dependencies:
- dependency-name: org.jetbrains.changelog
  dependency-version: 2.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-26 17:19:37 +02:00
dependabot[bot]
83df0f5196 Bump io.ktor:ktor-serialization-kotlinx-json from 3.3.2 to 3.3.3
Bumps [io.ktor:ktor-serialization-kotlinx-json](https://github.com/ktorio/ktor) from 3.3.2 to 3.3.3.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/commits)

---
updated-dependencies:
- dependency-name: io.ktor:ktor-serialization-kotlinx-json
  dependency-version: 3.3.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-26 17:19:19 +02:00
dependabot[bot]
3d7f37b61c Bump com.google.devtools.ksp:symbol-processing-api from 2.3.2 to 2.3.3
Bumps [com.google.devtools.ksp:symbol-processing-api](https://github.com/google/ksp) from 2.3.2 to 2.3.3.
- [Release notes](https://github.com/google/ksp/releases)
- [Commits](https://github.com/google/ksp/compare/2.3.2...2.3.3)

---
updated-dependencies:
- dependency-name: com.google.devtools.ksp:symbol-processing-api
  dependency-version: 2.3.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-26 17:19:03 +02:00
dependabot[bot]
4d0b35851d Bump org.jetbrains.intellij.platform from 2.10.4 to 2.10.5
Bumps org.jetbrains.intellij.platform from 2.10.4 to 2.10.5.

---
updated-dependencies:
- dependency-name: org.jetbrains.intellij.platform
  dependency-version: 2.10.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-26 17:18:48 +02:00
IdeaVim Bot
816a82911d Add github-actions[bot] to contributors list 2025-11-22 09:02:07 +00:00
Alex Plate
89c0d232f0 Update the tests for the 253 version 2025-11-22 00:58:27 +02:00
Alex Plate
559ca472ed Fix the tests for the 253 version 2025-11-22 00:43:08 +02:00
Alex Plate
35df913746 Remove the wrong test 2025-11-22 00:16:15 +02:00
Alex Plate
938e4acb22 Fix(VIM-4072): Do not log error when the source file doesn't exist
This is a normal situation, we can just show a warning in the log.
2025-11-22 00:16:15 +02:00
Matt Ellis
33adcd3f04 Add deepcopy() function 2025-11-22 00:09:32 +02:00
Matt Ellis
aa346a3dfa Add copy() function 2025-11-22 00:09:32 +02:00
Matt Ellis
ec13dd398b Ensure functions handle recursion and equality
Specifically, index() and count(). Moves the implementation of equality from EqualToHandler to VimDataType and friends
2025-11-22 00:09:32 +02:00
Matt Ellis
8b61d33c2c Improve not equal to operator support
List, Dictionary, Funcref and recursion
2025-11-22 00:09:32 +02:00
Matt Ellis
f062ceb898 Support equal to operator for Funcref 2025-11-22 00:09:32 +02:00
Matt Ellis
89115bdfb2 Support equal to operator for Dictionary 2025-11-22 00:09:32 +02:00