我在 ubuntu20.04上面 不能弹出 补全框(acm-mode),在其他环境是可以的。
不知道是不是 中文编码的问题。因为我在这个环境下 使用另一个插件也有问题,现在也没有解决。
我在 ubuntu20.04上面 不能弹出 补全框(acm-mode),在其他环境是可以的。
不知道是不是 中文编码的问题。因为我在这个环境下 使用另一个插件也有问题,现在也没有解决。
大佬,这个 english-helper 很好用。早在之前的 company 版本我就一直用,并且加了自定义的其它语种的 backend。
想问一个有点过分的问题!
目前 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 的环境都复杂,模糊的一句话我就能修复你的问题,我就是神仙了,哈哈哈哈。
好的!我先研究研究!有不懂的地方再向大佬请教!
C-x 5 2 分frame后 在多显示器上补全时,补全列表会强制跑到 另外一个frame上。
没有使用多 frame 的习惯,研究提PR吧,我最近忙,没时间修了。
好像在计算位置的时候的问题,如果我先在其中一个frame补全过, 那么用第二个frame写代码补全时,就还在前一个frame上显示。 神奇的是docs显示位置又是正常的。
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就可以正常使用。
日经问题,或许试试这个
找到问题了,原来是 svg 没安装,就会报错,然后连 补全窗口都不会弹出。
能不能加个 检查,如果svg 没安装,就直接 设置 acm-enable-icon nil.
Emacs安装的时候配置好吧,不同操作系统和发行版的环境都不一样,Elisp插件就不要去探测 libsvg 装没装吧。
先用advice临时解决一下
(defun acm-backend-yas-candidates-advice (keyword)
(when acm-enable-yas
(let* ((candidates (list))
(snippets (cl-mapcan (lambda (table)
(yas--table-all-keys table))
(yas--get-snippet-tables)))
(match-snippets (seq-filter (lambda (s) (acm-candidate-fuzzy-search keyword s)) snippets)))
(dolist (snippet (cl-subseq match-snippets 0 (min (length match-snippets) acm-backend-yas-candidates-number)))
(cl-pushnew (list :key snippet
:icon "snippet"
:label snippet
:display-label snippet
:annotation "Yas-Snippet"
:backend "yas")
candidates))
(acm-candidate-sort-by-prefix keyword candidates))))
(advice-add 'acm-backend-yas-candidates :override #'acm-backend-yas-candidates-advice)
(defun acm-backend-yas-get-snippet-advice (candidate)
(let* (;; (templates (yas--all-templates (yas--get-snippet-tables)))
(template (cl-mapcan (lambda (table)
(yas--fetch table (plist-get candidate :label)))
(yas--get-snippet-tables))))
(yas--template-content (cdr (car template)))))
(advice-add 'acm-backend-yas-get-snippet :override #'acm-backend-yas-get-snippet-advice)
yas–get-snippet-tables 太耗费性能了,这样弄不卡手吗?