强制 Prettier 将内部文本放在新行上,不带尾随 >

Posted

技术标签:

【中文标题】强制 Prettier 将内部文本放在新行上,不带尾随 >【英文标题】:Force Prettier to place inner text on new line without trailing > 【发布时间】:2020-09-10 18:19:55 【问题描述】:

我正在使用 VScode 使用 Prettier 和 Eslint 进行 Vue 开发。

目前,Prettier 正在像这样格式化我的代码:

我想要的是强制执行以下操作

如果我手动将其更改为我想要的格式,它不会将其标记为不正确,但默认情况下它也不执行此格式。

有没有办法默认做到这一点?

我的相关 VScode Settings.json

"prettier.disableLanguages": ["json"],
  "[scss, css]": 
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  ,
  "vetur.validation.template": false,
  "editor.codeActionsOnSave": 
    "source.fixAll.eslint": true
  ,
  "[vue]": 
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  ,
  "editor.formatOnSave": true,
  "html.format.wrapAttributes": "force-aligned",
  "sync.gist": "30b867ce7d7d1360ee7bad0cf5599fc3",
  "sync.autoDownload": true,
  "sync.autoUpload": true,
  "sync.forceUpload": false,
  "sync.removeExtensions": false,
  "sync.quietSync": true,
  "[javascript]": 
    "editor.defaultFormatter": "vscode.typescript-language-features"
  ,

我的 .prettierrc 设置


  "trailingComma": "none",
  "tabWidth": 2,
  "semi": false,
  "singleQuote": true

我的 eslintrc.js 设置

extends: [
    'plugin:vue/recommended',
    'eslint:recommended',
    'prettier/vue',
    'plugin:prettier/recommended'
  ],
  plugins: ['vue', 'prettier'],

【问题讨论】:

这也发生在角度...... 我有类似配置的同样问题。你找到解决办法了吗? 当时我放弃了,但最近遇到了这个。也许会有用:***.com/questions/61715509/… 【参考方案1】:

将此添加到 .prettierrc.prettierrc.json 文件似乎可以解决此类问题:

"htmlWhitespaceSensitivity": "ignore"

你的应该是这样的:


  "trailingComma": "none",
  "tabWidth": 2,
  "semi": false,
  "singleQuote": true,
  "htmlWhitespaceSensitivity": "ignore"

为了更好地了解这是否适合您,您可以阅读此主题:Whitespace-sensitive formatting

【讨论】:

这确实解决了问题!非常感谢!【参考方案2】:

需要修改prettier中的printwidth选项,但需要注意以下几点

有一些边缘情况,例如非常长的字符串文字、正则表达式、cmets 和变量名,它们不能跨行断开(不使用 Prettier 不做的代码转换)。或者,如果您将代码嵌套 50 层,那么您的行当然主要是缩进 :) - prettier

【讨论】:

嗯.. 这不是包装问题,而是格式问题。我不确定这是否有帮助。

以上是关于强制 Prettier 将内部文本放在新行上,不带尾随 >的主要内容,如果未能解决你的问题,请参考以下文章

配置 prettier 以在新行上推送花括号并且不清除空行

在 Prettier 中,如何防止 HTML 结束标记的“>”字符被放置在新行上?

将图像放在表格的中心,如果有额外的文字,图像下方的文字应该在新行中

如何避免 VsCode Prettier 在新行中破坏链函数。?

如何在使用 prettier 的类中的方法声明前后添加新行?

可以让 Prettier 允许在新行上链接函数吗?