Vue.js 如何告诉VScode将文件类型A格式化为文件类型B,同时保留语法突出显示?

Vue.js 如何告诉VScode将文件类型A格式化为文件类型B,同时保留语法突出显示?,vue.js,visual-studio-code,vetur,Vue.js,Visual Studio Code,Vetur,我有一个问题: 我通过告诉VScode(右下角)将.vue文件格式化为.html文件来解决这个问题 这解决了格式问题,但我丢失了html标记中vue属性的语法高亮显示 我需要让VScode将文件类型.vue格式化为.html,同时保留语法高亮显示 如何做到这一点 .vue的语法突出显示来自扩展 我尝试了Vetur扩展和vue beautify扩展。他们突出显示了语法,但没有正确格式化.vue文件(至少对我而言) 在中,尝试在VScode的global settings.json中添加以下行 {

我有一个问题:

我通过告诉VScode(右下角)将.vue文件格式化为.html文件来解决这个问题

这解决了格式问题,但我丢失了html标记中vue属性的语法高亮显示

我需要让VScode将文件类型.vue格式化为.html,同时保留语法高亮显示

如何做到这一点

.vue的语法突出显示来自扩展

我尝试了Vetur扩展和vue beautify扩展。他们突出显示了语法,但没有正确格式化.vue文件(至少对我而言)

在中,尝试在VScode的global settings.json中添加以下行

{
    "[vue]": {
        "editor.defaultFormatter": "vscode.html-language-features"
    }
}
但这对他们两人都不起作用

Vetur只是忽略了设置,并按照更漂亮的规则格式化了.vue文件。(在Vetur设置中无法更改)

在使用vue时,我发现没有为.vue文件安装格式化程序。尽管我明确指定要使用内置HTML格式化程序

如何强制VScode使用.vue文件的内置HTML格式化程序,同时仍使用“Vetur”或“vue beautify”提供的所有其他功能

我如何告诉“Vetur”或“vue beautify”扩展的“Prettier html”模块保留空换行符

更新: -试过“美化”。。但不支持vue的“保留最大换行符”功能 -和“美化”-根本不支持vue。
-“更漂亮”-不支持vue的“保留最大换行符”

Vetur目前不支持切换到内置HTML格式化程序,但您可以在中请求将其作为新功能

由于根本问题似乎是新行的崩溃,我提出了不同的解决方案,只解决这个问题:

  • 将Vetur的HTML格式化程序切换到
    js美化HTML
    ,并将其配置为保留换行符
  • 用忽略注释环绕换行符
  • 禁用Vetur的HTML格式
选项1:使用
js美化html
在VS代码首选项中,将Vetur的HTML格式化程序设置为:

js美化html“>

然后在(从命令调色板中选择
Preferences:opensettings(JSON)
)中,添加如下所示的JSON块。关键是将
max\u preserve\u换行符设置为允许所需换行数目的高数

“vetur.format.defaultFormatterOptions”:{
“js美化html”:{
“max_preserve_newlines”:10000,//一个块中要保留的最大换行数(0)
“preserve_newlines”:true//是否应保留元素之前的现有换行符
}
}
选项2:使用忽略注释 忽略评论的优点:

  • 禁用格式化程序/linter,同时记录有意的空白,这对读卡器/维护人员很重要
  • 每个代码段都可以轻松启用/禁用
Vetur的默认HTML格式化程序是
prettyhtml
,它在内部使用
prettier
,因此您可以使用prettier的:


福
酒吧
如果将HTML格式化程序切换到
js美化HTML
,请使用相应的:


福
酒吧
选项3:禁用Vetur的HTML格式
在设置中将Vetur的HTML格式化程序设置为
none
,将禁用
*.vue
文件中HTML节的格式化程序。虽然这解决了折叠换行符的不必要格式问题,但其明显的副作用是禁用vue模板中的所有格式,这对于您的使用可能是可以接受的。

您尝试过di吗sabling删除换行符的linter规则?这就是问题所在,我不知道如何禁用它。在这种情况下,Prettier的规则-这就是Vetur使用的规则。据我所知,Vetur是VScode在vue文件方面唯一的帮助,特别是在美化代码之外的方面。我怎么可能强迫Vetur使用内置的HTML美化器f还是代码的html部分?VScode附带的内置html解析器正是我要搜索的,但无法将其连接到Vetur(或VScode的其他Vue代码助手)