如何防止 VSCode HTML 语言服务器格式破坏 WebC 组件中的前端内容?

How can I keep the VSCode HTML-language-server formatting from breaking the frontmatter in a WebC-component?

提问人:kiloton 提问时间:10/17/2023 更新时间:10/17/2023 访问量:23

问:

我正在使用模板语言在多模态编辑器中编写一个(第十一个)博客。要获得不同语言的语法高亮显示和自动格式化,需要安装兼容的语言服务器,并提供兼容 LSP 的精选列表。 对于 ,他们推荐 VSCode HTML LSP。 我也将其用于 WebC,因为它是有效的标记。我现在确实得到了语法突出显示和代码格式化(保存和按需)。但是,-component 的 frontmatter 也被格式化,以便删除缩进 - 破坏 -键,该键具有缩进的子键,这些子键会丢失缩进。11tyhelixWebChelixHTMLWebCpagination

为了说明这一点,在格式化之前:

---
layout: "_layouts/document.webc"
title: home
pagination:
  data: collections.post
  size: 2
  alias: posts
  reverse: true
---

在损坏的变体之后:

---
layout: "_layouts/document.webc"
title: home
pagination:
data: collections.post
size: 2
alias: posts
reverse: true
---

当打开我的 -component with and then 时,我已经查看了螺旋对数,螺旋和 LSP 的来回可见如下:WebChx -v my-component.webc:log-open

2023-10-17T14:18:04.923 helix_lsp::transport [INFO] -> {"jsonrpc":"2.0","method":"textDocument/formatting","params":{"options":{"insertSpaces":true,"tabSize":2},"textDocument":{"uri":"file:///<redacted>.webc"}},"id":1}
2023-10-17T14:18:04.966 helix_lsp::transport [INFO] <- {"jsonrpc":"2.0","id":1,"result":[{"range":{"start":{"line":0,"character":0},"end":{"line":28,"character":8}},"newText":"---\nlayout: \"_layouts/document.webc\"\ntitle: home\npagination:\ndata: collections.post\nsize: 2\nalias: posts\nreverse: true\n--- <redacted>]}

我假设必须有可能配置 LSP,以便它(最好的情况)完全忽略 frontmatter,或者在将字符串发送到 LSP 时告诉 helix 忽略它。

language-server-protocol eleventy yaml-front-matter helix-editor

评论


答: 暂无答案