开发环境
vim + golang + vim-go + ale + Ycm
vim-go + ale 提供语言检测, 主动提醒, 主动修复反对
Ycm 提供补全反对
vim 版本: vim9.0
golang: go version go1.20 darwin/amd64
问题
基于以上环境, 开发中定义 泛型类型
时总是报错, 如下
expected ']', found string
踩坑过程
这个谬误属于代码检测, 且通过大量查问定位到了 gopls
版本问题导致的.
低版本的gopls
不反对泛型
因为 vim-go
和ale
均具备代码检测, 都可能应用 gopls, 因而在 vim
中,
:GoInstallBinaries
更新了全副 golang 二进制文件, 且查看 gopls
的版本曾经是 0.11
了
ale 中禁用了gopls
作为linter
关上 go 文件, 该谬误仍存在.
狐疑不是这两个插件导致的, 因而在.vimrc 中, 禁用了这两个插件, 再从新关上 go 文件, 仍有谬误, 由此确认的确不是这两个插件导致的.
最初将 Ycm
插件禁用后, 该谬误隐没了. 由此确认是Ycm
插件导致的
解决
vim 中运行 :YcmDebugInfo
果然发现有gopls
调用
查看执行的 gopls
门路, 该版本为
与 vim-go
里更新的gopls
门路不统一且版本不统一
查看官网文档, 配置 let g:ycm_gopls_binary_path = "gopls"
即可调用系零碎门路下的gopls
批改该配置后, 从新打 go 文件, 谬误隐没
在此记录, 以上!