KuriyamaMirai

Results 4 comments of KuriyamaMirai

> 1. TextMate是VSCode的语法高亮方案。 https://code.visualstudio.com/api/language-extensions/syntax-highlight-guide > 2. 这个插件使用了TextMate分析哪些部分是 注释、字符串,针对不同内容做不同的翻译处理。 目前VSCode API没有暴露"文档高亮语法"出来,所以这里在插件使用相同方法进行分析了。 > 3. 不同语言可以通过插件贡献不同的高亮方案, createGrammar 就是对应语法的处理方法入口。 具体处理方法,可以查看下VSCode源码。 > > 最后感谢探索出remote下的处理方法。 我这边没有使用remote环境,一直没有进行细致分析,这里看明显内置的语言高亮Gramma,不是通过插件方式注册的,之前我的处理方式是不能在这个场景生效。 感谢解答我的疑惑! 根据你的解答来看,不使用TextMateService,commentProvideHover return null的情况下 翻译出来的文本是没有高亮 注释 字符串的? 和正常运行的插件差别在没有工具栏 目前看rust语言,TextMateService好像并不是必须的,不清楚是翻译api处理了这个还是其他什么原因 我的pull...

@intellism 我尝试过每次触发Hover的时候查看加载的插件,确实是在vscode_server没有加载语法高亮 remote不是基于浏览器的vscode,是server+client的方式 我之前看的文档,我的理解是一部分插件在server 一部分插件在client,通过vscode_server进程来负责通信 语法高亮文件都是本地clinet里的,远程上vscode_server的文件夹我也翻找过了,没有高亮文件 我上面的例子,commentProvideHover 已经返回null了,是不会使用TextMateService,也没有语法文件 却正确显示并翻译了注释,所以我觉得TextMateService好像并没有起到效果,或者说在支持markdown注释的语言里不需要使用TextMateService?

> > > > > @intellism 我尝试过每次触发Hover的时候查看加载的插件,确实是在vscode_server没有加载语法高亮 remote不是基于浏览器的vscode,是server+client的方式 我之前看的文档,我的理解是一部分插件在server 一部分插件在client,通过vscode_server进程来负责通信 语法高亮文件都是本地clinet里的,远程上vscode_server的文件夹我也翻找过了,没有高亮文件 > > 我上面的例子,commentProvideHover 已经返回null了,是不会使用TextMateService,也没有语法文件 却正确显示并翻译了注释,所以我觉得TextMateService好像并没有起到效果,或者说在支持markdown注释的语言里不需要使用TextMateService? > > 没有TextMateService是不会正确识别“注释区域”的, 你可能理解错了,如果你hover到变量上,系统会提升Hover信息,这个插件拦截了其他插件的Hover,并进行翻译输出了。你看到的翻译成功,应该是这个场景。 非常非常感谢!我现在明白了! 你说的那种场景没有语法文件是没办法实现的,那解决方案应该只有内置基础语法了。 我修改下pull request,把vscode基础语法包含进来,使用内置的语法文件构造一个grammarExtensions应该就可以了

@intellism 我更新了pull request #140 看下这个方案是否可行? 我拆分成了两个commit 1. 修复未注册语法会直接throw,导致整个插件无法使用 2. 把语法文件包含在插件内部,判断环境为remote的时候将内置的语法添加到grammarExtensions 现在remote下已经可以正常工作了😄😄😄