【问题标题】:How to prevent Visual Studio Code from pushing chained functions on to new line?如何防止 Visual Studio Code 将链式函数推送到新行?
【发布时间】:2018-09-20 04:20:54
【问题描述】:

如何防止 Visual Studio Code 将链式 JavaScript 函数推到新行,如下 GIF 所示:

如您所见,它使代码极难查看,并将简单的if 签入扩展到多行。我正在使用名为 Prettier - Code Formatter 的扩展程序,我查看了首选项并发现以下内容:

// Format a file on save. A formatter must be available, the file must not be 
//auto-saved, and editor must not be shutting down.
"editor.formatOnSave": false

当您点击保存时,它会完全停止格式化。我查看了其他选项,但找不到此设置。

上面的进程有名字吗?

我怎样才能保留formatOnSave,但防止它按原样格式化?

【问题讨论】:

  • 我很确定这不是原生的 VScode 行为。你刚刚让我下载了一个新插件。主题虽然:为什么不在他们的 git 页面上询问 github.com/prettier/prettier/issues

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


【解决方案1】:

由于它是他们的GitHub 的一项功能,因此没有选项可以从configuration 更改它是有道理的。 有一种方法可以实现你想要的,只要你添加 // prettier-ignore

【讨论】:

  • 这似乎是一种选择,但考虑到我不希望这种情况发生在任何可能给代码添加很多不需要的“噪音”的地方。如果我只是把它放在文件的开头,它会起作用还是我必须在块级别这样做?另外,它会停止所有格式还是仅停止那种格式?关键是,我更愿意拥有它,以便它执行除此之外的所有其他格式。
  • 不,我意识到这不是一个好的解决方案。它只会影响 AST 中的以下节点,因此不会影响文件的开头。不,它会阻止任何格式化。但是,每个文件都有一些配置可以将其关闭。
【解决方案2】:

这似乎是不可配置的(不确定是否会),这是来自 issue 的 Github 帖子的直接副本:

此功能的建议行为是:

  • 达到行长限制后换行
  • 在 3 个链式方法后包装
  • 在可配置数量的链式方法之后进行包装
  • 当满足以下两个条件之一时进行包装:
    • 已达到行长限制
    • 用户通过手动插入换行符来选择加入它,例如对象文字

最初的实现是 (1)。

当前的实现是 (2)。

(3) 不太可能发生,因为 prettier 试图避免配置。

共识反对(4),因为希望最小化用户输入对 prettier 输出的影响。

我认为当前的实现 (2) 在大多数情况下是有意义的,但我发现自己经常需要 (4) 以至于我不再将 prettier 用于 JS。

基于此,目前没有办法修改此行为,也没有任何计划(截至撰写本文时)。

绝对不是我想要的答案,但它就是给出的答案。

【讨论】:

    【解决方案3】:

    VSCode 实际上并没有使用 prettier,它很可能作为您的扩展之一溜走,或者作为 eslint 或提示设置启用。如果这发生在我身上。在终端试试这个:“code --disable-extensions”。

    【讨论】:

      【解决方案4】:

      不要使用prettier,试试beautify + ESlint

      这是一个严肃的答案,因为我试图解决它很长时间。但它确实无法修复。

      【讨论】:

        猜你喜欢
        • 2021-06-10
        • 1970-01-01
        • 2016-04-15
        • 2020-02-01
        • 2019-10-03
        • 2021-05-11
        • 2022-10-25
        • 2017-04-28
        • 2020-10-13
        相关资源
        最近更新 更多