go-mode下使用eglot和corfu补全时, 函数类型的参数无法正确补全.

如下图所示, 输入func后补全列表里已经有func(context context.Context, session sqlx.Session) error), 敲击回车进行补全后结果为func(func(context context.Context, session sqlx.Session) error)

预期: func(context context.Context, session sqlx.Session) error)

实际: func(func(context context.Context, session sqlx.Session) error)

不晓得有没有朋友碰到过类似的问题…

环境: emacs29.06

使用emacs -Q运行的最简配置:

(setq repo-dir (expand-file-name ".local/straight/repos" user-emacs-directory))
(add-to-list 'load-path (expand-file-name "corfu" repo-dir))
(require 'corfu)
(global-corfu-mode)
(add-to-list 'load-path (expand-file-name "yasnippet" repo-dir))
(require 'yasnippet)
(yas-global-mode)
(require 'eglot)

经过一番查找发现了该issue eglot issue 836

似乎是lsp-mode做了额外的处理而eglot作者认为这不是客户端问题?

感觉在解决之前只能先继续用lsp-mode了。简单的工作使用来看补全效果是要比eglot好一些。