lsp-bridge -- 性能最快的语法补全插件

好家伙,还是不行

Debugger entered--Lisp error: (void-variable acm-backend-lsp-filepath)
  (lsp-bridge-call-async "close_file" acm-backend-lsp-filepath)
  (let ((new-name (expand-file-name (nth 0 args)))) (lsp-bridge-call-file-api "rename_file" new-name) (lsp-bridge-call-async "close_file" acm-backend-lsp-filepath) (set-visited-file-name new-name t t) (set (make-local-variable 'acm-backend-lsp-filepath) new-name))
  (progn (let ((new-name (expand-file-name (nth 0 args)))) (lsp-bridge-call-file-api "rename_file" new-name) (lsp-bridge-call-async "close_file" acm-backend-lsp-filepath) (set-visited-file-name new-name t t) (set (make-local-variable 'acm-backend-lsp-filepath) new-name)))
  (if lsp-bridge-mode (progn (let ((new-name (expand-file-name (nth 0 args)))) (lsp-bridge-call-file-api "rename_file" new-name) (lsp-bridge-call-async "close_file" acm-backend-lsp-filepath) (set-visited-file-name new-name t t) (set (make-local-variable 'acm-backend-lsp-filepath) new-name))))
  lsp-bridge--rename-file-advisor(#<subr rename-file> "/home/was/.emacs.d/tmpo61sCI" "/home/was/.emacs.d/custom.el" t)
  apply(lsp-bridge--rename-file-advisor #<subr rename-file> ("/home/was/.emacs.d/tmpo61sCI" "/home/was/.emacs.d/custom.el" t))
  rename-file("/home/was/.emacs.d/tmpo61sCI" "/home/was/.emacs.d/custom.el" t)
  basic-save-buffer-2()
  basic-save-buffer-1()
  basic-save-buffer(nil)
  save-buffer()
  custom-save-all()
  customize-save-variable(package-selected-packages (ag tree-sitter-langs tree-sitter whitespace-cleanup-mode puni meow page-break-lines nyan-mode rainbow-delimiters beacon session switch-window savehist orderless consult vertico markdown-mode yasnippet-snippets yasnippet dirvish posframe all-the-icons-completion marginalia all-the-icons color-theme-sanityinc-tomorrow diminish github-review forge ghub magit gnu-elpa-keyring-update fullframe seq))
  package--save-selected-packages((ag tree-sitter-langs tree-sitter whitespace-cleanup-mode puni meow page-break-lines nyan-mode rainbow-delimiters beacon session switch-window savehist orderless consult vertico markdown-mode yasnippet-snippets yasnippet dirvish posframe all-the-icons-completion marginalia all-the-icons color-theme-sanityinc-tomorrow diminish github-review forge ghub magit gnu-elpa-keyring-update fullframe seq))
  package-install(ag nil)
  funcall-interactively(package-install ag nil)
  call-interactively(package-install record nil)
  command-execute(package-install record)
  execute-extended-command(nil "package-install" "pa")
  funcall-interactively(execute-extended-command nil "package-install" "pa")
  call-interactively(execute-extended-command nil nil)
  command-execute(execute-extended-command)

哈哈哈, 继续更新吧。

1 个赞

辛苦大佬了,这次终于好了 :grinning:

谢谢,解决啦

多服务器重构没有引起太大bug倒退,我已经阿弥陀佛了, 感谢反馈, 我平常不用 use-package, 测试不出来。

3 个赞

今天增加对 orjson 的支持, 当选装 orjson 后, JSON 的解析性能提升 2 倍。

举一个例子, LSP服务器里面最凶悍的 volar , 当他返回字符长度超过100万字节时, Python语言内置的 json.loads 解析时间需要12ms, orjson只需要6ms (我的笔记本是 i7, 性能差的电脑收益会更大些)。

这个补丁主要是回应社区说Python性能不够快的吐槽, lsp-bridge最核心的性能消耗就在 JSON 内容的解析上。

当你不喜欢安装Rust时, 基于多线程的设计, lsp-bridge已经是Emacs里面最快的LSP客户端。

当你崇尚Rust时, lsp-bridge其实已经是世界上性能最好的LSP客户端。


orjson官方的横向性能对比, 相对于Python内置的JSON性能提升4~50倍, 我实测 LSP 协议内容, 平均性能提升在2倍左右, 可能 LSP 协议内容并不是很复杂的原因。

7 个赞

发现一个 volar 的问题,写下 <sty ,按下补全,发现 image

emacs -Q 测试一下再来反馈吧, 我没法重现。

一样的,我等等看他人有没有相同的问题吧
另外一些函数补全在我这里变成这样子,比如 onMounted,输入 onMo 然后不全 image

同样的问题出现在html+emmet,只不过并不是稳定复现,一半一半的几率。感觉acm小问题还是很多。

哦,终于有和我一样的了
我个人没用过 emmet-ls ,觉得可以不需要这东西,希望懒猫考虑一下

第一lsp-bridge可以自由定制补全服务器,还有中文README,为啥不看呢?

第二报bug就给稳定重现方式,要不我怎么知道你遇到什么问题了?

如果你遇到问题又说不清楚,就先别报问题了,我不是大家的客服,我不知道我不能重现的问题怎么修复。

16 个赞

lsp-bridge 发布三个月回顾:

  1. 49位开发者提交了888个补丁
  2. 合并社区186个PR, 修复116个Issue
  3. 支持的编程语言达35种
  4. 针对 JavaScript 添加了多 LSP Servers 支持
  5. 添加了 orjson 的支持, 补全数据解析性能提升2倍以上

今天提交了第888个补丁,感慨一下, 还是人多力量大, 我一个人很难把 lsp-bridge 做到今天这个地步, 很多 lsp-bridge 支持的编程语言我都还不会呢。 :joy:

19 个赞

acm也很重要,简单好用的补全前端

只要脱离渣渣capf设计,其实前端补全逻辑可以做的很简单。

以前comapny和corfu大量代码都在将究capf,而capf是一个非常不适应lsp协议的接口。

感动,我也做了一点微小的贡献 :partying_face:

因为最近在用 terraform 所以还想加一个对它的支持,不过目前只在本地环境实现了,还有一些问题没时间整理出来 :joy:

慢慢来,欢迎继续发PR :wink:

1 个赞

是错觉吗,今天的acm怎么如此丝滑?

关于lsp-bridge的完善,我有一点点小小的意见,望采纳:

希望可以多增加一些自定义选项,比如:从哪里导入svg、lsp-bridge-ref中的配色等

图标和颜色自定义你改 acm-icon-alist 就好了, 但是要注意的是图标都要从一个 uri 去下载, 要不图标大小不一样。

1 个赞