`ci(` and similar commans work unexpectedly when used at end of line
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 15.2k
- Forks
- 1.5k
- Avg merge
- 3d 18h
- Merged PRs (30d)
- 6
Description
Describe the bug
ci( and similar commands not working as expected.
To Reproduce
Let's say we have the following line with | represeting the position of the cursor:
- this is a (sentence) word
|
If you useci(you expect to get something like: this is a (|) word. But instead the word sentence is deleted but the cursor stay the in the same place like: this is a () word|.
Expected behavior
this is a (|) word
Environment (please complete the following information):
- Extension (VsCodeVim) version: v1.26.0
- VSCode version: 1.81.1
Commit: 6c3e3dba23e8fadc360aed75ce363ba185c49794
Date: 2023-08-09T22:18:39.991Z
Electron: 22.3.18
ElectronBuildId: 22689846
Chromium: 108.0.5359.215
Node.js: 16.17.1
V8: 10.8.168.25-electron.0
OS: Linux x64 6.4.6-76060406-generic - OS: Pop!_OS 22.04 LTS
Additional context
Other Similar commands such as di( or ci' have also unexpected behavior when using after the text object you want to modify.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the behavior in VSCodeVim with ci( at the end of the example line, then compare it with di( and ci' as described. Trace the text-object command entry points that handle end-of-line cursors; done means the inner text is changed while the cursor remains between the delimiters as expected.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100