比如跳转到某个函数定义之类的? 感觉这两个mode关系不是很清楚。。
go-mode有跳转到函数定义的功能?功能可能是有重叠,但lsp-mode的跳转到函数定义功能应该比其它工具如ctag,dumbjump 等更精确一些
我问题描述不准确,主要是对gopls,lsp-mode定位太模糊了
简单说,gopls是服务端后端,lsp-mode是运行在emacs中的客户端,gopls不仅可用于lsp-mode这一个客户端,还可用于其它编辑器。不知道这么说清楚不
这个我理解,那既然lsp-mode可以用于不同语言例如c++,go等,那就定义跳转这个功能而言,是lsp-mode定义了一致的快捷键command,然后具体实现由语言后端完成吗?
比如我要跳转到c++中的
func
,或者go中的func
,是lsp-mode保证我在emacs中输入的command一致的吗
不太清楚lsp是如何实现的,我理解lsp-mode就只是前端,把数据发到后端,解析后端返回数据,功能具体实现全是后端完成的
我想了想,我的核心问题是,不同编程语言下,跳转等命令绑定的快捷键是由lsp-mode定义的对吗
在 lsp 出来之前,不同的编程语言都需要做跳转功能,go-mode 要做跳转,python-mode 也要做跳转。
lsp 出来后,lsp mode 可以给所有它支持的语言提供跳转功能, go-mode 和 python-mode 都不需要做跳转了
所以 go-mode 有跳转功能是因为他在 lsp-mode 出来之前就有了,那时候只有 它 能提供跳转功能
1 个赞