Application 2020-07-19

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