我觉得不是eglot的问题把,应该是你的补全框架的问题。
你用的是company吧,你需要用一个利用emacs child-frame特性显示补全列表的插件,company有company-box和company-posframe两种选择
好像用的不是company,因为我在M-x命令那里没找到有company命令
之前配置过company,但是用的是lsp-mode,也有这样的问题。现在换到eglot,不配置之后也是有这样的问题,我也觉得不是lsp插件的问题,从截图看我觉得中文字体的问题更大一点,像是中文占两个单词导致的偏移
company不提供interactive command吧,目前补全框架里面提供in-buffer补全的只有company默认使用这种用overlay画出来的补全列表,一有中文就会错位,还有一个auto-complete也是不过早就没人用了
应该是需要设置点啥吧,看下company-posframe的GitHub有没有写怎么用的,我很久之前就不用company了忘记了
好像就写了一个简单的怎么开启mode,其他的没有了,company-box也能解决类似的问题吗?我去试试
看起来像是终端下,这是popup.el
本身的问题,posframe是只能在gui版本下生效的。
终端下的解决办法是编译一个
https://git.savannah.gnu.org/cgit/emacs.git/log/?h=scratch/tty-child-frames
这个分支的emacs,可以在终端下用posframe,但这个分支目前依旧有些bug。
自己折腾又对ui有追求的话,对着centaur抄就行,没啥魔法,好修改
好的,了解了,谢谢你🙏
我想我知道大概是什么个情况了
看起来像是终端下,这是
popup.el
本身的问题
确实是这个问题,因为我没有安装company,用的是corfu和corfu-terminal,而在terminal环境下用的corfu-terminal又是用的popop.el作为的child-frames的替代,所以出现了这个问题:)