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

请教一下,msys2 下装的 emacs,怎么用 lsp-bridge? 遇到的问题:怎么也调用不了 已经安装的 epc

反馈一个问题:

在使用tramp+lsp-bridge的方式打开项目,在使用lsp-bridge-find-references的时候,可以成功打开*lsp-bridge-ref* buffer,但里面的文件没对tramp路径处理,打开的是本地文件。

是没处理这种情况还是我使用不对。

我的配置:

(defvar bootstrap-version)
(let ((bootstrap-file
       (expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
      (bootstrap-version 6))
  (unless (file-exists-p bootstrap-file)
    (with-current-buffer
        (url-retrieve-synchronously
         "https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el"
         'silent 'inhibit-cookies)
      (goto-char (point-max))
      (eval-print-last-sexp)))
  (load bootstrap-file nil 'nomessage))

(use-package markdown-mode
  :straight t)

(use-package yasnippet
  :straight t)

(use-package lsp-bridge
  :straight '(lsp-bridge :type git :host github :repo "manateelazycat/lsp-bridge"
            :files (:defaults "*.el" "*.py" "acm" "core" "langserver" "multiserver" "resources")
            :build (:not compile))
  :init
  (global-lsp-bridge-mode))

欢迎发送补丁吧, 我基本上就不用 tramp

请问补全其他语言的时候怎么使用模糊匹配,elisp模式下可以,其他语言不行,还有就是怎么让使用过得补全在下次补全的时候往前排

| Alt + u | acm-filter | 对候选词做二次过滤, 提升候选词的选择效率 |

目前 lsp-bridge/acm 主要通过 acm-filter 进行二次过滤, 因为 lsp-bridge 的优先设计是 LSP 导向, 所有的输入都是LSP Server实时返回的, 不是本地过滤的。

使用过的补全下次排前面的功能没有, 还是因为LSP导向的, 不能为了做历史给一些不该有的补全菜单额外增加不存在的候选词。

这个补丁修复了这个问题, 可以更新看看。

Windows的话, 可以去python官网下载安装windows版的python 并且把安装目录和 Scripts 目录加入环境变量, 然后在windows上安装epc等这些依赖, 再指定一下 python 命令的路径就可以了, 类似这样

(setq lsp-bridge-python-command "E:\\Anaconda3\\python.exe"
                 lsp-pyright-python-executable-cmd "E:\\Anaconda3\\python.exe")

如果是doom的话, 还需要使用 doom sync 更新一下环境变量再重启emacs才有效

1 个赞

谢谢,问题解决了 ~

我加了这段代码, 并指定了由Anaconda 生成的一个 Python 环境下的 python,就可以用了。

ERROR:epc:ReturnError([Symbol('wrong-type-argument'), Symbol('stringp'), []])

*lsp-bridge* buffer 中显示这个错误,另外有时候在 elisp 文件中补全弹窗不出现。

发github issue,最近超忙,谢谢

1 个赞

想咨询一下,对于一些无 lsp 的 major-mode 想设置基本的关键字补全该如何实现呢?是要模仿 elisp 那样写一个 backend 吗? 比如说 envrc-file-mode 的一些关键字:

我没注意到 wiki 中已经有了!

想问一下,acm-frame 是什么单独的依赖吗?我使用Spacemacs 的时候安装 lsp-bridge 会报错 No such file or directory, acm-frame

你的安装方式有问题吧?这个依赖就在这个项目里面的

我稍后重新写一下配置试试,在 Windows 下配置的(非 WSL)

大佬, windows 下 lsp-restart-process 报下面的错误

Error in post-command-hook (lsp-bridge-start-process): (file-error "Creating pipe" "Too many open files")

请问有啥好排查方法吗?

或者说是 windows 需要特殊的设置吗

不用windows,不晓得怎么帮你,抱歉。

1 个赞

:melting_face:,唉,还是 Linux 香呀。Windows 下现在只能用 lsp-mode 了,真的是卡死了。

禁用native comp试试呢

1 个赞