当前位置: 首页 > 知识库问答 >
问题:

使用新元素扩展现有VSCode语法突出显示

魏鸿
2023-03-14

我正在开发一种新的Markoff风格,它引入了一些新的语法元素。我已经手动修改了与VSCode捆绑在一起的markdown.tmLanguage.json文件,以便为它们实现一些语法突出显示。我现在想创建一个VSCode扩展,为Markoff的语法突出显示提供新的补充。

但是,我真的不认为复制粘贴原始的 Markdown 语法突出显示逻辑只是为了在顶部添加一些东西是一个好主意——有没有办法创建一个 .json 语法突出显示文件,该文件继承(因为缺乏更好的词)现有语法突出显示来自另一个文件?

例如,下面是一些伪代码

{
    "version": "1.0.0",
    "name": "My Markdown Flavor",
    "extends": "markdown.tmLanguage.json", // <- PSEUDOCODE
    "repository": { "... insert my extensions here ..." }
}

这可能吗?还是必须复制粘贴整个< code > markdown . TM language . JSON 文件?

共有1个答案

莘羽
2023-03-14

我想通了 - 包含text.html.markdown作为最后一个模式就足够了:

{
    "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
    "name": "Majsdown",
    "patterns": [
        {
            "include": "#majsdown_inject_expression"
        },
        {
            "include": "#majsdown_execute_statement"
        },
        {
            "include": "text.html.markdown"
        }
    ],
    
    // ...
 类似资料:
  • 我环顾四周,找不到一种自动完成这项工作的方法。所以: 我在vim中内置了一些语法高亮,我想转移到vscode。我至少有两个部分卡住了。 到目前为止,我的情况是这样的:我已经构建了一个vscode语言扩展——设置了一些基本的语法规则,并将其复制到vscode config文件夹中。 我遇到麻烦的部分-我可以在某些字段的含义中澄清一下-命名约定。 和语法的嵌套解析,这些东西只出现在其他元素中。 下面是

  • 我正在为vscode创建一个语言扩展来描述一种语言,其中一些语法元素引用特定的颜色。我想用这些颜色给这些元素上色,不管使用什么主题,而不必要求用户选择我的特定自定义主题,而不是他们自己对其他一切的偏好。在现有的语言和主题定义系统中有没有办法做到这一点? 我的后备解决方案类似于https://github.com/KamiKillertO/vscode-colorize/,它在语法系统之外运行以动态

  • 例如login.blade.php,当我在PhpStom中创建Blade模板时,语法突出显示正常工作。但是当我把它命名为layout.blade.php时,它不起作用。为什么?我如何修复它?

  • 我正在寻找一个用JavaScript编写的好的全方位语法荧光笔,它将自动检测所使用的语言并应用正确的语法高亮显示。 我从一个简单的谷歌搜索中找到了无数个,但它们都必须在

  • 无论出于什么原因,当我复制/粘贴带有语法高亮的代码时,VSCode正在复制不间断的空格。只要我在VSCode中工作,这就没问题,但在VSCode中复制/粘贴内容时,这是一场噩梦。 我在使用MSWord时,激活了“隐藏字符”功能,这是了解正在发生的事情的一种简单方法。我可以这样复制: 在VSCode中创建一个新文件(无扩展名,未保存),键入一些文本,全选并在MSWord中复制/粘贴- 有什么想法吗?

  • 我正在为VSCode开发一个自定义语言语法高亮扩展。我遇到了一个问题,lookbehinds在空白旁边使用时行为异常。 我想强调的代码示例: 我尝试使用的代码示例(在中): 此模式包含在(另一个模式中,该模式存在于整个文件中): 症结在于正则表达式的部分。您应该能够执行或或和之间的任意数量的空格,不管有多少。但是,当我尝试使用它时,我得到了这个: 我也试过< code>\\s和< code>\\s