如何避免VsCode Prettier中断换行功能?

Dan*_*tos 1 tslint visual-studio-code prettier

我正在使用VSCode,Prettier和TSLint。

当我确实有多个函数调用时,例如

let m = moment().startOf("day").subtract(30, "days");
Run Code Online (Sandbox Code Playgroud)

更漂亮的闯入

let m = moment()
    .startOf("day")
    .subtract(30, "days")
Run Code Online (Sandbox Code Playgroud)

我已经设置了TSLint规则

{
  "defaultSeverity": "warning",
  "extends": ["tslint:recommended"],
  "linterOptions": {
    "exclude": ["node_modules/**"]
  },
  "rules": {
    // ...
    "newline-per-chained-call": false
  }
}
Run Code Online (Sandbox Code Playgroud)

和休闲的设置

"prettier.tslintIntegration": true
Run Code Online (Sandbox Code Playgroud)

但是链接的功能仍在不断发展。

如何避免断线但仍使用TSLint?

Yed*_*hin 5

这是一个更漂亮问题。根据我的理解,添加此功能的PR尚未合并。

目前,要获得所需的内容,我可以建议的是忽略使用// prettier-ignore注释格式设置的抽象语法树中的下一个节点。

// prettier-ignore  
let m = moment().startOf("day").subtract(30, "days");   
Run Code Online (Sandbox Code Playgroud)

这些ignore语句有多种变体,例如一个人可以在别动范围内忽略,或者甚至可以忽略一个特定文件。请查看官方的漂亮文档,以了解更多有关其实现的信息。


Eri*_*ner 4

请注意,在 Prettier v2.0.4 中此问题已得到修复。现在,只要您的代码行在配置中指定的长度或默认的 80 内,它就会保留在一行中。否则,它将被换行为多行。

我必须升级我的漂亮器才能使这些更改生效。

$ yarn upgrade -g prettier --latest
Run Code Online (Sandbox Code Playgroud)