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

9699 Commits

Author SHA1 Message Date
NaMinhyeok
034f968e98 revert CommandBuilder usage
Signed-off-by: NaMinhyeok <nmh9097@gmail.com>
2025-11-21 11:59:37 +02:00
NaMinhyeok
2aec8858ba Refactor insert mode handling to check writability for new and repeat operations
Signed-off-by: NaMinhyeok <nmh9097@gmail.com>
2025-11-21 11:59:37 +02:00
NaMinhyeok
7efd050065 Enhance InsertExitModeAction to handle read-only files gracefully and ensure ESC functionality
Signed-off-by: NaMinhyeok <nmh9097@gmail.com>
2025-11-21 11:59:37 +02:00
NaMinhyeok
1b10943c6b Prevent entering insert mode in read-only files
Signed-off-by: NaMinhyeok <nmh9097@gmail.com>
2025-11-21 11:59:37 +02:00
dependabot[bot]
df52c7a6f5 Bump org.jetbrains.intellij.platform from 2.10.2 to 2.10.4
Bumps org.jetbrains.intellij.platform from 2.10.2 to 2.10.4.

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

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

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-12 17:19:15 +02:00
IdeaVim Bot
a3707d232c Add github-actions[bot] to contributors list 2025-11-08 09:02:09 +00:00
Alex Plate
58aa01113a Bring back a missing property 2025-11-07 17:48:02 +02:00
claude[bot]
16eb382dfa Maintenance: Statistics - Fix thread safety issues
Fix potential ConcurrentModificationException in statistics collection by using thread-safe collections.

Issues found:
- VimscriptState.Util and PluginState.Util used non-thread-safe HashSets
- Collections were modified from EDT/user actions but read from getMetrics()
- IntelliJ's ApplicationUsagesCollector.getMetrics() may be called on background threads
- Race conditions could cause ConcurrentModificationException or data corruption

Changes:
- Replace HashSet with ConcurrentHashMap.newKeySet() for thread-safe add/read operations
- Add @Volatile annotations to boolean flags to ensure visibility across threads
- This ensures safe concurrent access between statistics writers and collectors

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-07 16:36:30 +02:00
Alex Plate
66402f499d Restrict claude-review workflow to PRs from the same repository 2025-11-07 16:34:14 +02:00
Matt Ellis
bcb76421b2 Implement let unpack 2025-11-07 16:31:24 +02:00
Matt Ellis
592ff5f774 Rearrange bits of grammar in alphabetical order
No changes!
2025-11-07 16:31:24 +02:00
Alex Plate
a4b370bb55 Remove Junie for now 2025-11-07 16:25:00 +02:00
Matt Ellis
6f3ed33f6e Add support for getting env var expressions
The JVM doesn't provide a way to set
2025-11-07 16:15:39 +02:00
Matt Ellis
e135392d8b Implement bitwise shift expressions 2025-11-07 15:56:39 +02:00
Matt Ellis
4c9951dde6 Rename the binary expression parser rules 2025-11-07 15:56:39 +02:00
Matt Ellis
7e7a08a718 Implement parsing function call through funcref
This breaks a specific construct: `echo(42)(999)`. The `echo` command can parse multiple expressions without separating whitespace. IdeaVim now treats this example as a function call of the resul of the `(42)` expression, which is, of course, invalid. Vim evaluates expressions as it is parsing and declines to apply the `(999)` subscript because it knows the first expression is not a funcref/partial.

IdeaVim does not have this context, so cannot know that this is two expressions and not a function call.

