Home  >  Article  >  Backend Development  >  How to get perfect multi-module support for GoLand on VSCode (no work required)

How to get perfect multi-module support for GoLand on VSCode (no work required)

PHPz
PHPzforward
2024-02-09 11:30:20561browse

如何在 VSCode 上获得 GoLand 的完美多模块支持(无需工作)

php editor Xigua today will introduce to you a method that allows you to get perfect multi-module support similar to GoLand on VSCode without extra work. VSCode is a very popular development tool, and GoLand is an IDE specially designed for Go language development. For developers who use VSCode for Go language development, if they can have GoLand's multi-module support, development efficiency will be greatly improved. So, how to achieve this goal? Next, we will answer them one by one for you.

Question content

When I open a multi-module project in GoLand (Jetbrains), it works very well, Implementation, Type declaration and other useful IDE features work well out of the box.

But when I open the same project in VSCode, I can't get intellisense to work (using gopls), it doesn't work and need to use go work for the module Major structural changes, (so this is not an option for me) p>

Is it because GoLand uses a different language server?

I tried trying the Go extension setup but it didn't bring any benefit. I was able to disable the language server turning everything red, but this is not a solution

Workaround

go workspace is part of the toolkit and should work for anyone IDEs that support this feature. I use it every day on vs code.

So basically you need to have a go.work file in the project root directory and vs code will interpret it. Example:

go 1.20

use (
    .
    ./mymodule1
    ./mymodule2
)

The difference is that goland automatically adds modules in a multi-module setup, I didn't know vs code had this feature.

When you create the go.work file, goland will automatically add all modules in the project.

If you check go's .gitignore you'll see that the go.work file is ignored by default, so I'm assuming you don't have it versioned. I usually comment that line so that vs code tracks it and includes it in my commits.

# Go workspace file
go.work

To add a new module to go.work, simply execute the go job, using . in the root directory of the new module.

Sometimes I have to reload vs code to sync it, but usually it works immediately.

If you're still having issues, it might be worth trying Troubleshooting the extension.

The above is the detailed content of How to get perfect multi-module support for GoLand on VSCode (no work required). For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:stackoverflow.com. If there is any infringement, please contact admin@php.cn delete