vscode 有人搞过语言支持插件开发吗?

2020-03-22 17:11:05 +08:00
 ooxiaoming

现在的问题是我们自己的后端引擎可以通过给项目路径来进行语法检测,编译错误啥的,但是在编辑器上写代码的时候,代码是没有写入到磁盘里的,因此文件跟编辑器上的代码不一致,想问下这种编辑器里输入的代码但是没有保存到文件上怎么进行语法检测呢?

2764 次点击
所在节点    Visual Studio Code
6 条回复
wikinee
2020-03-22 17:30:26 +08:00
没做过插件开发,建议不要检测。行为现在这样的插件都是保存之后触发的,比如 AutoFormatOnSave,pylint,还有 vim 的异步 ALE 。
ooxiaoming
2020-03-22 17:57:49 +08:00
@wikinee 看了下 typescript 的,都是输入代码就触发,但是这里面的办法不清楚
littleTomorrow1
2020-03-22 18:08:12 +08:00
这种语言支持插件都是通过 Language Server Protocol 来实现的吧
ooxiaoming
2020-03-22 18:11:33 +08:00
@littleTomorrow1 嗯,但是看了下 ts 的语言支持,也是交给 typescript 来检测的,主要就这里不知道里面是怎么实现的
pisc
2020-03-22 18:23:01 +08:00
去实现一个 language server,实现 protocol 里面 json rpc 接口就行了,不用关心编辑器的事情,具体的还是看 language server protocol 的文档吧
changnet
2020-03-22 20:40:07 +08:00
输入或者修改磁盘上的文件,vsc 都会通知 LSP,可以拿到没存盘的内容,这时候传给语法检测接口,返回结果给 vsc

如果检测接口是其他语言或者独立的程序,需要拉起一个子进程,把内容当作参数传过去,这种就不建议做实时检测,子进程太慢

或者建立 socket 之类的和检测程序交互

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/655126

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX