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

紫薯布丁是什么意思?

字数补丁,不然有时候字太少不能回复

1 个赞

哦. 紫薯布丁

给我一下重现方式吧。

在加载lsp-bridge后,再安装任意package即可得到

请教大佬们,在 Org-mode 下,有如下的补全提示,不匹配,但是总是给提示和显示:

这个是不是模糊匹配的特性?

同时,上文出现的 Word 不能够出现在新补全的列表中:

大家使用过程中有没有这个情况?谢谢 ~

3 个赞

我也遇到了这个问题,按照github的方法配置之后;进行package-list-package然后更新任意包的时候都会报这个错误

toggle-debug-on-error 看看错在哪里了? 我不用 use-package.

我最近也不用了 :sweat_smile:

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/tmpbzRHts" "/home/was/.emacs.d/custom.el" t)
  apply(lsp-bridge--rename-file-advisor #<subr rename-file> ("/home/was/.emacs.d/tmpbzRHts" "/home/was/.emacs.d/custom.el" t))
  rename-file("/home/was/.emacs.d/tmpbzRHts" "/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)

Try to fix error: acm-backend-lsp-filepath is void variable · manateelazycat/lsp-bridge@18b5ffa · GitHub 已经修复了, 更新就可以了。

你是不是没删掉 elc

我都没开native-comp :stuck_out_tongue_closed_eyes:

好家伙,还是不行

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 协议内容并不是很复杂的原因。

9 个赞

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

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