VSCode将多行自动格式化为一行代码

时间:2020-03-27 14:27:05

标签: javascript visual-studio-code jsx code-formatting prettier

我非常喜欢自动格式化代码的想法。您可以使用eslint规则配置所需的代码样式。但是一些隐藏的规则使我不满意:内联文档销毁道具或jsx模板元素属性。

示例(这就是我想要的样子)。

const {
  foo: 1,
  bar: 2,
  baz: 3,
} = require('qux')

这是VSCode或其某些插件(不确定)如何重新格式化

const { foo: 1, bar: 2, baz: 3 } = require('qux')

如果行长超过指定的限制,将其重新格式化为多行,绝对可以。

JSX示例(尝试使用react-create-app生成的新项目)。

  1. 好的,这太长了,因此VSCode将其重新格式化为多行

    <a
      className="App-link"
      href="https://reactjs.org"
      target="_blank"
      rel="noopener noreferrer"
    >
    
  2. 行长不会超过允许的长度,但我仍然喜欢这种样式

    <a
      className="App-link"
      href="https://reactjs.org"
    >
    
  3. 但是VSCode /插件具有不同的首选项,并将其重新格式化为

    <a className="App-link" href="https://reactjs.org">
    

我试图找到一个特定的eslint规则,该规则将对此行为负责,但没有运气(未找到)。我试图将默认的vscode格式化程序从prettier更改为null-真不走运。

对我来说,还有另外一件奇怪的事情:VSCode不会突出显示要重新格式化的代码段。

那么如何解决?

更新

我想要VSCode在这样的代码部分中做的唯一一件事就是在一行超过eslint max-len值的情况下将一行换成多行。

1 个答案:

答案 0 :(得分:1)

如果已配置prettier。您是否尝试过prettier.printWidth属性here

{
  "prettier.printWidth": 80
}