【问题标题】:VSCode extension: How to render colored output in output channel?VSCode 扩展:如何在输出通道中渲染彩色输出?
【发布时间】:2019-04-04 20:47:01
【问题描述】:

我有来自 API 的自定义输出,我想将其格式化为带有一些颜色值的字符串。

【问题讨论】:

    标签: visual-studio-code vscode-extensions


    【解决方案1】:

    可以使用TmLanguage grammar 为输出通道着色。 Output Colorizer 扩展扩展正是这样做的:

    您可以通过定位text/x-code-output mimetype 来做到这一点:

    "contributes": {
        "languages": [{
            "id": "code-output",
            "mimetypes": [
                "text/x-code-output"
            ]
        }],
        "grammars": [{
            "language": "code-output",
            "scopeName": "code.output",
            "path": "./syntaxes/code-output.tmLanguage"
        }]
    }
    

    但是,由于这种着色是基于 mimetype 的,you can't apply the highlighting to a specific output channel only。这意味着提供输出通道着色的两个扩展会发生冲突。

    【讨论】:

    • 我不清楚...我怎么能说输出通道使用代码输出?
    • 我认为这基本上就是将 mimetype 声明为 text/x-code-output 所做的。不过,您似乎想错了。
    【解决方案2】:

    在 v1.65 中,Proposed Extension API 能够“创建具有自定义语言 id 的输出通道”,以避免与可能影响输出语法的其他扩展发生冲突。

    带有自定义语言 ID 的输出通道

    有一些扩展可以定义标记或语法着色 和 code-lens 特征到它们的输出通道,因为它们是 文本文档(只读)。由于所有输出通道 共享相同的语言 id,这些自定义可能是错误的 应用于其他输出通道。因此有人要求 使用自定义语言 ID 创建一个输出通道,以便扩展 作者可以按语言定义自定义。因此在这 里程碑,我们推出了 proposal 使用自定义语言 ID 创建输出通道。请尝试一下 出来给我们反馈。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 2019-08-17
      相关资源
      最近更新 更多