我可以在 VS Code 中扩展现有的着色器或语言吗
Can I Extend an Existing Colorizer or Language in VS Code
我想做的是创建一个扩展 HTML 支持 - 即它可以完成 HTML 支持所做的一切,甚至更多,包括以下内容:
- 语法高亮(着色器)
- 智能感知
- 格式HTML
- Emmet 片段
此页面列出了这些详细信息HTML Programming in VS Code
最终我想创建一个支持 Liquid Templating 语法高亮和自动完成的扩展。
我已经将#1 作为着色器独立工作,而#2 可以通过语言服务器完成。
由于 Liquid 表达式被插入到 HTML 文档中,因此插件应该构建在 of/extend HTML 支持之上而不是覆盖它。这可能吗?
这看起来不可能作为扩展。查看源代码 src\vs\languages\html\common
,如果我想扩展现有的内置语言支持,那么我可以创建一个 class 扩展。
例如,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
语言支持。
我想做的是创建一个扩展 HTML 支持 - 即它可以完成 HTML 支持所做的一切,甚至更多,包括以下内容:
- 语法高亮(着色器)
- 智能感知
- 格式HTML
- Emmet 片段
此页面列出了这些详细信息HTML Programming in VS Code
最终我想创建一个支持 Liquid Templating 语法高亮和自动完成的扩展。
我已经将#1 作为着色器独立工作,而#2 可以通过语言服务器完成。
由于 Liquid 表达式被插入到 HTML 文档中,因此插件应该构建在 of/extend HTML 支持之上而不是覆盖它。这可能吗?
这看起来不可能作为扩展。查看源代码 src\vs\languages\html\common
,如果我想扩展现有的内置语言支持,那么我可以创建一个 class 扩展。
例如,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
语言支持。