wlh320 / rime-ls

A language server for Rime input method engine 通过 LSP 代码补全使用 Rime 输入法
BSD 3-Clause "New" or "Revised" License
208 stars 13 forks source link

[Feature] 支持 c/s 模式 #15

Closed rainzm closed 1 year ago

rainzm commented 1 year ago

是否可以通过引入 server 模式,解决多开编辑器使用 rime-ls,数据库被锁的问题。

只有 server 模式下的 rime-ls 会访问数据库,其他的 rime-ls 访问 server。

wlh320 commented 1 year ago

其实已经支持了,现在有一个 listen 参数,可以绑定一个本地的网络端口,让 LSP server 和 client 可以通过 TCP socket 进行通信,这样只需要开一个 rime-ls 实例,多开的编辑器都连接并通过这个实例做补全。我认为是能避免数据库上锁的问题的。 就是没怎么测试过,如果有需求你可以试一试,看看有没有什么问题。

注意传输的都是明文,不要发送流量到公网上面。

rainzm commented 1 year ago

client需要特殊配置嘛,我通过rime_ls --listen 127.0.0.1:9257手动起来一个rime-ls,然后启动两个nvim编辑文件,还会有输出日志显示数据库上锁的问题:

image

nvim的配置没有改。

wlh320 commented 1 year ago

nvim 配置要改成通过网络连接,就是把原来写 binary 文件位置的地方改成 cmd = vim.lsp.rpc.connect('127.0.0.1', 9257)

rainzm commented 1 year ago

哇哦 你太棒了!终于可以用舒服的方式写文档了!

rainzm commented 1 year ago

原来文档里面有写 我还多看了几次 不好意思 😅