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

原来不正常,显示的是不同颜色的方块。是由升级到系统 Ventura 13 (Mac) 引起的.

那你是降级系统解决了呢?

还是升级系统后再升级 lsp-bridge 解决了呢?

我最近没有推送图标相关的补丁呀。

不知道是不是上周 将 emacs-plus@28, 重装了为@29 变正常的 ~ --with-imagemagick

好像开发的邮件讨论有提过在29版本中对这个问题(svg显示)的改进。有空我查查,在这补充一下 ~

https://debbugs.gnu.org/cgi/bugreport.cgi?bug=59081

1 个赞

感谢帮忙测试。

是emacs-plus 28的问题,刚升级macOS 13.0的时候出现过,从新编译了29版本的就好了

我之前也遇到过这个问题,我整理了一下提了个PR

应该是search_file_words.py里utf-8 decode的时候没有考虑非utf-8的文件类似pdf啥的

谢谢大佬,这个PR应该可以解决问题,如果合并了,我试试看这种情况会不会再出现。

这个情况不仅仅是在编译LaTeX预览 pdf 文件的时候出现,凡是有 lsp-server 在后面 support (lsp-bridge-has-lsp-server-p) 的时候:

(defun lsp-bridge-call-file-api-p () (and lsp-bridge-mode (lsp-bridge-has-lsp-server-p) (lsp-bridge-epc-live-p lsp-bridge-epc-process)))

只要有非文本的文件被 attempt,比如打开pdf文件或者图片,这个问题就会出现。我在最小化对不同的编程环境 (Python,web,Lua)测试的时候都出现这个情况。

主要的原因正如你所指出的那样,建立index的时候,没有规避对搜索非文本文件。

如果把 这个变量 lsp-bridge-enable-search-word 设为 nil, 这种情况就不会出现,或者不开启lsp-server,比如在 emacs-lisp 文件中补全, 就不会对非文本文件进行扫描,而向 server 推送来建立索引。

还有一个可能的改进,就是在这个 (lsp-bridge-call-file-api (method &rest args))方法中 同时检测方法 和 文件类型,然后决定是否调用 lsp-bridge-epc-process 来建立索引。

这个改进我已经实现了 在这个commit

并且可以通过lsp-bridge-search-words-prohibit-file-extensions来指定文件类型

1 个赞

谢谢大佬 ~

1 个赞

补丁已经合并了, 感谢反馈。

@kongds 感谢大佬给力补丁。

1 个赞

谢谢,大佬 !好高效 ~

Emacs performance 提高不少。之前我是在 Emacs 中编辑 LaTeX,要不用 切换为 company,要不用VC 那边实时编译预览 ~ 现在很丝滑,预览一点不影响,只需再让 latexmk 在后台实现实时编译,就好了。

再次谢谢大佬 @kongds 的补丁。

2 个赞

听到你反馈丝滑,我的努力就没白费,很高兴。

感谢信任和认可。

2 个赞

我在用doom,也是十分依赖这个功能,不知道是不是由emacs-ccls这个包来实现的。 如果说要用treesitter来实现,我觉得它要解析我的compile_commands.json才知道编译的时候我开了哪些宏,才知道哪里是要skip的,哪里是需要编译的,而lsp来做应该是符合直觉的。

大佬们,我配置好了lsp-bridge了,compile_comands.json能看到clangd的解析结果,但是不能补全(只能补全Search Word),同样的compile_commands.json文件,在lsp-mode可以补全,是需要配置什么才能补全吗?

看到errors:

I[01:19:17.075] Failed to generate include insertion edits for adding header (FileURI='file:///Users/Shared/Epic%20Games/UE_5.1/Engine/Source/Runtime/Core/Public/Containers/StringView.h', IncludeHeader='file:///Users/Shared/Epic%20Games/UE_5.1/Engine/Source/Runtime/Core/Public/Containers/StringView.h') into /Users/damonchen/Documents/play-unreal-demo/Metaverse/Source/Metaverse/Help.cpp: Header not on include path

emacs -Q只加载lsp-bridge看看?

1 个赞

还是一样,Emacs -Q,只是load lsp bridge,偶尔可以弹出补全,然后刷刷刷(貌似clangd读取compile_commands.json)又没了。看视频:Emacs lsp-bridge 测试视频_哔哩哔哩_bilibili

要看 lsp-bridge 完整日志才知道啥问题。

链接: https://pan.baidu.com/s/1TU25i8DutBAEEZHkXDBwAw?pwd=xvc5 提取码: xvc5 复制这段内容后打开百度网盘手机App,操作更方便哦 –来自百度网盘超级会员v6的分享

上传到github吧,百度网盘强制要让我下载app,不想下。

其实可以在线看的,不用下载点击就能看。

GitHub在此:https://github.com/chenyanming/Logs/files/10790855/lsp-bridge-log.txt