我现在没在用lsp-bridge,但这个补丁我看来不会影响到之前的功能
这应该是 lsp-bridge 的 bug, 等我想想。
@braineo Code Action 的多服务器支持已经加上了, Add multi-server support for Code Action. · manateelazycat/lsp-bridge@16c8730 · GitHub
你测试一下看看, 有啥问题再跟我说。
上次给诊断添加多服务器支持的时候把 Code Action 给漏了。
感谢勇哥,这速度
我看了一眼改动好像没有啥影响,但是好像有问题。
启用多服务器之后code action的preview出错(前几行是另一个server的code action options),而且code action不能apply。
在code action设置里删掉一个server就好了。
如果描述太抽象等我晚点搞些log
你给我一个可以重现你问题的 demo 项目吧, 我一会临时合并一下你的 PR 本地测试一下。
这是有eslint
这是只有typescript
这是一个新鲜的nextjs project
// testeslint/src/app/page.tsx:7
export const test = () => {
var a = 0;
if (!a) {
console.log(metadata);
return 0;
}
return 1;
};
我是分割线
我没有看具体实现,vscode好像还能根据打开的地方显示不同的code action
附上配置
(use-package lsp-bridge
:straight (:host github
:repo "manateelazycat/lsp-bridge"
:files ("*" (:exclude ".git")))
:hook (after-init . global-lsp-bridge-mode)
:custom
(lsp-bridge-signature-function 'eldoc-message)
(acm-markdown-render-font-height 80)
(lsp-bridge-multi-lang-server-extension-list
'((("ts" "tsx") . "typescript_eslint"))))
这个错误, 我推送了一个补丁 We need add server-name in `command', otherwise `lsp-bridge-code-acti… · manateelazycat/lsp-bridge@7238601 · GitHub 已经修复了, 你把你那个补丁 rebase 一下。
rebase了,嗯…我本地还是有问题。执行一个code action之后
Debugger entered--Lisp error: (wrong-type-argument window-live-p nil)
#<subr select-window>(nil nil)
ad-Advice-select-window(#<subr select-window> nil)
apply(ad-Advice-select-window #<subr select-window> nil)
select-window(nil)
lsp-bridge-code-action-popup-quit()
lsp-bridge-code-action-popup-select()
apply(lsp-bridge-code-action-popup-select nil)
lsp-bridge-call-hierarchy-select()
funcall-interactively(lsp-bridge-call-hierarchy-select)
command-execute(lsp-bridge-call-hierarchy-select)
ad-Advice-select-window 这个看着像你的配置引起的呀
有可能,我再排一下吧,诡异的是只用一个server就没问题
这个错误我已经修复了。
有新的问题 ERROR:epc:ReturnError([Symbol(‘wrong-type-argument’), Symbol(‘number-or-marker-p’), []]), 还有 code action 的菜单会跳到左上角。
比较诡异。
ESLint 的补丁已经合并, 期间的错误都是因为多个 LSP Server 同时提供 code action 服务的时候, 会导致 Code Action 菜单弹出多次, 造成了 window-live-p 和 number-or-marker-p 错误。
更新最新版, 所有错误都修复了。
感谢大佬的补丁, 把 eslint lsp server 研究透不容易, 很给力!
啊原来如此,弹得太快了。太好了 code action现在更强了
对, 执行 code_action 的时候, 每个 LSP Server 跑了一个线程, 当多个线程快速返回 Code Action 数据时, 会造成竞争性错误。
因为 Code Action 的计算一般都比较快, 所以我在 FileAction 里面做了一个计数器, 等所有 LSP Server 的 Code Action 都返回时才弹出 Emacs 菜单, 实际测试, 即使等待几毫秒, Code Action 菜单弹出速度依然非常快。
lsp-bridge 可不可以也支持下 shell?
aweshell 这个包用到 company 实现 auto suggestion, 如果需要正常补全,还得额外装个 company-shell 包。
欢迎发送补丁把, 我现在很少用 aweshell 了, 主要是频繁开发各种 Elisp 插件, 每天都要重启 Emacs .
好的 ~ 紫薯布丁
你好,麻烦问下,在这个 commit 中看到变量 acm-snippet-insert-index
被移除,现在 yasnippet 候选项又排到了最后……应该怎么处理呢?
草稿纸画的项目已经开始了, nova的目标是用类似 lsp-bridge 的技术实现一个多线程远程文件编辑模块。
目前已经可以基于 lsp-bridge 发送的 LSP Diff 序列, 实时编辑远程服务器任意大小的文件, 性能秒杀 tramp.
估计4月份, 可以结合 nova 和 lsp-bridge 这两个项目的功能, 以实现 VSCode 那样实时的远程代码补全功能。