GOLANG@VS.CODE自分用メモ
GOPATHの設定をどうするか的な話。
プロジェクトごとにルートパスが違うのでシステムに単一のGOPATHだと
いやだなぁと思っていて、かと言って相対パスでローカルパッケージを
指定してもvs.codeでローカルパッケージだとインテリセンスが効かない
のも嫌だなぁというのをなんとか解決する話。
GOROOTを.bash_profileに設定する。
export GOROOT=/usr/local/opt/go/libexec
code () {
if [[ $# = 0 ]]
then
GOPATH=$(pwd)
open -a "Visual Studio Code"
else
GOPATH=$(pwd)
[[ $1 = /* ]] && F="$1" || F="$PWD/${1#./}"
open -n -a "Visual Studio Code" --args "$F"
fi
}
{
"version": "0.1.0",
"command": "go",
"showOutput": "always",
"options": {
"env": {
"GOPATH": "${workspaceRoot}"
}
},
"tasks" :[
{
"taskName": "build",
"args": ["-v"],
"isBuildCommand": true
},
{
"taskName": "run",
"args": ["-v"]
},
{
"taskName": "test",
"args": ["-v"],
"isTestCommand": true
}
]
}
options/env下にGOPATHを${workspaceRoot}で設定しておくのがポイント。
ワークスペース以下のフォルダ構造は以下のような感じにする。
${workspaceRoot}
/pkg/... → ここの下に.aファイルが勝手にできる
/src/[パッケージフォルダ]
mainパッケージのファイルはベタ置き
デメリットはgo getしたやつは個別のワークスペースに展開されるので
ファイルサイズが大きくなる。
けれど、今時ならOKOKということで。
2017/01/11 追記
src下にmain.goを置くとデバッグできないのはdleveのバグっぽいが試していない。
プロジェクトごとにルートパスが違うのでシステムに単一のGOPATHだと
いやだなぁと思っていて、かと言って相対パスでローカルパッケージを
指定してもvs.codeでローカルパッケージだとインテリセンスが効かない
のも嫌だなぁというのをなんとか解決する話。
GOROOTを.bash_profileに設定する。
export GOROOT=/usr/local/opt/go/libexec
.bash_profileにcode .とうつと起動するように仕込みを入れる。
code () {
if [[ $# = 0 ]]
then
GOPATH=$(pwd)
open -a "Visual Studio Code"
else
GOPATH=$(pwd)
[[ $1 = /* ]] && F="$1" || F="$PWD/${1#./}"
open -n -a "Visual Studio Code" --args "$F"
fi
}
exportしないでGOPATHをワークスペースに設定しておく。
こうすると、vs.codeで自前パッケージのインテリセンスが有効になる。
起動後に.vscode下にtasks.jsonを作る。
以下のような感じ
"version": "0.1.0",
"command": "go",
"showOutput": "always",
"options": {
"env": {
"GOPATH": "${workspaceRoot}"
}
},
"tasks" :[
{
"taskName": "build",
"args": ["-v"],
"isBuildCommand": true
},
{
"taskName": "run",
"args": ["-v"]
},
{
"taskName": "test",
"args": ["-v"],
"isTestCommand": true
}
]
}
options/env下にGOPATHを${workspaceRoot}で設定しておくのがポイント。
ワークスペース以下のフォルダ構造は以下のような感じにする。
${workspaceRoot}
/pkg/... → ここの下に.aファイルが勝手にできる
/src/[パッケージフォルダ]
mainパッケージのファイルはベタ置き
デメリットはgo getしたやつは個別のワークスペースに展開されるので
ファイルサイズが大きくなる。
けれど、今時ならOKOKということで。
2017/01/11 追記
src下にmain.goを置くとデバッグできないのはdleveのバグっぽいが試していない。
コメント