2020/02/11

[golang]vscodeの設定など

visual studio codeをgolang環境でも使いたい。
OSはLinuxというかLubuntu18.04、vscodeは1.42.0。

作業ごとにgolangのバージョンも分けたいし、GOPATHも変えたい。
となると、環境変数を変更した上でvscodeを起動せんといかん。

ビルドは手動でやりたいし、できれば大半の作業は手動でやりたい。
そうでないと、なんだかよくわからなくなるからだ。
慣れたら自動でやってもらうかもしれんが、まずは手動で制御するようにしたい。


まず、Microsoftのgo extensionをインストールした。

Tools Gopathを設定して、vscode専用のディレクトリを作った。
GOPATHをちょこちょこ変更するので、そのたびにvscode用のツールをビルドされても困るからだ。

Build on SaveをOFF。

最初の設定はこんなところか。

 

goファイルを開くと、ツールのインストールを求められたのでALLの方を選んだ。
こういうメッセージも出てきた。

image

Format Toolをgoimportsにし、goファイルを開いてimportを適当に削除してファイル保存する。
そうすると、自動的にimportが追加された。
しかし・・・自動で、というのが困る。

これは、go言語のみformat on saveを無効にすれば良いそうだ。
build、lint、vet(検査?)はgo言語の設定だが、formatはエディタの機能だからこうなるのか。
自動でformatしたい場合は、F1を押してFormat Documentすればよい。

 

でも、私はeditor.formatOnSaveを有効にしていないのだが、なぜフォーマットされてしまうのだろう?
settings.jsonで明示的にfalse指定しても、go言語指定でfalseにしないとフォーマットされてしまう。

The Go extension runs the below on each file save by default.

と書いているから、go extensionがそうしてしまうと考えるのが妥当か。
だが、非常に迷惑だ。extension以外の設定に効果を及ぼすextensionというのはまずいんじゃなかろうか。
チェックするのはいいのだが、自動整形したくない設定をしているのに成形されてしまうのは困る。

"editor.formatOnSave": false,  //これはなくてもよい
"[go]": {
    "editor.formatOnSave": false
},

まあ、golangが比較的、あれこれを強制的に決めてしまう言語だからというのもあるのかもしれんが、、、

 

いかんいかん、歳を取ると愚痴っぽくなってしまうな。
回避方法が分かっているのだから、まあよしとしよう。


次はGOPATHだ。
今回の意図からすると、.vscode/settings.jsonにgo.gopathを書くのが妥当なのだろう。

が、私はまだworkspaceに慣れていない。
そのせいで、srcの下でvscodeを開いたり、その上で開いたりと、かなり適当なのだ。
vscodeのworkspaceは開きたいファイルのリストのように使えるのだろうが、どうしても「開いたディレクトリ以下にあるファイルを開くもの」と思い込んでしまっているのだ。

 

というわけで、2段構えだ。
環境変数のGOPATHも設定し、、.vscode/settings.jsonにgo.gopathも書く。
vscodeは相対パスや環境変数が使えるのかよくわからないのだが、環境変数のGOPATHはデフォルトで使っていない(毎回設定している)のでコンソールを開くし、コンソールを開くならコマンドラインからvscodeを起動すれば良いだけだ。


とりあえず、こんなところだろうか。

仕事でgolangを使っているPCで、どういうコードを書けばいいか実験的に試すこともある。
そのときに、binやpkgが混ざらないようにしたいのだ。
go getでキャッシュなんかにダウンロードされているようだから、完全に分けるのは難しいだろうが、まあ、心意気だ。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。