我可以在 VS Code 中扩展现有的着色器或语言吗

Ian*_*ien 6 visual-studio-code vscode-extensions

我想要做的是创建一个扩展 HTML 支持的扩展 - 也就是说,它可以完成 HTML 支持所做的所有事情,甚至更多,其中包括以下内容:

  1. 语法突出显示(着色器)
  2. 智能感知
  3. HTML 格式
  4. 艾米特片段

本页列出了这些详细信息VS Code 中的 HTML 编程

最终我想创建一个支持Liquid 模板语法突出显示和自动完成的扩展。

我已经让#1 作为着色器独立工作,#2 可以通过语言服务器完成。

由于 Liquid 表达式被插入到 HTML 文档中,因此该插件应该构建在 HTML 支持之上/扩展 HTML 支持而不是覆盖它。这可能吗?

Ian*_*ien 1

看起来这不可能作为扩展。查看源代码src\vs\languages\html\common,如果我想扩展现有的内置语言支持,那么我可以创建一个类扩展。

例如,Handlebars语言支持是以下内容的扩展HTML并由此实现:

// handlebars.ts
import htmlMode = require('vs/languages/html/common/html');
export class HandlebarsState extends htmlMode.State { ... }
export class HandlebarsMode extends htmlMode.HTMLMode<htmlWorker.HTMLWorker> { ... }
Run Code Online (Sandbox Code Playgroud)

因此,在我的特定情况下,我要么想扩展 HTML,要么扩展 Handlebars(我还没有确定哪个更有意义)以添加Liquid语言支持。