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

看中文readme底部,看文档。

1 个赞

真好用,比nox快多了。感谢楼主和各位大神的辛苦。

我用的mac emacs,下载于 https://emacsformacosx.com。可惜不支持svg,不能显示好看的图标。

1 个赞

新版本的brew已经无法自定义选项编译emacs了吧?只能cask模式安装,也是从https://emacsformacosx.com/下载的。

$ brew --version Homebrew 3.6.10 Homebrew/homebrew-core (git revision cfdda2c5ef1; last commit 2022-11-13) Homebrew/homebrew-cask (git revision e4db733ee0; last commit 2022-11-13)

yas–all-templates 和 yas–get-snippet-tables 这两个函数的性能消耗还是很大的, 因为 lsp-bridge 是完全异步的, 所以每次 LSP 服务器返回数据的时候都计算 yasnippet 的模板, 一是耗费性能, 二是快速敲击代码过程中这些 yas 模板都是无用的。

今天写了一个补丁, 用户快速输入字符的过程中, 不再查询 yas 模板, 只有当最后一个字符停止敲击后200ms才查询 yas 模板。

通过这个补丁的优化, lsp-bridge 的性能提升了30% (之前测试发现 yas 模板计算性能占 acm 菜单全部计算量的 1/3), 总体体验更加丝滑了。

8 个赞

函数的调用顺序分析的功能即将被 add call hierarchy by kongds · Pull Request #417 · manateelazycat/lsp-bridge · GitHub 这个补丁支持。

这个功能合并后, 分析代码的来龙去脉就很方便了。

感谢 @kongds 大佬的补丁, 知道你是中国人, 我就说中文啦。 :wink:

4 个赞

懒猫大佬,我build的时候出现几个上图的错误是怎么回事呢?

不要build

我用的Borg,它自动会build的,咋办

我不知道呀, git submodule就好了,不要用任何包管理器。

你只要 borg-clone 下来就好了。不执行 borg-assimilate 是不会去 build 的,然后你按 lsp-bridge 的 Readme 手动加入 load-path 就好了。

Borg 本质也是 git submodule。

.gitsumodules里面加上no-byte-compiling,给每一个你不希望编译的el文件加上就行了。然后就不会自动编译了。

如果已经编译了,把elc文件删光,应该就能正常使用lsp-bridge了。

@yqu212 @aqua0210

即便我加了no-byte-compile,build的时候还是会build的。但是我把elc文件都删了之后,就可以正常工作了,也不用手动加load-path。

@manateelazycat

懒猫大佬,我测试的时候,发现在写c/c++的时候,补全出来的只有我上下文出现过的东西,要隔一断时间才会有库函数的提示,比如(printf, SDL_LOG这些);但是写python,elisp的时候就没这个问题。而且在写elisp的时候,corfu和lsp-bridge会同时出现,界面叠在一起。应该怎么解决上述问题呢?

用 acm 不需要 corfu。把 corfu 关闭,或者删除吧。

原来如此 ,我刚去github看了一下,acm是Asynchronous Completion Menu,原来已经集成有类似corfu的东西了。

顺便问一下大佬 @manateelazycat

如图,把代码都删掉后还保留这个补全的窗口是正常的吗,还是就是这样设计的,要手动用C-g关掉。

执行任意不是acm-mode-map内定义的按键都会让acm菜单消失。

代码调用顺序的补丁已经合并了, 大家以后可以用 lsp-bridge-incoming-call-hierarchylsp-bridge-outgoing-call-hierarchy 这两个命令来分析代码的调用顺序啦。

1 个赞

昨天试了下,感觉终端还是没支持额?

为什么不搜索一下呢? 是可以工作的

奥,,,没搜到这个,看到了几个其他的回复 :grinning:

先用一下吧, 要等 @twlz0ne 大佬的时间, 看看大佬什么时候能够合并,就可以开箱使用了。