乐趣区

关于go:vim-golang-泛型异常提醒错误问题expected-found-string

开发环境

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-goale 均具备代码检测, 都可能应用 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 文件, 谬误隐没

在此记录, 以上!

退出移动版