Microsoft/vscode

JavaScript: Improve indentation on insert with trailing newline

Open

#85.781 aperta il 28 nov 2019

Vedi su GitHub
 (2 commenti) (0 reazioni) (1 assegnatario)TypeScript (10.221 fork)batch import
editor-autoindenthelp wantedjavascripttree-sitter-autoindent-candidatetypescriptunder-discussion

Metriche repository

Star
 (74.848 star)
Metriche merge PR
 (Merge medio 11h 43m) (1000 PR mergiate in 30 g)

Descrizione

Let's say I have the following JS snippet:

() => {
  a
}

() => {
  b
}

Now select the entire 'a' part, from the start of line 1 to the start of line 4, i.e. including a trailing newline, and insert it at the start of the line now containing 'b'. The result is this:

() => {
  a
}

() => {
  () => {
    a
  }
    b
}

The 'b' is now over-indented because that line received additional indentation at insert. Expected behavior: the 'b' should remain at its original indentation level. I can confirm this behavior at least for JS and JSON files.


The reason I care is that selecting whole lines with the keyboard is the easiest from start to start, so this kind of pasting is very common in my workflow. I often do Ctrl+C, Ctrl+V, Ctrl+V to duplicate lines; with this bug, this will add two additional indentations to the next line, which is potentially unrelated to the copied lines.

Guida contributor