
golang
电影旅行敲代码
垃圾文章制造者
展开
-
go module & package & versioning & vendor 笔记
个人总结,无参考价值 Go Module Go设计之初的GOPATH机制可以说比较失败,所以后面才有了vendor和module来修补,module解决核心的问题是version问题,也就是包管理问题。module的整个设计可以参考Russ Cox的博客Go & Versioning。普通用户只需要使用就行了,不需要考虑module背后设计哲学。 go.mod go module使用go....原创 2020-01-02 21:29:06 · 1215 阅读 · 0 评论 -
调试gopls(tools/lsp)及部分源码剖析笔记(过时,低质量,自用)
gopls gopls是go官方给出的go-langserver的一个外部接口,核心是x/tools/internal/lsp,所以调试gopls可以说就是调试go lsp。 调试query 使用delve进行调试,调试命令如下。前半段是调试go-pls的调试命令,后面跟的是gopls执行时的参数,下面的命令就是要查询internal/lsp/cmd/definition.go偏移1277的位置定...原创 2019-02-22 17:30:44 · 6902 阅读 · 5 评论 -
深度调试gopls(过时,低质量-How-自用)
什么是LSP LSP(Language Server Protocol)是微软在开发visual studio code中针对Language Server设计的一种协议,关于设计中的抉择,在文章《Language Server Extension Guide》有详细介绍。 下面我粘贴了这篇文章中的一些描述,采用Language Server的原因主要分为如下三点: 不同语言的language ...原创 2019-02-23 20:32:41 · 4406 阅读 · 0 评论 -
gopls中一死锁问题记录
死锁表象 client端在发完initialize请求后,gopls调用initialize对应的handler,初始化成功。但是client端在发下一个请求时,gopls就"卡"死了,client端发出去了请求,但是gopls却显示没有收到。而gopls端CPU资源和内存资源占用极低。 调用lsof -i:port(其实从这里就能看出来是gopls创建了两个监听同一端口的goroutine导致的...原创 2019-06-02 11:33:41 · 3083 阅读 · 0 评论