lsp-bridge -- 速度最快的语法补全插件

可以,欢迎提交PR

fix void function reduce by zilongshanren · Pull Request #17 · manateelazycat/lsp-bridge · GitHub 提交了。

速度贼快,ui优化一下无敌了。

目前有个问题,当前buffer lose focus时没有 destroy frame,会把frame带到别的buffer去。

(add-to-list 'load-path "~/Github/lsp-bridge")
(add-to-list 'load-path "~/Github/lsp-bridge/completion/")
(add-to-list 'load-path "~/Github/lsp-bridge/core")

我要多加几个load path才不报错,不知道为啥。。

因为有三个 elisp 文件分别放到这几个子目录里面。

我把 *.el 文件都移动到外面吧,方便用户添加 load-path

嗯嗯,这样方便点

换了 lbcf.el 应该和 VSCode 的补全速度有的一拼了。

没有重现你的问题,但是盲加了一个补丁,应该可以修复

已经修复了。

目前 lsp-bridge 已经支持十种编程语言。

目前还剩补全菜单UI美化、引用跳转、文档查看三个功能了。

感谢大家这几天贡献的补丁。

1 个赞

我的想法是,虽然没法兼容 company 的 backend 的接口,但 frontend 还是可以的,这样就能少造轮子,自动获得了好用的 TUI 和 GUI 的补全界面。

我先试着接一下 company-box

1 个赞

很有希望(目前只需要小改两处 company-box,还需要解决一下图标和 annotation 的问题

3 个赞

加油,干脆直接fork company-box代码,你先都用一个图标和统一的备注,接口我一会来弄

clangd 的lsp-server会报一个错:

BrokenPipeError: [Errno 32] Broken pipe
Exception in thread textDocument/didChange:
Traceback (most recent call last):
  File "/usr/local/Cellar/[email protected]/3.9.12/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner
    self.run()
  File "/Users/lionqu/Github/lsp-bridge/core/lspserver.py", line 159, in run
    self.process.stdin.flush()
BrokenPipeError: [Errno 32] Broken pipe
Exception in thread textDocument/completion:
Traceback (most recent call last):
  File "/usr/local/Cellar/[email protected]/3.9.12/Frameworks/Python.framework/Versions/3.9/lib/python3.9/threading.py", line 973, in _bootstrap_inner
    self.run()
  File "/Users/lionqu/Github/lsp-bridge/core/lspserver.py", line 131, in run
    self.process.stdin.flush()
BrokenPipeError: [Errno 32] Broken pipe

帮我提一个 issue 吧,论坛上太多信息会漏掉,谢谢! :wink:

大佬,好改吗? 要不先推送一个版本?

在搞了在搞了,一小时内给个 draft PR

1 个赞

哈哈哈哈,好吧,我先放弃我魔改 corfu 的方案了。

之前 cape 也讨论过如何在 Corfu 上支持异步,不过目前也还没实现。

如果基于 lsp-bridge 的设计,补全整个流程应该这样设计:

  1. 根据不同的后端名字,创建一个 backend / completin_items 的字典
  2. 每个后端自己去更新字典的内容
  3. 后端更新内容以后, company / corfu 重新加载字典的内容, company / corfu 就不要管什么时候触发补全,什么时候更新内容

这样做可以做到完全不卡顿 Emacs ,company / corfu 现在的设计还是受限制于 Emacs 的单线程性能。

3 个赞