让company-yasnippet更好的工作

pr我重新更新了下,使用错误捕捉就可以了。即使出错也不会影响用户输入。

这个成本太高,听说也不稳定

你那边测试弹出慢么?基本上 company-yasnippet--doc 除了启用 major-mode 渲染外,其他都不会导致性能问题。major-mode上的hook如果太慢可能会影响性能,基于这个考虑, company-yasnippet--doc 里面可以局部设置 major-mode-hook为 nil 。这样就好了。

另外,我遇到了这个问题,不知道你们有没有遇到:

不,我指的是普通的候选的弹出,不是 doc。如果有完全的异步的候选列表的话,体验会好的多。

看了下老铁的 PR,写的很详细 :+1:

PR 合并了更新下试试。

测试ok了。感谢

就yasnippet的模板展开来说 还是 ivy-yasnippet 有优势

还是用doc buffer展示snippet原有的代码比较好

因为snippet里稍微涉及点复杂的函数 在doc buffer的环境中就会失效

刚更新,发现一个问题:如果用 company-box,提示的 buffer 和当前 buffer 是同一个名字,保存时会混乱。

代码里不应该用 (setq-local buffer-file-name file-name),而是应该用(let ((file-name (buffer-file-name)),或者在 调用yas-exapnd-snippet后重新设置为 nil。我上面的示例最早也是用的 setq,后来更新了。

额故意让docbuffer和当前buffer一个名字的,这样展开比较容易看到效果吧

这样保存文件可能出现冲突,互相覆盖。应该用 let

ok 作者fix了 更新就可以了。查看一下all-the-icons-rich把 提了issue 可能是字体问题导致的不对齐。

那个修改 all-the-icons-ivy-rich-icon-size 就可以了,我也遇到过这个问题,提过issue,你翻一下就知道了。

已经回复你了。

跟这个一样的

thanks 搞定

新添加个变量让 annotation更加自由的自定义了

(defvar company-yasnippet-annotation-fn
  (lambda (name)
    (concat
     (unless company-tooltip-align-annotations " -> ")
     name))
  "Function to format completion annotation.
It has to accept one argument: the snippet's name.")

这个问题解决了,原来是之前 @taigacute 给出的一个 advice 配置导致的。

啥问题???

这种情况可以用with-demoted-errors

1 个赞