I think it is better to support the `expr10(expr1, ...)` syntax and break this (what feels like niche) functionality than not have function calls through expression results at all.
2025-11-07 15:56:39 +02:00
Matt Ellis
5dde53c4d5 Reorder rules to reflect Vim's precedence
The only change to the rules themselves is to add unary plus/minus to IntExpression and FloatExpression. This matches Vim's precedence, where the unary operator applies to numeric constants at a higher precedence than to other expressions. E.g. `-4->abs()` invokes `abs` on `-4`, while `-a->abs()` is the negative value of `abs(a)`.
2025-11-07 15:56:39 +02:00
Matt Ellis
f83e982730 Fix associativity of ternary and falsy operators
Fixes VIM-3835
2025-11-07 15:56:39 +02:00
Matt Ellis
115937f642 Consolidate unary expressions 2025-11-07 15:56:39 +02:00
Matt Ellis
3278b5e8cf Add tests for expression precedence 2025-11-07 15:56:39 +02:00
Matt Ellis
5d96a682f6 Fix test base classes 2025-11-07 15:56:39 +02:00
Matt Ellis
63cbb5b736 Fix use of is operator as variable name 2025-11-07 15:56:39 +02:00
Matt Ellis
fc6f2905be Fix is and isnot operators
The parser was treating `is` and `isnot` as identifiers instead of operators
2025-11-07 15:56:39 +02:00
claude[bot]
dec2a89643 Remove dead code from VimStateMachineImpl
The companion function `modeToMappingMode` was not used anywhere in the codebase.
The extension function `toMappingMode()` serves the same purpose and is used throughout.
Also removed unused import and extra blank line for cleaner code formatting.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-07 15:14:35 +02:00
claude[bot]
3f2b716e72 Remove unused VimEditorGroupBase class
VimEditorGroupBase has been unused since its creation in April 2022. Unlike other
*Base classes in the api package (VimApplicationBase, VimMessagesBase, etc.),
VimEditorGroupBase is never extended. The actual EditorGroup implementation
directly implements the VimEditorGroup interface instead of extending this base class.

This removal cleans up dead code and reduces maintenance overhead.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-07 15:12:26 +02:00
Alex Plate
a1032c55c0 Adjust codebase maintenance cron schedule to run weekly 2025-11-07 15:11:01 +02:00
dependabot[bot]
e98ad5aff3 Bump org.junit.jupiter:junit-jupiter from 6.0.0 to 6.0.1
Bumps [org.junit.jupiter:junit-jupiter](https://github.com/junit-team/junit-framework) from 6.0.0 to 6.0.1.
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r6.0.0...r6.0.1)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter
  dependency-version: 6.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-05 17:38:16 +02:00
