typescript - 如何在 VSCode 中访问 *已经加载的语言 * 的 TextMate 语法?
问题描述
我正在尝试创建一个 Visual Studio Code 扩展,它根据句法上下文启用和禁用字体连字。特别是,在大多数情况下,我只希望将连字应用于运算符,而不是应用于字符串或注释或变量名或其他任何东西。
扩展可以访问您所有打开的文档。然而,除非我遗漏了什么,据我所知,VScode 并没有让您作为扩展开发人员直接了解这些文档是如何被解析的。即使自动解析已经很明显已经发生了(从内置语法着色可以看出),我可以访问的只是我的文档文本,分解成行,我可以找到匹配的编辑器对象,但没有关于已经在幕后完成的文本解析的提示。
我必须在我的扩展程序中重新解析文本似乎很荒谬,但显然这就是我必须做的。
此外,我什至看不到一种直接的方法来告诉 TextMate 如何解析文档,而无需为我希望能够处理的每种语言提供我自己的 TextMate 语法副本,或者以某种方式翻阅 VSCode 的扩展和我自己追踪埋在里面的所有语法。
我尝试使用现有的扩展作为我的扩展的模型(范围信息:https ://github.com/siegebell/scope-info ),但是三年没有更新,而且似乎不起作用不再使用当前版本的 VSCode。看起来那个扩展有一个使用内置语法的技巧,但是这个技巧不再起作用了。
有谁知道更简单的方法来做到这一点?
解决方案
推荐阅读
- c# - 无法连接到远程服务器 ---> 无法建立连接,因为目标机器主动拒绝它
- c++ - 如何在此函数中使用 millis() 而不是 for 循环
- neo4j - 当关系也有一些信息是节点时,设计neo4j图的最佳方法是什么
- java - 解析模板 [] 时出错,模板可能不存在或可能无法被任何已配置的模板解析器访问
- powershell - 从 csv 更改远程服务器的密码
- javascript - 内容不显示在 Internet Explorer Web 浏览器中
- python - 如何使 numxepr 与 complex64 一起运行?
- javascript - 如果我们将 3 个参数传递给在 JavaScript 中用 2 个参数声明的函数,为什么我们不会出错
- batch-file - 如何仅将 cmd 中的特定文件移动到另一个文件夹?
- java - 为什么 Full GC 不能释放一些内存,但 JVMTI 触发的 ForceGarbageCollection 可以