【发布时间】:2022-01-10 20:22:20
【问题描述】:
我有带有 YAML 前端内容的 HTML 代码,我想同时格式化这两个部分。我创建了一个自定义语法并且突出显示效果很好。
如何为自定义文件类型注册一个新的格式化程序,它将继承自 VSCode 中现有的格式化程序?
看起来像这样:
---
title: "Title"
description: "Long and arduous description"
x:
bodyclasses: home
---
{{extends "page.html"}}
{{block Body()}}
<article class="main">
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Voluptates, magni sapiente voluptas magnam omnis nisi aut amet! Facilis exercitationem voluptatem dolorem asperiores accusamus vitae, maiores veritatis, animi perspiciatis dolor commodi!</p>
</article>
{{end}}
这是我目前的jet.tmLanguage.json(上面的格式是用于以 YAML 为前端的 Go Jet HTML 模板文件):
{
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
"name": "HTML Template (Jet)",
"scopeName": "text.html.jet",
"fileTypes": [
"jet"
],
"patterns": [
{
"yaml.format.enable": true,
"include": "#frontMatter"
},
{
"html.format.enable": true,
"include": "text.html.basic"
}
],
"repository": {
"frontMatter": {
"begin": "\\A-{3}\\s*$",
"contentName": "meta.embedded.block.frontmatter",
"patterns": [
{
"include": "source.yaml"
}
],
"end": "(^|\\G)-{3}|\\.{3}\\s*$"
},
}
}
【问题讨论】:
-
也许简单的解决方案可能是最好的解决方案......为什么不把 yaml 作为第一个(评论)元素
-
@Akxe 我更新了帖子以包含我当前的设置,我相信它就是这样做的。但是,我正在尝试从 HTML 和 YAML 为两个不同的部分继承格式化程序,我希望这两个部分能够被继承。语法突出显示似乎有效。
-
我不熟悉它是如何工作的,但我知道有许多多格式化程序可以在 JS/TS 中使用
/*yaml*/`... yaml config ...`之类的注释来格式化模板字符串
标签: html visual-studio-code yaml formatter