添加build tags后gopls失效,Neovim环境下求解决方案
当你在Neovim里使用gopls时,遇到带// +build connection这类build tags的文件报"No packages found"错误,直接给你几种适配Neovim的解决方案:
1. 基于nvim-lspconfig的全局配置
如果你用标准的nvim-lspconfig管理LSP,找到gopls的配置块,添加buildFlags参数指定需要识别的build tags:
require'lspconfig'.gopls.setup{ settings = { gopls = { buildFlags = {"-tags=connection"}, -- 多个标签用逗号分隔,比如 {"-tags=connection,debug"} }, }, }
2. LazyVim/Lazy.nvim框架下的配置
如果用LazyVim这类配置框架,或者用lazy.nvim管理插件,在gopls的配置项中加入settings:
return { "neovim/nvim-lspconfig", opts = { servers = { gopls = { settings = { gopls = { buildFlags = {"-tags=connection"}, }, }, }, }, }, }
3. 项目局部配置(仅当前项目生效)
不想全局修改配置,只想让某个项目生效的话,在项目根目录创建.nvim.lua文件,写入以下内容:
local lspconfig = require('lspconfig') lspconfig.gopls.setup{ settings = { gopls = { buildFlags = {"-tags=connection"}, }, }, }
Neovim会自动加载该项目下的局部配置(前提是未禁用局部配置功能)。
验证配置是否生效
配置完成后重启Neovim,打开报错的文件,输入:LspInfo,找到gopls的启动参数,确认其中包含-tags=connection,即可验证参数已正确传递给gopls。
内容的提问来源于stack exchange,提问作者ynssssssss
相关产品推荐
相关产品推荐

