瞅了一眼配置, 看起来很不错.
刚才代码里面有一个二逼错误, 再更新一下试试
稍等一会 现在不在电脑边
(setq company-tooltip-margin 0)
时会吞掉一个字
用起来暂时问题不大
前两天用了一下,输入过程中,候选列表更新的时候有明显的闪烁,mac上
可能是上面提到的bug引起的,因为我暂时先让frame显示,然后在调整它的大小和位置,所以有可能会闪烁,之后我会改成 先调整大小和位置,再让其显示,可能就不会闪烁了
打了,没这个不能显示
是不是窗口大小有变化的时候闪烁?
没仔细看,需要仔细看才行,反正输入的时候窗口位置和内容是变化的
暂时先不要管这个问题,等emacs下一个测试版发布后,再处理这个问题,
回头我试一下你最新版。
另外,每个候选项前面可以显示个图标了,标识一下候选项的类型
这个问题已经解决
这个需要 company 支持,如果 company 没有这个feature, company-childframe 也不会添加 :-)
related issue
cursor位于行首的时候会有问题,因为(point)没有包含行数的信息,导致child frame出现在上一行末
估计要加一个(if (- (current-column) company-tooltip-margin)
判断 另外可能要用line/column替代point
BTW, 建议(min-size '(1 . (+ company-tooltip-minimum-width 1)))
已经更新,我暂时先不支持 company-tooltip-margin 了,以后慢慢研究这个。
可以这样 并不可以。。会有edge case的bug。。。
> 0 的company-tooltip-margin
可以防止org-indent-mode
和company-ispell
冲突。。不过我还是暂时关了org-indent-mode好了。。
(defun company-childframe--update ()
"Update contents of company tooltip."
(let* ((height (min company-tooltip-limit company-candidates-length))
(lines (company--create-lines company-selection height))
(contents (mapconcat #'identity lines "\n")))
(if (> (- (car (posn-col-row (posn-at-point))) company-tooltip-margin) -1)
(if (> (- (car (posn-col-row (posn-at-point))) (length company-prefix)) 0)
(company-childframe--update-1 contents (- (point) (length company-prefix) company-tooltip-margin))
(company-childframe--update-1 contents (- (point) company-tooltip-margin)))
(company-childframe--update-1 contents (- (point) company-tooltip-margin)))))
边缘测试似乎除了踩雷法,没其他好方法