【问题标题】:Can I Extend an Existing Colorizer or Language in VS Code我可以在 VS Code 中扩展现有的着色器或语言吗
【发布时间】:2016-11-19 03:22:16
【问题描述】:

我想做的是创建一个扩展 HTML 支持的扩展 - 也就是说,它完成了 HTML 支持所做的一切以及更多,其中包括以下内容:

  1. 语法高亮(着色器)
  2. 智能感知
  3. 格式化 HTML
  4. Emmet sn-ps

这些详细信息列在此页面HTML Programming in VS Code

最后我想创建一个支持Liquid Templating语法高亮和自动完成的扩展。

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

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

【问题讨论】:

标签: visual-studio-code vscode-extensions


【解决方案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> { ... }

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

【讨论】:

    猜你喜欢
    • 2018-07-21
    • 1970-01-01
    • 2020-04-04
    • 2021-03-23
    • 1970-01-01
    • 2018-12-28
    • 2022-07-20
    • 2018-01-14
    • 2020-03-07
    相关资源
    最近更新 更多