lsp-bridge -- 速度最快的语法补全插件

我发现 gopls 虽然没有 completionItem/resolve 的能力,但是补全的时候已经返回文档了。

我今天会针对补全列表做缓存(避免一下子把全部文档发过来导致 Emacs 卡住了)来解决这个问题。

1 个赞

这个补丁如果发现 lsp server 服务器不支持 completionItem/resolve 动态解析,就会尝试去发觉 textDocument/completion 请求返回的补全列表里面是否有文档。

Golang应该好了。

1 个赞

大佬效率很赞,注意休息! 现在可以支持显示候选者文档了,但有 3 个问题:

  1. 显示候选者文档延迟有些长,大概 2-3 s;

  2. 显示文档有可能溢出了:

  3. 调用 lsp-bridge-lookup-documentation 命令时,貌似多显示了些下面的内容:

文档故意做了延迟,要不你快速上下选择菜单的时候会有点小卡。

多余的标题已经修复了。

显示文档溢出估计是文档太长导致的, 能发一个测试样本给我不?

默认是没有 acm的推荐配置的吗?

我手动打开 acm-mode, 但是corfu-mode会和acm-mode同时补全 图片

我想在 lsp-bridge 启动的时候,打开acm-mode,但是我没有找相关的 hook。

acm会自动打开,请关闭 corfu/company, 补全前端不支持混用。

看的热血沸腾的, 哎 可惜个人太菜,帮不上什么忙,大佬们 加油

目前我都是 手动关闭 corfu-mode 的, 我想在 lsp-bridge 启动的时候,自动关闭 corfu-mode,但是我没有找相关的 hook。 应该怎么配置?

我更菜,我个人觉得 只要你使用 lsp-bridge 就是做了贡献了,提了使用感受,一些建议,勇哥就更开心了

你直接不要 require corfu, 不要手动操作。

有可能。 测试程序如下,我故意将 frame 分为两部分,空间相对小的情况(参考上面截图):

package main

import (
	"fmt"
	"os"

	"github.com/spf13/cobra"
)

var rootCmd = &cobra.Command{
	Use:   "mycmd",
	Short: "short description",
	Long:  "long description",
	Run:   doRootRun,
}

var subCmd = &cobra.Command{
	Use:   "sub",
	Short: "short sub command",
	Long:  "my long sub command description",
	Run:   doSubRun,
}

func init() {

	os.CreateTemp("", "")
	os.CreateTemp("", "")
	os.CreateTemp("", "")
	os.CreateTemp("", "")
	os.CreateTemp("", "")

	os.CreateTemp("", "")
	os.CreateTemp("", "")
	os.CreateTemp("", "")
	os.CreateTemp("", "")
	os.
	rootCmd.GenPowerShellCompletionFile("adfa")
	rootCmd.AddCommand(subCmd)
	rootCmd.Flags()
}

func main() {
	if err := rootCmd.Execute(); err != nil {
		panic(err)
	}
}

func doRootRun(cmd *cobra.Command, args []string) {
	fmt.Printf("args: %v", args)
}

func doSubRun(cmd *cobra.Command, args []string) {
	fmt.Printf("in subcmd, args: %v\n", args)
}

将 frame 全屏后的效果:

嗯嗯,理解。这个延迟还好,看文档的概率想对小,还是补全提示的体验要紧。

大佬,看看能对候选者支持关键字、不区分大小写的模糊过滤么?

我要研究一下。

大佬,acm可以像corfu一样揉合company的后端吗,比如company-yasnippet? 新的acm速度快到飞起,从没有过如此顺畅的感觉

corfu 和 company 都是基于 capf 来实现后端的,我不会支持 capf 的,我会想办法支持 yas 的

大佬的工作量又上去了

我越来越疑惑,懒猫白天有公司,晚上折腾 Emacs 效率爆炸,那什么时候睡觉呢?

升级到最新,以及配置。出现如下 error, 无法实现补全:

Error in post-command-hook (lsp-bridge-monitor-post-command): (error “Invalid image type ‘svg’”)

确认编译的时候支持svg了。librsvg包安装过?没有的话要重现编译emacs。

懒猫大佬可以考虑在acm.el里面增加一个是否显示icon的变量。