dependabot[bot]
b76c242af5 Bump com.squareup.okhttp3:okhttp from 5.0.0 to 5.3.0
Bumps [com.squareup.okhttp3:okhttp](https://github.com/square/okhttp) from 5.0.0 to 5.3.0.
- [Changelog](https://github.com/square/okhttp/blob/master/CHANGELOG.md)
- [Commits](https://github.com/square/okhttp/compare/parent-5.0.0...parent-5.3.0)

---
updated-dependencies:
- dependency-name: com.squareup.okhttp3:okhttp
  dependency-version: 5.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-05 17:19:51 +02:00
dependabot[bot]
86cc1259ad Bump io.ktor:ktor-serialization-kotlinx-json from 3.3.1 to 3.3.2
Bumps [io.ktor:ktor-serialization-kotlinx-json](https://github.com/ktorio/ktor) from 3.3.1 to 3.3.2.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/3.3.1...3.3.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-05 17:19:36 +02:00
dependabot[bot]
9dc3c341bd Bump org.junit.vintage:junit-vintage-engine from 6.0.0 to 6.0.1
Bumps [org.junit.vintage:junit-vintage-engine](https://github.com/junit-team/junit-framework) from 6.0.0 to 6.0.1.
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r6.0.0...r6.0.1)

---
updated-dependencies:
- dependency-name: org.junit.vintage:junit-vintage-engine
  dependency-version: 6.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-05 17:19:14 +02:00
dependabot[bot]
7e27c1eb92 Bump org.junit:junit-bom from 6.0.0 to 6.0.1
Bumps [org.junit:junit-bom](https://github.com/junit-team/junit-framework) from 6.0.0 to 6.0.1.
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r6.0.0...r6.0.1)

---
updated-dependencies:
- dependency-name: org.junit:junit-bom
  dependency-version: 6.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-05 17:18:32 +02:00
dependabot[bot]
3024c21f86 Bump org.jetbrains.kotlin:kotlin-stdlib from 2.2.20 to 2.2.21
Bumps [org.jetbrains.kotlin:kotlin-stdlib](https://github.com/JetBrains/kotlin) from 2.2.20 to 2.2.21.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v2.2.20...v2.2.21)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin:kotlin-stdlib
  dependency-version: 2.2.21
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-01 02:34:14 +02:00
dependabot[bot]
fdb8642e28 Bump org.eclipse.jgit:org.eclipse.jgit.ssh.apache
Bumps [org.eclipse.jgit:org.eclipse.jgit.ssh.apache](https://github.com/eclipse-jgit/jgit) from 7.3.0.202506031305-r to 7.4.0.202509020913-r.
- [Commits](https://github.com/eclipse-jgit/jgit/compare/v7.3.0.202506031305-r...v7.4.0.202509020913-r)

---
updated-dependencies:
- dependency-name: org.eclipse.jgit:org.eclipse.jgit.ssh.apache
  dependency-version: 7.4.0.202509020913-r
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-01 02:17:44 +02:00
dependabot[bot]
731cf6fdfa Bump org.jetbrains.intellij.platform from 2.9.0 to 2.10.2
Bumps org.jetbrains.intellij.platform from 2.9.0 to 2.10.2.

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-01 02:17:16 +02:00
dependabot[bot]
398eba76ff Bump io.ktor:ktor-serialization-kotlinx-json from 3.3.0 to 3.3.1
Bumps [io.ktor:ktor-serialization-kotlinx-json](https://github.com/ktorio/ktor) from 3.3.0 to 3.3.1.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/3.3.0...3.3.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-01 02:16:57 +02:00
dependabot[bot]
3be99ba2e6 Bump com.google.devtools.ksp:symbol-processing-api
Bumps [com.google.devtools.ksp:symbol-processing-api](https://github.com/google/ksp) from 2.1.21-2.0.2 to 2.3.0.
- [Release notes](https://github.com/google/ksp/releases)
- [Commits](https://github.com/google/ksp/compare/2.1.21-2.0.2...2.3.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-01 02:16:31 +02:00
Alex Plate
77a83d779a Pass project directory as argument to integrationsTest
- Updated `integrationsTest` script to accept project directory as an argument.
- Modified `build.gradle.kts` to pass project root directory to the `integrationsTest` task.
- Improved flexibility and reusability by allowing dynamic project directory input.
2025-10-29 13:24:44 +02:00
Alex Plate
46b0769bb9 Remove YouTrack-related logic and cleanup build.gradle.kts
- Removed all YouTrack-related helper functions from `build.gradle.kts`.
- Simplified the build script by eliminating unused code and redundant tasks.
- Improved maintainability by reducing script complexity.
2025-10-27 12:10:37 +02:00
Alex Plate
ebac7f458e Refactor integrationsTest into a standalone Kotlin script
- Moved `integrationsTest` logic from `build.gradle.kts` to `scripts/integrationsTest.kt`.
- Registered `integrationsTest` as a `JavaExec` task in `scripts/build.gradle.kts`.
- Improved modularity by isolating test logic into a dedicated script.
- Simplified task structure and maintained existing functionality.
2025-10-27 12:02:39 +02:00
Alex Plate
3e28cecab1 Refactor releaseActions into a standalone Kotlin script and improve YouTrack integration
- Extracted `releaseActions` logic from `build.gradle.kts` into `scripts/releaseActions.kt`.
- Registered `releaseActions` as a `JavaExec` task in `scripts/build.gradle.kts`.
- Added helper functions for YouTrack version management (`addReleaseToYoutrack`, `getVersionIdByName`, `setYoutrackFixVersion`, etc.).
- Simplified coroutine usage and modularized task logic for maintainability.
2025-10-27 11:59:14 +02:00
Alex Plate
80454c7f2d Refactor changelog update logic into standalone Kotlin script
- Extracted `updateChangelog` functionality from `build.gradle.kts` into `scripts/updateChangelog.kt`.
- Registered `updateChangelog` as a `JavaExec` task in `scripts/build.gradle.kts`.
- Improved modularity and reusability by isolating changelog update logic.
- Consolidated shared changelog utilities in `scripts/changelogUtils.kt`.
2025-10-27 11:49:06 +02:00
Alex Plate
65ed2b2f7a Refactor updateMergedPr into a standalone Kotlin script
- Extracted `updateMergedPr` logic from `build.gradle.kts` into `scripts/updateMergedPr.kt`.
- Registered `updateMergedPr` as a `JavaExec` task in `scripts/build.gradle.kts`.
- Improved modularity and reusability by moving update logic to a dedicated script.
- Updated task to accept arguments for `prId` and project directory.
2025-10-27 11:43:05 +02:00
Alex Plate
588dd56679 Refactor updateAuthors functionality into a standalone Kotlin script
- Extracted `updateAuthors` logic from `build.gradle.kts` into `scripts/updateAuthors.kt`.
- Registered `updateAuthors` as a `JavaExec` task in `scripts/build.gradle.kts`.
- Updated dependencies to include required libraries (`github-api` and `markdown`).
- Improved modularity and reusability of the `updateAuthors` implementation.
2025-10-27 11:39:33 +02:00
Alex Plate
b6808aee17 Extract Slack notification functionality into a standalone Kotlin script
- Moved `slackNotification` logic from `build.gradle.kts` to `scripts/slackNotification.kt`.
- Refactored notification handling for better modularity and reusability.
- Added task registration in `scripts/build.gradle.kts` to execute the standalone script.
- Updated dependencies to include `mark-down-to-slack` for Slack message formatting.
2025-10-27 11:33:17 +02:00
Alex Plate
db277e3d2b Add new IdeaVim plugin dependency for vim-cmdfloat and update compatibility checks 2025-10-27 11:25:40 +02:00
Alex Plate
0b512dc293 Refactor YouTrack update script for better modularity and task integration
- Replaced `updateYoutrackOnCommit` function in build script with a dedicated Kotlin `main()` entry point.
- Simplified task registration with `JavaExec` in `scripts/build.gradle.kts`.
- Integrated argument support for specifying project directory.
- Removed duplicate and redundant code for Change processing.
- Adjusted GitHub workflow to use the new task structure.
2025-10-27 11:17:46 +02:00
Alex Plate
5edf6ea857 Skip github-actions bot emails and clean up AUTHORS.md
- Exclude emails from github-actions bot in the build script.
- Remove redundant github-actions bot entries from AUTHORS.md.
2025-10-27 11:06:27 +02:00
Alex Plate
9d2e3b102a Improve doc-sync skill based on lessons learned
The skill was too passive and didn't guide me to find documentation issues
proactively. Updated based on the MappingScope documentation sync experience.

Key improvements:
- Add "Phase 0: Pre-Analysis Search" to find red flags before deep reading
- Establish "ground truth" from working implementations first
- Change mindset from "be conservative" to "be aggressive finding issues"
- Add explicit checklist for verifying each code example
- Emphasize checking what was REMOVED (deletions matter more than additions)
- Add step-by-step workflow with git history checks
- Include "Key Lessons Learned" section with critical insights

The skill now prioritizes finding working code as ground truth and assumes
documentation is outdated after code changes, rather than assuming it's
correct until proven otherwise.
2025-10-27 11:00:05 +02:00
Alex Plate
d5b0896e7f Fix Plugin API documentation to use correct mapping signatures
The documentation was showing incorrect function signatures with non-existent
parameters (keys, label, isRepeatable) and not following the 2-step <Plug>
mapping pattern established in d288a52ef.

Changes:
- Remove non-existent parameters from all mapping examples
- Update all examples to use the correct 2-step pattern:
  1. nnoremap("<Plug>...") for non-recursive <Plug> → action mappings
  2. nmap("key", "<Plug>...") for recursive key → <Plug> mappings
- Add explanation of the 2-step pattern and its benefits in the tutorial
- Remove non-existent shortPath parameter from @VimPlugin annotation

This ensures documentation matches the actual MappingScope API and teaches
users the best practice pattern for creating mappings that can be overridden
in .ideavimrc.
2025-10-27 11:00:05 +02:00