Skip to content

vim: Fix increment/decrement for negative numbers without gaps - #58327

Merged
dinocosta merged 5 commits into
zed-industries:mainfrom
kjyv:vim-increase-no-gaps
Jun 3, 2026
Merged

vim: Fix increment/decrement for negative numbers without gaps#58327
dinocosta merged 5 commits into
zed-industries:mainfrom
kjyv:vim-increase-no-gaps

Conversation

@kjyv

@kjyv kjyv commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

Finally continuing from PR #35200:

I adapted the fix to the changed find_target() logic and added more tests for version strings like 0.82.46.
This is a different but similar fix compared to #47356 for helix mode - not sure if this can and should be unified?

Self-Review Checklist:

  • I've reviewed my own diff for quality, security, and reliability
  • Unsafe blocks (if any) have justifying comments
  • The content is consistent with the UI/UX checklist (should not affect UI at all)
  • Tests cover the new/changed behavior
  • Performance impact has been considered and is acceptable

Closes #35193

Release Notes:

  • Fixed vim's increment (ctrl-a) and decrement (ctrl-x) commands skipping the number under the cursor in dotted strings like version numbers (e.g. 0.81.46) and hyphened date strings (e.g. 2015-02-01)

kjyv and others added 4 commits June 2, 2026 14:10
vim treats `.` as a separator rather than a decimal point, so ctrl-a/ctrl-x
act on the digit run under the cursor without requiring whitespace around it.
Previously the forward scan only terminated at a dot when it was followed by a
non-digit, so on `0.8|1.46` it skipped past `81` to `46`. Terminate whenever the
cursor is on the current number so version strings increment the expected part.

Release Notes:

- Fixed vim ctrl-a/ctrl-x skipping the number under the cursor in dotted
  strings like version numbers (e.g. `0.81.46`)
@cla-bot cla-bot Bot added the cla-signed The user has signed the Contributor License Agreement label Jun 2, 2026
@zed-community-bot zed-community-bot Bot added the first contribution the author's first pull request to Zed. NOTE: the label application is automated via github actions label Jun 2, 2026
@maxdeviant maxdeviant changed the title Vim: Fix increment/decrement for negative numbers without gaps vim: Fix increment/decrement for negative numbers without gaps Jun 2, 2026
@dinocosta dinocosta added the area:parity/vim Feedback for Vim parity features label Jun 3, 2026
* Move increment-related tests specifically for versions numbers to the
  existing `test_increment_with_dot` test
* Consolidate both `test_increment_negative_numbers_no_gaps` and
  `test_increment_negative_numbers_on_hyphens` into a single
  `test_increment_negative_numbers`
@dinocosta

Copy link
Copy Markdown
Member

I adapted the fix to the changed find_target() logic and added more tests for version strings like 0.82.46.
This is a different but similar fix compared to #47356 for helix mode - not sure if this can and should be unified?

Not entirely sure about the details of that issue, but I believe the changes in this Pull Request are good to go as is and likely don't need to wait for that 🫡

@dinocosta dinocosta left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you @kjyv ! 🙌

I've refactored the tests a little bit, moving some cases to an existing test and consolidating the negative numbers tests into a single test.

@dinocosta
dinocosta enabled auto-merge June 3, 2026 11:25
@dinocosta
dinocosta added this pull request to the merge queue Jun 3, 2026
Merged via the queue into zed-industries:main with commit 95dfe8c Jun 3, 2026
32 checks passed
TomPlanche pushed a commit to TomPlanche/zed that referenced this pull request Jun 8, 2026
…ndustries#58327)

Finally continuing from PR zed-industries#35200:

I adapted the fix to the changed find_target() logic and added more
tests for version strings like `0.82.46`.
This is a different but similar fix compared to zed-industries#47356 for helix mode -
not sure if this can and should be unified?

Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [x] Unsafe blocks (if any) have justifying comments
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
(should not affect UI at all)
- [x] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Closes zed-industries#35193 

Release Notes:

- Fixed vim's increment (`ctrl-a`) and decrement (`ctrl-x`) commands
skipping the number under the cursor in dotted strings like version
numbers (e.g. `0.81.46`) and hyphened date strings (e.g. `2015-02-01`)

---------

Co-authored-by: Stefan Bethge <kjyv@users.noreply.github.com>
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Co-authored-by: dino <dinojoaocosta@gmail.com>
This was referenced Jun 18, 2026
jonx pushed a commit to jonx/zed-aros that referenced this pull request Jul 17, 2026
…ndustries#58327)

Finally continuing from PR zed-industries#35200:

I adapted the fix to the changed find_target() logic and added more
tests for version strings like `0.82.46`.
This is a different but similar fix compared to zed-industries#47356 for helix mode -
not sure if this can and should be unified?

Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [x] Unsafe blocks (if any) have justifying comments
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
(should not affect UI at all)
- [x] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Closes zed-industries#35193 

Release Notes:

- Fixed vim's increment (`ctrl-a`) and decrement (`ctrl-x`) commands
skipping the number under the cursor in dotted strings like version
numbers (e.g. `0.81.46`) and hyphened date strings (e.g. `2015-02-01`)

---------

Co-authored-by: Stefan Bethge <kjyv@users.noreply.github.com>
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Co-authored-by: dino <dinojoaocosta@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:parity/vim Feedback for Vim parity features cla-signed The user has signed the Contributor License Agreement first contribution the author's first pull request to Zed. NOTE: the label application is automated via github actions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Vim mode: increment/decrement (ctrl-a/x) wrong behavior

3 participants