lsp-bridge/fileaction.py at 83fb9248ff2b07e7641762ac60edf281717f583a · manateelazycat/lsp-bridge · GitHub 这里的逻辑控制是否要触发新的补全,可以加一下 print 语句来看看。
nope, what is the grammatical-edit, I never use that
输入 } 跳转的问题肯定不是 lsp-bridge 引起的,检查一下你的括号补全插件。
边写边查看API文档的功能已经实现了, 需要安装新的依赖 corfu-doc 不喜欢的同学可以通过 lsp-bridge-enable-candidate-documentation
选项关闭这个功能。
同时发现了一个 corfu-doc 的bug
我这边删除按键没问题,请用 emac -Q 对比测试一下,排除其他插件的影响。
还是一样。
(require 'go-mode)
(require 'yasnippet)
(require 'lsp-bridge)
(require 'lsp-bridge-icon) ;; show icons for completion items, optional
(require 'lsp-bridge-jdtls) ;; provide Java third-party library jump and -data directory support, optional
(require 'lsp-bridge-orderless) ;; make lsp-bridge support fuzzy match, optional
(require 'corfu)
(require 'corfu-info)
(require 'corfu-history)
(require 'cape)
;; 默认用这三个补全后端
(add-to-list 'completion-at-point-functions #'cape-symbol)
(add-to-list 'completion-at-point-functions #'cape-file)
(add-to-list 'completion-at-point-functions #'cape-dabbrev)
(yas-global-mode t)
(corfu-history-mode t)
(global-lsp-bridge-mode)
(global-corfu-mode)
;; 融合 `lsp-bridge' `find-function' 以及 `dumb-jump' 的智能跳转
(defun lsp-bridge-jump ()
(interactive)
(cond
((eq major-mode 'emacs-lisp-mode)
(let ((symb (function-called-at-point)))
(when symb
(find-function symb))))
(lsp-bridge-mode
(lsp-bridge-find-def))
(t
(require 'dumb-jump)
(dumb-jump-go))))
(defun lsp-bridge-jump-back ()
(interactive)
(cond
(lsp-bridge-mode
(lsp-bridge-return-from-def))
(t
(require 'dumb-jump)
(dumb-jump-back))))
你的删除按键帮定的什么命令?
上传一个实例文本给我? 我试了你的按键,没有重现。
目前测试,干净的环境,没加载其他任何的插件,只加载了,lsp-bridge需要的
package main
import (
"regexp"
"testing"
)
// TestBp ...
func TestBp(t *testing.T) {
r := regexp.MustCompile(`^[a-z_]+[a-z0-9]+$`)
ok := r.MatchString("wangmazi")
if ok {
t.Log("ok")
} else {
t.Error("no")
}
ok = r.MatchString("zhangsna123")
if ok {
t.Log("ok")
} else {
t.Error("no")
}
}
具体复现步骤:
- 输入
t.
弹窗 - 用方向键选择下拉(C-n or C-p)一样。
- 按键盘上的delete键(mac)
就会出现,如上描述问题。
这个文档确实重现了,我看看。
已经修复了,确实是 bug
感谢反馈!
大家更新到最新版 corfu-doc 吧,补丁已经合并了。
lsp-bridge 现在可以在补全菜单选中的时候,动态更新候选词的 additionalTextEdits 信息。
主要的作用是, 写 vue 代码的时候,比如直接补全 ref
,在用户真正按回车之前会立刻更新 ref 的 additionalTextEdits 信息,当用户回车的时候,会自动根据 additionalTextEdits 信息自动插入 auto-import 代码。
因为默认发送 textDocumentation/completion 请求时, 候选词太多, LSP服务器没法计算所有候选词的文档和auto-import信息,通过上面这个补丁可以用户敲候选词的时候动态获取。
优秀!效率很赞!
用最新的LSP-Bridge 和corfu-doc 0.6.2 干净的golang环境提示以下错误信息,文档显示不出来。 测试代码参考上面 删除键补全bug代码。
gopls version golang.org/x/tools/gopls v0.8.4
[LSP-Bridge] JSON RPC method not found: "ResolveCompletionItem" not yet implemented
python没问题,应该gopls的问题,提示错误信息在补全选择时闪烁,有点晃眼。
另外,额外咨询一下,doc的显示lsp-bridge一般会被什么配置属性影响,我完整版的python不显示也不报错,愣是找不到被那个配置干扰了
你报错的时候就应该再更新一下,手速慢了, 哈哈哈哈。
在候选快速选择的时候,minibuffer下面一直闪
你确定更新了? gopls 现在不会报错了。