I want to set $GOPATH for each vscode project/workspace. Right now, in .vscode/settings.json, I have:
{
"go.gopath": "$HOME/codes/huru"
}
I close vscode and reopened, and at the command line terminal, I echo $GOPATH, and it's empty. I was hoping that vscode would read the env variable from "go.gopath", but it seems not have to done so.
Does anyone know how to do this?
Setting the go.gopath
on user settings or workspace settings will replace the GOPATH value on the VS Code. This GOPATH value is the one that showing up when Go: Current GOPATH
command is executed, not the $GOPATH
environment variable.
The go.gopath
value will not replace the $GOPATH
environment variable.
Explanation from GOPATH in the VS Code Go extension:
Out of the box, the extension uses the value of the environment variable
GOPATH
. From Go 1.8 onwards, if no such environment variable is set, then the defaultGOPATH
as deciphered from the command go env is used.Setting
go.gopath
in User settings overrides theGOPATH
that was derived from the above logic. Settinggo.gopath
in Workspace settings overrides the one from User settings. You can set multiple folders as GOPATH in this setting. Note that they should be;
separated in Windows and:
separated otherwise.
Below I add an image that might help you.
$GOPATH
env variable ready on my local with certain value. Then I set the go.gopath
on the user settings (with different value compared to the $GOPATH
). When I execute command Go: Current GOPATH
, a popup on the bottom right appear, showing the very same value like on my go.gopath
settings. I put red line on all of this.echo $GOPATH
on terminal, the output is still the $GOPATH
value from my env variable (blue line). This is because go.gopath
setting will not replace the $GOPATH
env variable.In your case, the echo $GOPATH
return empty output because you haven't set the $GOPATH
environment variable.