Eglot 实现java跳转sdk和第三方库代码(抄的lsp-java)

前段时间从lsp-mode切换到了eglot, js,html,css等都没问题,唯一的问题是java可以补全但是不能跳转sdk和第三方库的源码。

看了下jdtls和lsp-java的源码查了(eclipse.jdt.ls#issues#1384), 发现要开启 extendedClientCapabilities.classFileContentsSupport 支持,跳转代码定义的时候jdtls才会返回 jdt://协议开头的依赖代码的路径.

最终参考lsp-java#lsp-java–resolve-uri的实现,完善了eglot java跳转sdk和库代码的需求。

我的修改

4 个赞

感觉现在转 eglot 的人蛮多的,你们用起来感觉怎么样?我用的时候总觉的一顿一顿的,没有 lsp-mode 那么顺滑,lsp-mode 就是依赖实在是太多了……

通常是 eglot 顺滑,lsp-mode 一顿一顿的吧。。。两者不属于同一个重量级别阿

2 个赞

我现在使用很顺滑。

如果你用的是emacs27.2以上的版本, 可能是因为eglot/issues#860这个bug导致的卡顿,目前已修复,可以使用最新版本试试。

对,就是很奇怪啊

谢谢,我再试试

太强了!!!这就是我想要的功能!!!

1 个赞

lsp-bridge 通过这个补丁也实现了 Java 直接跳转到第三方库的功能。

1 个赞