目录找最快, yas 那些 table 不知道干了啥,查一次好慢。
这个灰色预览,我这边好像没有,emacs -Q 也不行,这个是去掉了吗
装了,yasnippet 和 yasnippet-snippets都装了
去掉了,容易产生bug, 性能和稳定性最重要。
你这路径第一个肯定没什么 snippet。他默认只扫描了第一个。
是的,这个目录是用来放自定义的snippet的。后面那个yasnippet-snippets-dir才是yasnippet-snippets提供的snippets的路径
但是这个好像yasnippet 的默认配置吧
想直接软连接到第一个目录下面,但是第一个目录又有一些我自己的snippets
我是用变量指定自己的 snippets 目录,而且可以指定多个,实测有效。
(setq yas-snippet-dirs '("~/.emacs.d/snippets/blove-snippets" "~/.emacs.d/snippets/yas-snippets"))
更新吧,已经好了。
今天把英文单词后端集成到 lsp-bridge 中,任何时候想写英文文档的时候, 调用 lsp-bridge-toggle-english-helper
命令即可。
lsp-bridge 现在已经支持LSP、Elisp、Dabbrev、Yasnippet、Filepath和English 六种后端自动混合显示,优先级如下:
- 探测到当前是文件路径,菜单全部换成文件列表补全
- 如果是 Elisp mode, 会用 Elisp + Yas 后端补全
- 如果是 lsp-bridge mode, 会用 LSP + Yas 后端补全
- 手指头松开1秒中,补充 dabbrev 后端数据(dabbrev 后端默认是关闭的)
- 调用
lsp-bridge-toggle-english-helper
命令快速切换英文单词补全
日常编程和写文档所需的补全功能, lsp-bridge都已帮你默认配置好,开箱即用,大家再也不用浪费大量时间去配置Emacs的补全功能了。
这个 yasnippet-snippets 包真是奇葩,他加了一个 'yasnippet-snippets-dir 到 yas/root-directory 中,循环枚举文件都枚举不到。
yasnippet 的代码写的太复杂了,打开文件的时候就会浪费1秒启动时间。
等明年我有空的时候,我写一个新的模板引擎吧(主要解决 yasnippet 现在启动慢和模板跳转太脆弱的问题),今年 lsp-bridge 的任务已经完成了。
yasnippet启动jit后,可以用(yas--get-snippet-tables)
,不用lsp-bridge去读取yas/root-dir
下的文件
(defun company-yasnippet--candidates (prefix)
;; Process the prefixes in reverse: unlike Yasnippet, we look for prefix
;; matches, so the longest prefix with any matches should be the most useful.
(cl-loop with tables = (yas--get-snippet-tables)
for key-prefix in (company-yasnippet--key-prefixes)
;; Only consider keys at least as long as the symbol at point.
when (>= (length key-prefix) (length prefix))
thereis (company-yasnippet--completions-for-prefix prefix
key-prefix
tables)))
我知道这个函数,但是它太慢了,卡手。
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