首页 > 解决方案 > 如何在 VSCode 中访问 *已经加载的语言 * 的 TextMate 语法?

问题描述

我正在尝试创建一个 Visual Studio Code 扩展,它根据句法上下文启用和禁用字体连字。特别是,在大多数情况下,我只希望将连字应用于运算符,而不是应用于字符串或注释或变量名或其他任何东西。

扩展可以访问您所有打开的文档。然而,除非我遗漏了什么,据我所知,VScode 并没有让您作为扩展开发人员直接了解这些文档是如何被解析的。即使自动解析已经很明显已经发生了(从内置语法着色可以看出),我可以访问的只是我的文档文本,分解成行,我可以找到匹配的编辑器对象,但没有关于已经在幕后完成的文本解析的提示。

我必须在我的扩展程序中重新解析文本似乎很荒谬,但显然这就是我必须做的。

此外,我什至看不到一种直接的方法来告诉 TextMate 如何解析文档,而无需为我希望能够处理的每种语言提供我自己的 TextMate 语法副本,或者以某种方式翻阅 VSCode 的扩展和我自己追踪埋在里面的所有语法。

我尝试使用现有的扩展作为我的扩展的模型(范围信息:https ://github.com/siegebell/scope-in​​fo ),但是三年没有更新,而且似乎不起作用不再使用当前版本的 VSCode。看起来那个扩展有一个使用内置语法的技巧,但是这个技巧不再起作用了。

有谁知道更简单的方法来做到这一点?

标签: typescriptparsingvisual-studio-codevscode-extensions

解决方案


推荐阅读