VSCodeVim / VSCodeVim/Vim

Change inside braces breaks intendation

Open
#3,934 1 comment 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

kind/bug
Dominant language
TypeScript
Stars
15.2k
Forks
1.5k
Avg merge
3d 18h
Merged PRs (30d)
6

Description

Describe the bug
After using "change inside braces" ci{ command, the plugin deletes any indentation that the block of code had.

To Reproduce
Consider code such as this:

void main()
{
  printf("Hello world");
}
  1. Put a cursor on word "printf"
  2. Enter ci{ in normal mode
  3. Watch everything including indentation removed from inbetween braces.

Expected behavior
Native vim deletes everything in-between curly braces, but leaves an indent upon entering insert mode

Screenshots
Initial code:
image
After ci{:
image
Expected (note the tabulation):
image

Additional context
The problem is particularly annoying in deeply nested {} blocks that have long indentation, as it removes all tabs within the block and I have to type them again every time after using ci{ command.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the ci{ command in VS Code Vim using the C++ example from the issue, then trace the change-inside-braces command from its command entry point. Compare the result with native Vim and identify where indentation is removed. Done means ci{ preserves the existing indentation and a regression test covers the behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript, vscode
Domain
tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.