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

其实是 lsp-bridge/lsp_bridge.py at 1c43ff0f824388c74a76cc2d6b59f6f87b4ad7b9 · manateelazycat/lsp-bridge · GitHub 这行代码,应该加一个 os.path.expanduser 函数。

大佬发个补丁吧,我现在只有手机可以打字。

好像也可以直接对这个Path 对象使用expanduser

    user_server_dir = Path(str(get_emacs_var("lsp-bridge-user-langserver-dir"))).expanduser()

这样代码更简单一点

也可以,大佬发个补丁吧

ok, 字数补丁

lsp-bridge 现在有选项可以让 acm 连续输入时不更新,输入结束后 0.5s 再更新、弹出 candidates 吗?

试了一下 delay/idle 的 variable, lsp-bridge-flash-line-delay, lsp-bridge-ref-flash-line-delay, lsp-bridge-code-action-preview-delay, lsp-bridge-diagnostic-display-errors-delay, lsp-bridge-auto-format-code-idle, lsp-bridge-diagnostic-fetch-idle, lsp-bridge-signature-help-fetch-idle 这些好像都不是

手动补全可以打开选项 lsp-bridge-complete-manually, 然后调用 lsp-bridge-popup-complete-menu 的时候再更新。

lsp-bridge 是完全异步的设计,即使0.01秒就更新补全也不会导致卡顿的, 所以像传统 Company/Auto-Complete/Corfu 的同步菜单的延时选项没有必要。

感谢回复

确实不会卡顿,就是补全太快了,每输入一个字符都更新一下反而闪得我有点眼花…


看了一下前面的回复,好像我也是有闪烁的问题

lsp-bridge在modeline 中显示的lsp-bridge:数字,是否可以不显示?

我平常不用modeline,可以提交补丁

我提过一个,没提PR,大佬合并的时候写错位置了。

你可以翻翻之前的记录 @book

已经去掉了, 刚才在遛狗。

那把中括号也去掉吧,modeline就他一个有括号。。

在外面呢,大佬发个补丁吧,哈哈哈

发了,合并一下吧。

不知道你说的闪是不是每增/删一个字符补全框都会“消失后瞬间再出现”这种闪。符合的话,可以调整一下这个,把你会闪的命令扔进去:

(defcustom acm-continue-commands
  ;; nil is undefined command
  '(nil ignore universal-argument universal-argument-more digit-argument
        self-insert-command org-self-insert-command
        ;; Avoid flashing completion menu when backward delete char
        grammatical-edit-backward-delete backward-delete-char-untabify
        python-indent-dedent-line-backspace delete-backward-char hungry-delete-backward
        "\\`acm-" "\\`scroll-other-window" "\\`special-lispy-" "\\`lispy-")
  "Continue ACM completion after executing these commands."
  :type '(repeat (choice regexp symbol))
  :group 'acm)

我自己是追加了个 delete-char:

(add-to-list 'acm-continue-commands 'delete-char)

系统arch,emacs-28.2,刚才升级了epc-0.0.5,结果启动emacs时出现以下提示:

ERROR:epc:AttributeError(“‘Symbol’ object has no attribute ‘value’”)

ERROR:epc:Unexpected error

Traceback (most recent call last):

File “/home/aaaaa/.local/lib/python3.10/site-packages/epc/handler.py”, line 238, in _handle (name, uid, args) = unpack_message(sexp)

File “/home/aaaaa/.local/lib/python3.10/site-packages/epc/handler.py”, line 87, in unpack_message return (data[0].value(), data[1], data[2:])

AttributeError: ‘Symbol’ object has no attribute ‘value’

这是新版epc中的函数修改了参数吗?

不知道呀,旧版没问题?

try pip3 install sexpdata==0.0.3 ?

大大好,果真如此。降级sexpdata到0.0.3版本,问题解决了。

1 个赞

VHDL 的 LSP 已经支持了: