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

tempel 这个后端很早就加入了。所以“最近变卡了”应该有其他原因。

大佬,我这边有点闪,正常吗。 是不是我的mac 和 linux 不一样。

out

因为之前是说已经弹出补全框的情况下,是会复用弹出的补全框的。我粗略看了下代码,也是复用的。但是实际用起来,我的mac m1 mini 上还是重新再弹出一次补全框。

那就不知道了,感觉mac版实现frame的机制和linux不一样。

acm肯定是会复用的

windows 11 org mode 9.5.2 出现以下错误 d:\home\vanilla.emacs\site-lisp\lsp-bridge\core\pystardict.py:601: UserWarning: Iter dict items with in_memory=False may cause serious performance problem warnings.warn( d:\home\vanilla.emacs\site-lisp\lsp-bridge\core\pystardict.py:200: UserWarning: Iter dict items with in_memory=False may cause serious performance problem warnings.warn(

这个不要管, 不影响。

主要是在输入英文的时候没有补全了

你看看 *lsp-bridge* buffer 有啥错? 然后话要说全, 你在什么环境干了啥导致没有补全的?

你用 emacs -Q 做过配置排查吗?

系统 win10 emacs28.1 acm-enable-tabnine :开启tabnine支持,默认开启,开启时需要执行 lsp-bridge-install-tabnine 我执行了install,提示安装成功,但是候补选项没有看到tabnine的长补全,还都是变量类的补全,是需要其他设置吗?

我根据github的文档设置

  • acm-backend-search-sdcv-words-dictionary : 用于单词补全的 StarDict 词典,默认为kdic-ec-11w ,您可以将其替换为 StarDict 词典路径,例如,如果您有 dictionary /usr/share/stardict/dic/stardict-oxford-gb-formated-2.4.2/oxford-gb-formated.ifo ,则需要将此值设置为/usr/share/stardict/dic/stardict-oxford-gb-formated-2.4.2/oxford-gb-formated ,不包括.ifo 扩展名。 但是找不到这个变量,反倒找到了一个lsp-bridge-english-helper-dict 是因我的github拉去的分支不对吗?这个东西要怎么配置?还是说github的文档尚未更新?

只要 *lsp-bridge* buffer 没有报错信息就可以自动工作, 看看有没有啥报错吧。

而且一定要看官方README, 上面这个调试方法都说了。

大佬,怎么吧lap-bridge ref的buf导出到文件里面啊

搞定了。。。

啥意思? 没看懂。

对于python 的第三方库,如fastai 在lsp-bridge也会补全么?

这个要看pyright文档

Dabbrev tabnine的补全都没见过 ,看了文档,就打开tabnine开关,开着的 安装完成了 TabNine installation complete.

acm-enable-tabnine is a variable defined in ‘acm-backend-tabnine.el’.

Its value is t

lsp-bridge buffer 没有报错, 就lsp ,Search word, yasnippet 的补全 看起来出来了。


配置抄你的init lsp bridge


(add-to-list 'load-path "~/.emacs.d/github/lsp-bridge")
(require 'lsp-bridge)

;;; Require
(require 'lsp-bridge)
(require 'lsp-bridge-jdtls)

;;; Code:

(global-lsp-bridge-mode)

;; 融合 `lsp-bridge' `find-function' 以及 `dumb-jump' 的智能跳转
(defun lsp-bridge-jump ()
  (interactive)
  (cond
   ((eq major-mode 'emacs-lisp-mode)
    (let ((symb (function-called-at-point)))
      (when symb
        (find-function symb))))
   (lsp-bridge-mode
    (lsp-bridge-find-def))
   (t
    (require 'dumb-jump)
    (dumb-jump-go))))

(defun lsp-bridge-jump-back ()
  (interactive)
  (cond
   (lsp-bridge-mode
    (lsp-bridge-find-def-return))
   (t
    (require 'dumb-jump)
    (dumb-jump-back))))

(setq lsp-bridge-get-single-lang-server-by-project
      (lambda (project-path filepath)
        ;; If typescript first line include deno.land, then use Deno LSP server.
        (save-excursion
          (when (string-equal (file-name-extension filepath) "ts")
           (dolist (buf (buffer-list))
             (when (string-equal (buffer-file-name buf) filepath)
               (with-current-buffer buf
                 (goto-char (point-min))
                 (when (string-match-p (regexp-quote "from \"https://deno.land") (buffer-substring-no-properties (point-at-bol) (point-at-eol)))
                   (return "deno")))))))))

search word就是对应emacs的dabbrev功能

词典默认带了一个kdict,如果你要换,你要自己去下载一个星际译王的词典。

image 词典我发现是没开toggle english的开关,搞定了。 上面的shak 我用try-expand-dabbrev 能补全出shakeScreen

sha能补全这些但是没有shakeScreen shak的时候就一个选项也没有了 image 这里的_base是个any对象,因为项目原因不能导入,从window抓过来的。

不好意思耽误您这么长时间,我确实碰到了这些问题,所以疑惑的发个贴,

search words后端的原理是读取所有打开文件的单词, 你打开文件没有这个单词就不会补全。

反馈的时候稍微排一下版吧, 要不看着很累。