发现一个 jetbrains 的查找 reference 相对于 lsp 的优势

最近写go比较多,比较 emacs 的 lsp-mode 和 goland,golang在查 reference 的时候可以跟据是对某个变量的读或者写做区分,但是 lsp-mode 不行,我猜 lsp 本身就不支持这种区分。goland 的这个功能还是挺方便的,ls-mode的话就只能一个一个 reference 人肉区分了,有点累眼睛。

goland 卖那么贵就应该各方面都比 lsp 好用,好用一点都不行,不甩十条街我都觉得这钱花的不值。

3 个赞

赞同,有人做相关详细的对比吗?个人使用来说,我基本上所有编辑,写代码的工作都在emacs上,其他IDE 好几年前都从我的电脑消失了。

要这么细吗,还真没碰到过这种场景,细还是 goland 细!

区分"读"或者"写"的reference,nvim那边lsp结合treesitter能够有这个功能(搜索nvim navigator.lua这个插件,不过这玩意有bug)。这俩emacs都有等价物,所以也能做到,只不过nvim那边treesitter的插件要发展的快很多。

其实这取决于 lsp server 的实现。比如 ccls 其实就有你说的功能。

https://github.com/MaskRay/ccls/wiki/lsp-mode#cross-reference-extensions

对,我经常使用ccls的read/write reference功能,很好用