在 VS Code 中保存时关闭自动关闭的 HTML 标签?

Posted

技术标签:

【中文标题】在 VS Code 中保存时关闭自动关闭的 HTML 标签?【英文标题】:Close self-closing HTML tags on save in VS Code? 【发布时间】:2021-02-03 19:36:51 【问题描述】:

当我将 html sn-ps 复制到 JSX 时,我经常会出错,因为 HTML 中的自关闭标签可以像 <hr> 一样打开,但在 JSX 中它们必须始终像 <hr /> 一样关闭,是否有插件或设置可以自动为我修复这些问题?

【问题讨论】:

【参考方案1】:
First you need to write below code in your settings.json


"editor.codeActionsOnSave": 
        "source.fixAll.eslint": true
      



then create a .eslintrc file in root level and write this code


    "extends": ["react-app"],
    "rules": 
      "react/self-closing-comp": [
        "error",
        
          "component": true,
          "html": true
        
      ]
    
  

【讨论】:

【参考方案2】:

我最终通过对所有void elements 进行正则表达式查找和替换来解决它。

查找:<((area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr).*?[^\/])>

替换:<$1 />

【讨论】:

这个正则表达式为我节省了大量的体力劳动。但是如果元素内有换行符(例如属性之间)则失败。 . 不匹配换行符。【参考方案3】:

我已经在 VS Code 中使用这个扩展有一段时间了。在 javascript 和 Typescript 中与 React 一起工作得非常好 - https://marketplace.visualstudio.com/items?itemName=formulahendry.auto-close-tag。该文档说它默认适用于以下语言。试试看它是否适合您的需求。


    "auto-close-tag.activationOnLanguage": [
        "xml",
        "php",
        "blade",
        "ejs",
        "jinja",
        "javascript",
        "javascriptreact",
        "typescript",
        "typescriptreact",
        "plaintext",
        "markdown",
        "vue",
        "liquid",
        "erb",
        "lang-cfml",
        "cfml",
        "HTML (Eex)"
    ]

【讨论】:

我试过了,但它似乎只在我输入标签时起作用,无法纠正粘贴的 sn-p 中的所有自闭合标签

以上是关于在 VS Code 中保存时关闭自动关闭的 HTML 标签?的主要内容,如果未能解决你的问题,请参考以下文章

保存时自动重新格式化VS2008中整个C/C++源文件的免费工具? [关闭]

在 VS Code 中为 dart 禁用自动格式化

Visual Studio 2017 在保存时意外关闭文件

在 Visual Studio Code 中保存时避免自动缩进

VScode配置好C语言编译调试环境后 按调试时弹出的输出窗口还不到一秒就自动闪退关闭 这是怎么回事

VS Code 在文件保存时自动重启调试器,如 nodemon