Visual Studio Code 语言扩展继承现有的

2024-01-06

在 Visual Studio Code 中,只需提供语法文件即可添加自己的语言扩展,例如通过 JSON。

我想为我使用的特定脚本语言提供语法文件。脚本语言嵌入在 ARM 汇编源代码中,并且已经存在一个插件。所以我基本上想通过我的脚本语言来扩展 ARM 扩展。目前可能吗?

在我看来,这将是我的情况,因为如果我只是复制现有的扩展(这是麻省理工学院许可的),我实际上会创建一个硬分叉,而我不打算这样做。


1.注射

您可以通过将以下内容添加到您的语言扩展来将语言扩展注入到父范围的范围中package.json:

"contributes": {
    "grammars": [
        {
            "scopeName": "source.asm.x86_64.your_syntax_extension",
            "path": "./syntaxes/your_syntax_extension.json",
            "injectTo": [ "source.asm.x86_64" ]
        }
    ]
}

2. 包括

如果您的语言扩展使用自定义文件类型或者您想要覆盖某些父作用域的语法定义,您可以编写自己的定义并包含父作用域。您可以使用以下任一格式:

your_syntax_extension.json

{
  "fileTypes": [
    "myExtension"
  ],
  "name": "Your Syntax Extension",
  "patterns": [
    {
      "include": "source.asm.x86_64"
    }
  ],
  "scopeName": "source.asm.x86_64.your_syntax_extension"
}

your_syntax_extension.tmLanguage

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>fileTypes</key>
    <array>
        <string>myExtension</string>
    </array>
    <key>name</key>
    <string>Your Syntax Extension</string>
    <key>patterns</key>
    <array>
        <dict>
            <key>include</key>
            <string>source.asm.x86_64</string>
        </dict>
    </array>
    <key>scopeName</key>
    <string>source.asm.x86_64.your_syntax_extension</string>
</dict>
</plist>

在这两种情况下,您可能希望将扩展包作为依赖项包含在内。为此,请将其唯一标识符添加到您的package.json:

"extensionDependencies": [
    "13xforever.language-x86-64-assembly"
]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Visual Studio Code 语言扩展继承现有的 的相关文章

随机推荐

  • Android 屏幕尺寸 HDPI、LDPI、MDPI [重复]

    这个问题在这里已经有答案了 我有一个需要适合所有屏幕尺寸的背景 我有三个文件夹 hdpi ldpi and mdpi对于可绘制对象 但在模拟器中没有任何关于分辨率的参考hdpi是什么mdpi and ldpi are 你应该阅读支持多屏 h
  • 对枚举的引用不明确 Objective-c

    我在另一个文件中定义了一个 NS ENUM typedef NS ENUM NSUInteger LinkPlatformType LinkPlatformTypeEmail 1 LinkPlatformTypeFacebook LinkP
  • 如何使用返回类型 ActionResult 对操作进行单元测试?

    我的问题与这个非常相似 当返回类型为 ActionResult 时 如何对操作进行单元测试 https stackoverflow com q 18865257 419956 问题是我的问题混合在generic ActionResult
  • 如何使用jquery选择表中的一行?

    我在我的应用程序中创建了一个表格 我想在单击复选框时选择 更改背景颜色 整行 就像 gmail 所做的那样 当我们单击 gmail 中的复选框时 整行变为黄色 table tbody tr td td tr tbody table
  • 对“gluOrtho2D”的未定义引用[重复]

    这个问题在这里已经有答案了 http programanddesign com cpp qt opengl code example http programanddesign com cpp qt opengl code example
  • 正则表达式如何匹配 2 个字段

    如何捕获引号内的文件名以及后面的数字作为命名捕获 正则表达式 C Files fileone txt 5969784 file2 txt 45345333 在字符串中的每次出现中 能够捕获 fileone txt 和后面的整数 循环循环每对
  • 为什么 gevent.spawn 在调用 Greenlet.join 之前不执行参数化函数?

    我想使用发出异步 HTTP POST 请求gevent 我不关心响应 我只想尽快执行请求 但是 每当我尝试使用gevent spawn 请求永远不会执行 我知道这一点是因为调用 ready or successful 上的方法Greenle
  • 模态窗口和对话窗口有什么区别?

    这个问题准确地描述了我想知道的内容 模态窗口和对话有什么区别 当模式窗口变成对话时 反之亦然 我该如何实现这两个目标 非常感谢朝正确方向的推动 模态窗口是在应用程序之上运行的窗口 因此在关闭模态窗口之前您无法对应用程序执行任何操作 jQue
  • Laravel - 将 PHP 资源传递给 Storage::put

    Laravel 文档 https laravel com docs 5 2 filesystem storing files https laravel com docs 5 2 filesystem storing files 说明这一点
  • Swift 中两个弱变量相互引用?

    今天我再次尝试理解 Swift 中的保留循环和弱引用 阅读通过文档 https developer apple com library ios documentation Swift Conceptual Swift Programming
  • 可视化解决方案资源管理器中的实际文件夹?

    MS Visual Studio 有解决方案资源管理器 我可以在其中查看所有项目文件 我还可以创建类似于文件文件夹的过滤器 以将它们分组 问题是 我希望我的文件在磁盘上的视觉和物理上分组 但我不想在视觉和磁盘上应用每个更改两次 有没有什么方
  • Go中的PostgreSQL列表参数(使用数据库/SQL和pq)

    我正在尝试编写一个采用列表参数 即作为值列表的单个参数 的查询 看来这在 PostgreSQL 中至少有时是可能的 https stackoverflow com a 10829760 836390 https stackoverflow
  • Swing 组件何时“可显示”?

    有没有办法 例如 通过事件 来确定 Swing 组件何时变为 可显示 根据 JavadocsComponent getGraphics http java sun com j2se 1 5 0 docs api java awt Compo
  • HttpClient - 处理聚合异常

    您好 我正在使用与此类似的 HttpClient public static Task
  • github 上的 Teamcity 构建徽章

    我想在我的 github 页面上添加 teamcity 构建徽章 我的存储库是私有 github 存储库 我首先将下面的代码包含为link https blog jetbrains com teamcity 2012 07 teamcity
  • 定义实体框架 1:1 关联

    我试图在实体框架模型中定义两个实体之间的 1 1 关联 一个映射到表 另一个映射到视图 使用 DefinedQuery 当尝试在设计器中定义映射时 它让我选择 1 表或视图来映射关联 我应该选择什么 我可以选择两个表中的任何一个 但随后我被
  • 更新 Ruby on Rails 控制器中的参数

    我有一个控制器 我想在更新之前更新其中一个参数的值 以便在同一个保存到数据库的操作中进行更新 不幸的是 下面的代码没有设置z在数据库中 if model x YES model z blank model params z Time now
  • 如何在Eclipse的“运行配置”中设置“主类”

    在一个Java项目中 有两个java文件都有main方法 这两个java文件的绝对路径是 C Desktop project1 src com pre moveposition1 java And C Desktop project1 sr
  • TypeError:TextIOWrapper 类型的对象不可 JSON 序列化

    如果代码正常工作 那么每当有人在聊天中输入内容时 他们都会获得 5 经验 并且该信息会被放入 json文件 但发生的情况是每当有人在聊天中输入内容时就会出现此错误 on message users json dumps f TypeErro
  • Visual Studio Code 语言扩展继承现有的

    在 Visual Studio Code 中 只需提供语法文件即可添加自己的语言扩展 例如通过 JSON 我想为我使用的特定脚本语言提供语法文件 脚本语言嵌入在 ARM 汇编源代码中 并且已经存在一个插件 所以我基本上想通过我的脚本语言来扩