问题标签 [tmlanguage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
573 浏览

visual-studio-code - 有没有办法使用 tmLanguage 语法来扩展 vscode 集成的 markdown 扩展语法高亮?

我正在为 vscode 开发语言扩展。我定义了一个 tmLanguage 文件,一切正常。在悬停功能中,使用vscode.MarkdownString.appendCodeblock()markdown 被正确解释,并且我的自定义语言的语法突出显示开箱即用,通过执行以下操作:

其中examples包含我的自定义语言的一些示例代码,并且"lmps"是我的语言标识符。(示例图像悬停

我想知道是否有办法在 webview 中实现相同的目标。我成功地content在 webview 中显示,将 markdownString 编译成 html:

到目前为止一切都很好,但是通过这种方式,markdown 不知道我的自定义语言并且不做任何语法高亮。(示例图片 Webview)现在,我了解到可以通过在激活函数中返回一个对象来贡献一个 markdown-it 插件,从而为 Markdown 扩展添加语言支持。

但是,如果我没看错的话,这实际上需要开发一个专用的 markdown-it 插件。我想知道是否有更简单的方法可以将我的语言集成到 markdown api 中。因为 vscode 显然已经可以在悬停和完成建议中原生地做到这一点。我可以在 webview 中以某种方式使用此功能吗?或者,有没有一种方法可以从 tmLanguage 文件生成 markdown-it 插件,而无需深入学习 markdown-it 插件开发?也许有人有指向完成类似事情的项目的指针?

0 投票
1 回答
103 浏览

visual-studio-code - 无法让范围检查员识别评论

我一直在尝试为我们在文档合成工具中使用的规则编写自己的语法突出显示扩展。

我已经能够让它大部分工作正常,但我无法让范围检查员识别这些评论。

我从 tmLanguage 文件中删除了所有其他工作代码以排除冲突,并留下以下内容

ote-rules.tmLanguage.json

我要匹配的文件是纯文本文件(*.txt扩展名),注释是带有双斜杠的行注释或分别以/*and开头和结尾的块注释*/

测试文本文件.txt

当我用范围检查器查看上面的文本时,它认识到它来自 source.ote-rules 但将令牌类型显示为“其他”

范围检查器输出的屏幕截图显示范围为其他

我已经检查了 rubular.com 上的正则表达式,它们似乎适用于我展示的示例,所以我错过了什么?

0 投票
0 回答
110 浏览

visual-studio-code - VS Code 扩展 HTML 注入语法

我正在尝试使内部评论中的所有内容都TODO(...)像javascript一样。它只是行不通。也没有任何输出。

包.json

语法/注入.json

0 投票
0 回答
165 浏览

visual-studio-code - 如何在 vs 代码语法高亮中使用多种颜色?

我在 vs 代码中创建了一个语言支持扩展。现在我已将所有关键字添加到我的 tmLanguage.json 文件中。但我看到所有关键字都以单一颜色(蓝色)突出显示。有没有办法为我的语法高亮添加多种颜色?就像具有一种颜色的数据类型和具有另一种颜色的内置函数一样。

如果是,请帮助我。

0 投票
1 回答
19 浏览

tmlanguage - 有没有办法防止(除了).tmLanguage 中“匹配”中的特定字符

正如标题所说,有没有办法防止 .tmLanguage 语法高亮中“匹配”中的特定字符?例如,匹配除 w 和 s 之外的所有内容。

0 投票
0 回答
28 浏览

visual-studio-code - VS Code自己的语言,如何更改注释字符(撇号)而不是//?

我在 VS CODE 中开发自己的语言设置时遇到问题。

下面是一个示例:我想更改默认的 //(例如在 JSON 语言中),在我的脚本语言中,行注释以字符 '(撇号)开头。

在此处输入图像描述

例如,其他函数 textmate 定义没有问题:

在此处输入图像描述

有人可以帮助提供其他 xxx.tmLanguage.json 中的一些示例吗?

0 投票
0 回答
62 浏览

regex - tmLanguage:如何“链接”模式,例如在匹配后匹配某些内容,甚至在换行符上?

我想强调 VS Code 中的一种语言(主要是,如果它也适用于 Sublime,一些同事会很高兴)。这种语言并不特别关心换行符,它们算作任何其他空格。因此,换行符可以出现在标记之间的任何位置。

这是一个示例代码行:

但这也是有效的(eek):

对于外部范围,我可以以 开头function和结尾is,因为这些是必须出现的关键字。但其余的要棘手得多。例如,对于参数,它应该以inor开头out,然后是变量名。然后,可选地存在as,如果是这种情况,则后跟零个或多个修饰符(pointer, const, ...),然后是类型名称。我如何在考虑多行的情况下表达这一点?

我尝试了一些变体但没有成功(在这里,只匹配“in”+ 名称进行探索):

有或没有\\G,试过没有"end",......我的想法不多了。帮助!

0 投票
1 回答
46 浏览

visual-studio-code - tmLanguage 支持奇怪的多行字符串文字

我有一个用于 Visual Studio Code 的 LPC 编程语言的扩展。我正在使用 tmLanguage 语法。但是,我还没有找到支持该语言的多行字符串文字的方法。

正则表达式将是:@{1,2}(\w*)\n((.|\n)*?)\n(###\s*)?(\1)\b

要匹配的示例语法:

这基本上是我需要正确处理的最后一点语法,我真的还没有找到处理它的方法。

任何帮助将不胜感激。

0 投票
0 回答
94 浏览

visual-studio-code - 如何将 TextMate 语法注入 VS Code 中的 Markdown 标题?

我想[ ]在 VS Code 的降价文件中选择语法高亮。

我可以[ ]使用以下目标regex(?<=\s)\]|\[(?=\s)。但是[ ],当它是标题的一部分时不会匹配。

作为一个最小的例子,在package.json我有以下内容:

然后,在todo.markdown.json我有:

最后,在 VS Code 中,settings.json我使用以下方法应用颜色:

我可以在下面看到它[ ]被选中,但不是在标题内时。

在此处输入图像描述

当我检查令牌和范围时,我看到了几个textmate scopes. 我不确定这是否相关,但似乎 VS Code 正在根据markup.heading范围突出显示降价标题。但是,数组markup.heading中不存在。textmate scopes

在此处输入图像描述

我尝试更改为"injectionSelector": "L:heading.1.markdown"and/or "injectTo": ["heading.1.markdown"],但无论我指定什么选择器,我似乎都无法[ ]在标题中匹配。

0 投票
1 回答
116 浏览

python-sphinx - 如何将自定义 tmLanguage 语法添加到 Sphinx/RST

有没有一种方法可以将 atmLanguage.json导入 Sphinx 以添加对 RST 的新/自定义语言的支持?