Application 2020-07-19 ⏱ 2 min read

Code Definition Jump Disabled After Enabling Go Language Server in VSCode

Fix VSCode Go language server issues with gopls by placing go.mod file correctly for code definition jumping.

Read in: ja
Code Definition Jump Disabled After Enabling Go Language Server in VSCode

Overview

After enabling the Go Language Server settings in VSCode, I found that jumping to code definitions was no longer possible, so I investigated the cause.

settings.json

"go.useLanguageServer": true,

Conclusion

A go.mod file needs to exist at the root of the project.

cf. stackoverflow - How to properly use go modules in vscode?

When opening a folder in VSCode, instead of this,

.
├── app
    ├── go.mod

You need to open it like this, otherwise, the path won't be resolved correctly, preventing code jumps.

.
├── go.mod

For reference, here is the content of go.mod.

module github.com/bmf-san/gobel-api/app

go 1.14

require (
	github.com/bmf-san/goblin v0.0.0-20200718124906-8b3133b538d6
	github.com/bmf-san/golem v0.0.0-20200718182453-066c8e70e46e
	github.com/go-redis/redis/v7 v7.4.0
	github.com/go-sql-driver/mysql v1.5.0
	github.com/satori/go.uuid v1.2.0
	golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899
)

Since it says module github.com/bmf-san/gobel-api/app, I thought it would interpret it correctly, but apparently not.

Investigation Method

Open the terminal in VSCode, select OUTPUT>gopls(server), and try jumping to code to check the error logs.

From the error logs, it seemed like the path was suspicious, and after some investigation, I found a relevant post on Stack Overflow.

Solution

Here are some immediate countermeasures:

It might be possible to adjust with gopls or VSCode settings, but since I couldn't find a quick solution and it seemed time-consuming, I temporarily responded by turning off the language server settings...

I don't think this is a mature setting yet, so similar cases or the best solution might be found eventually...

I plan to update if I find anything.

Related

Tags: Golang gocode gopls Language Server vscode Tips
Share: 𝕏 Post Facebook Hatena
✏️ View source / Discuss on GitHub
☕ Support

If you enjoy this blog, consider supporting it. Every bit helps keep it running!


Related Articles