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

时间:2016-07-15 19:57:14

标签: visual-studio-code vscode-extensions

我想要做的是创建一个扩展HTML扩展的扩展 - 即它支持HTML支持的所有功能,包括以下内容:

  1. 语法突出显示(着色器)
  2. 智能感知
  3. 格式化HTML
  4. Emmet snippets
  5. 这些详细信息列在此页面HTML Programming in VS Code

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

    我已经获得#1作为着色器,#2可以通过语言服务器完成。

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

1 个答案:

答案 0 :(得分:0)

看起来这不可能作为扩展。查看源代码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> { ... }

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