Microsoft/vscode

JavaScript: Improve indentation on insert with trailing newline

開放

#85,781 建立於 2019年11月28日

 (2 則留言) (0 個反應) (1 位負責人)TypeScript (39,847 個分叉)batch import
editor-autoindenthelp wantedjavascripttree-sitter-autoindent-candidatetypescriptunder-discussion

倉庫指標

星標
 (184,936 顆星)
PR 合併指標
 (PR 指標待抓取)

描述

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.

貢獻者指南