【问题标题】:Embedding C# Language in an Visual Studio Code Extension在 Visual Studio 代码扩展中嵌入 C# 语言
【发布时间】:2022-01-15 20:19:42
【问题描述】:

我正在尝试在 VSC 扩展中嵌入 c# 语法突出显示。

我的tmLanguange.json如下

{
    "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
    "name": "CS Asm",
    "patterns": [
        {
            "include":"#csasm"
        }
    ],
    "repository": {
        "csasm" :{
            "patterns": [{
                "name" : "meta.embedded.block.bmasm",
                "begin": "@{",
                "end": "}",
                "patterns" : [{
                    "include" : "source.csharp"
                }]
            }]
        }
    },
    "scopeName": "source.csasm"
}

但是,这不会在 VSC 中产生任何突出显示。如果我将 source.csharp 更改为其他内容,它确实有效。

正常的 .cs 文件被正确突出显示,所以我假设加载了一个“csharp”扩展来提供语法规则。

C#有什么特别之处吗?

【问题讨论】:

    标签: visual-studio-code vscode-extensions


    【解决方案1】:

    因为微软定义source.cs而不是source.csharp

    https://github.com/microsoft/vscode/blob/main/extensions/csharp/package.json#L33

    【讨论】:

    • 天才。然而它的 csharp 在下拉菜单中。
    • @BJury languagescopeName 可以定义不同的值(对于 C# 和许多其他语言),并且您的语法需要应用 scopeName
    • 好的,谢谢。只是为什么他们不能保持一致......?
    • @BJury 我们只能猜测scopeName的值source.cs可能指的是文件扩展名.cs,而全名csharp更适合language。跨度>
    猜你喜欢
    • 1970-01-01
    • 2022-01-10
    • 2022-11-08
    • 2011-08-16
    • 2018-07-21
    • 1970-01-01
    • 2018-12-28
    • 1970-01-01
    • 2015-07-22
    相关资源
    最近更新 更多