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

我知道这个函数,但是它太慢了,卡手。

Hi, 我在 *scratch* buffer 里 lsp-bridge 没法补全,在文件比如test.el 里是可以的

尝试将 *scratch*的mode改成 emacs-lisp-mode 也没用

lsp-bridge 的 commit 是 0f9e43b106dd28b096c55553695ab438c6fb192f

环境是 MacOS M1

这是我的最小配置

(add-to-list 'load-path "~/.emacs.d/site-lisp/lsp-bridge")
(add-to-list 'load-path "~/.emacs.d/site-lisp/yasnippet")
(require 'yasnippet)
(require 'lsp-bridge)
(yas-global-mode)
(global-lsp-bridge-mode)

这个 buffer 的 major-mode 是啥?

lisp-interaction-mode

改成 emacs-lisp-mode 也不行

看到了Message里有打印

[LSP-Bridge] cannot be enabled in non-file buffers.

但 elisp 补全应该是不需要 file

我在 ubuntu20.04上面 不能弹出 补全框(acm-mode),在其他环境是可以的。

不知道是不是 中文编码的问题。因为我在这个环境下 使用另一个插件也有问题,现在也没有解决。

大佬,这个 english-helper 很好用。早在之前的 company 版本我就一直用,并且加了自定义的其它语种的 backend。
想问一个有点过分的问题!
:rofl: 目前 acm 框架是否可以添加自定义的 backend 呢?如果可以,方法是怎样的呢?我蒙着用 advice ,但是没成成功…

;;; --- english-helper for korean-helper
(add-to-list 'load-path (concat user-emacs-directory "lisp/blove-extra/lang-helper"))
(require 'blove-backends-kor-zh-15000)
(defcustom acm-backend-kor-min-length 1
  "Minimum length of korean word."
  :type 'integer)
(advice-add 'acm-backend-english-candidates
			:after (lambda(keyword)
					 (let* ((candidates-kor (list)))
					   (when (>= (length keyword) acm-backend-korean-min-length)
						 (dolist (candidate blove-kor-zh-15000)
						   ;; (when (string-prefix-p (downcase keyword) candidate)
						   (when (string-prefix-p candidate)
							 (add-to-list 'candidates-kor (list :key candidate
															:icon "translate"
															:label candidate
															:display-label candidate
															:annotation (get-text-property 0 :initials candidate)
															:backend "korean")
										  t))))

					   candidates-kor))
			)

已经修复了。

就看 acm/acm-backend-* 文件,依葫芦画瓢吧, 都是非常简单的代码。

这种问题先自己 emacs -Q 对比测试一下再问吧, 每个 emacser 的环境都复杂,模糊的一句话我就能修复你的问题,我就是神仙了,哈哈哈哈。

好的!我先研究研究!有不懂的地方再向大佬请教! :grinning_face_with_smiling_eyes:

C-x 5 2 分frame后 在多显示器上补全时,补全列表会强制跑到 另外一个frame上。

截屏2022-06-07 14.46.37

没有使用多 frame 的习惯,研究提PR吧,我最近忙,没时间修了。

好像在计算位置的时候的问题,如果我先在其中一个frame补全过, 那么用第二个frame写代码补全时,就还在前一个frame上显示。 神奇的是docs显示位置又是正常的。 截屏2022-06-07 15.17.56

截屏2022-06-07 15.18.12

acm可能存在性能问题…我编写ts时卡得不要不要的…

不清楚是不是吐的补全项太多了,有没有什么方法可以调试的,现在写ts暂时把lsp-bridge-mode给关闭了

我写python的时候也有这种问题,后面我更新了emacs-git,就正常了。

我用了吞吐量最大的 volar, 很流畅呀。

emacs -Q 排除一下配置问题吧,比如是不是用了 js2-mode 这种超级卡的模式?

Macos在终端可以执行jdtls,但是emacs出现以下错误,有人碰到过吗?

[LSP-Bridge] Error: can’t find command jdtls 

自己手动下载的包配置了PATH也不行,直接brew install jdtls就可以正常使用。