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

@Jousimies 我知道问题所在了, acm-mode 不是你这样用的, 你不能手动在任何模式去加载 acm-mode, acm-mode 是 lsp-bridge 根据是否有候选词, 弹出补全菜单以后, 由 acm-update 来自动控制的。

如果没有任何候选词, 你手动启用 acm-mode 就会导致补全菜单根本没有弹出, acm-menu-frame-popup-point (补全菜单弹出时的位置) 就是 nil, 而你强制启用 acm-mode 其实是会截获你当前 buffer 的按键的。

请按照 README 的操作去写配置, 任何时候都不应该手动开启 acm-mode.

请看楼上的回复, 你不应该手动加载 acm-mode

写了个临时补丁绕过去了。

根本原因应该是 org-todo 和 (thing-at-point 'symbol t)` 这个函数冲突了, 不是 lsp-bridge 或者 acm 本身的问题, 暂时没有时间看深层次的原因 (org-mode 的代码太多了), 等以后 org-mode 自己修复吧。

直接下载emacs git代码,安装了支持svg的emacs。现在可以看到图标了,更爽了。

./autogen.sh
./configure --with-imagemagick --with-jpeg --with-xft --with-tiff
make -j$(nproc)
make clean install
mv nextstep/Emacs.app /Applications/

2 个赞

Process lsp-bridge exited abnormally with code 1 提示这个是什么原因

读README

大佬,麻烦看一下这个问题

在开启lsp-bridge的文件里进行输入,输入快了会出现补全框显示不完整的问题

反馈问题说一下自己的环境和版本吧。

以后环境版本不说清楚的问题我就不回答了。

  • Archlinux
  • Emacs 28.2

依赖都是最新的

给个稳定测试的文件吧, 我刚刚试了下, 没有重现。

打开任意python文件,输入impo

你自己 emacs -Q 测试一下吧, 我没法重现。

额,就是用的emacs -Q

那我就不知道了, 我确实没法重现。

是在最新版的deepin桌面环境下的,是不是和这个有关系?

我不知道, 只有你知道两次变化的环境差异, 我只能告诉你我没有测试出来。

1 个赞

好的,那我自己再看一看吧

麻烦问一下,code action 能否通过命令直接指定运行某个action ,而不是弹出选择框。

例如普通的工作流程为:

  1. 运行 lsp-bridge-code-action
  2. 会弹出4 个可能的action, 用户移动选择窗口,选择某个action
  3. 回车后运行该 action

但是,有些action 比较常用,例如为某个表达式创建某个变量赋值,我希望自定义一个命令:lsp-bridge-create-var

运行该命令后,调用 lsp-bridge-code-action, 然后自动选择运行第3个action.

可以, 但是要写补丁才行。

稍微试验了一下,实现了我的这个需求,把下列的流程包装为一个命令:

  1. 运行 lsp-bridge-code-action 命令;
  2. 等待 code action frame 弹出;
  3. lsp-bridge-call-hierarchy--popup-response 变量中找到需要的那个action 所在的 index;
  4. 运行 n 次lsp-bridge-call-hierarchy-next, 选中对应的 code action.
  5. 运行 lsp-bridge-call-hierarchy-select 触发 code action

大体代码逻辑:

(defun jin/lsp-bridge-run-code-action (name)
  "Run code action by NAME."
  (lsp-bridge-code-action)
  ;; waiting for lsp code action frame pop.
  (jin/wait-for-10s #'jin/lsp-bridge-get-code-action-frame)
  (let ((index
         (cl-position
          name
          (mapcar
           (lambda (action) (car action))
           lsp-bridge-call-hierarchy--popup-response )
          :test #'equal)))
    (dotimes (number index) (lsp-bridge-call-hierarchy-next)))
  (lsp-bridge-call-hierarchy-select))