「Go言語」カテゴリーアーカイブ

Go 1.9 リリース

情報源: Go 1.9 is released – The Go Blog

v1.9がリリースされました。

今回もっとも大きな変更はType Aliasesの導入で、詳細は以下を確認ください。

proposal/18130-type-alias.md at master · golang/proposal

その他の変更点・修正点については以下のリリースノートにてご確認ください。

Go 1.9 Release Notes

各プラットフォーム向けダウンロードは以下のページよりお願いします。

Downloads

JetBrains Gogland

Gogland is a new IDE by JetBrains aimed at providing an ergonomic environment for Go development.

情報源: JetBrains Gogland: Capable and Ergonomic Go IDE

見逃していましたが、JetBrainsがGo言語のIDEの開発を始めたようです。とうとうIDEとしては本命が来るのかと言った感じですね。

基本的に皆がJetBrainsのIDEに期待する機能は盛り込まれてきそうです。

https://www.jetbrains.com/go/features/

現在EAPの応募が始まっています。(情報源を参照)

Go言語で開発されたGitHubクローンGogsの紹介

Gogs (Go Git Service) is a painless self-hosted Git service

情報源: Gogs – Go Git Service – a painless self-hosted Git service

Go言語で開発されたGitHubクローンのGogsの紹介をします。Windowsでも動作しますし、Javaで書かれている他の物のように別途アプリケーションサーバーを用意する必要はありません。

まず、以下のダウンロードサイトから最新のWindows版のバイナリをダウンロードします。

https://gogs.io/docs/installation/install_from_binary

ZIPファイルがダウンロードされますので、適切な場所に解凍します。

続きを読む Go言語で開発されたGitHubクローンGogsの紹介

メモ:Windows上のVisual Studio CodeでGo言語の開発環境を整える

作業手順と参照リンク先のメモです。

Go自体のインストール、環境変数GOROOT, GOPATHの設定は終わっているものとします。

Visual Studio Codeのインストールと入手

普通にセットアップウイザードを進めていけば良いです。

VS Code上からGo for Visual Studio Codeをインストールします。(インストール方法は割愛)

このGo for Visual Studio CodeはGo言語のシンタックスハイライト、godocを使用したコード補完(つまりインテリセンス)、スニペット、定義への移動、参照先の検索、等々Visual Studio CodeをIDEっぽく使用できるようにするものです。

また、Go for Visual Studio Codeを使用するに当たっては、以下のGoのパッケージをインストールします。


go get -u -v github.com/nsf/gocode
go get -u -v github.com/rogpeppe/godef
go get -u -v github.com/golang/lint/golint
go get -u -v github.com/lukehoban/go-outline
go get -u -v sourcegraph.com/sqs/goreturns
go get -u -v golang.org/x/tools/cmd/gorename
go get -u -v github.com/tpng/gopkgs
go get -u -v github.com/newhook/go-symbols
go get -u -v golang.org/x/tools/cmd/guru
go get -u -v golang.org/x/tools/cmd/goimports

%GOPATH%\binにPATHを通すのを忘れないようにしましょう。

デバッグ環境がいらなければほぼこれで終了です。Goのコードを書いてF5キーを押すと自動的にlaunch.jsonファイルが作成され、ファイルがコンパイルされ実行されます。

生成されるlaunch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch",
            "type": "go",
            "request": "launch",
            "mode": "debug",
            "remotePath": "",
            "port": 2345,
            "host": "127.0.0.1",
            "program": "${workspaceRoot}",
            "env": {},
            "args": []
        }
    ]
}

また、コマンドパレットからConfigure Task Runnerを選択実行して出来上がるtasks.jsonを以下のように変更すれば、goimportsをCtrl+Shift+bで実行してGoのコードをビルドし、整形することが出来ます。

{
    "version": "0.1.0",
    "command": "goimports",
    // ビルドコマンドとして登録する
    "isBuildCommand": true,

    // always=必ず表示 silent=エラー時のみ表示 never=表示しない
    "showOutput": "silent",

    "windows": {
        "command": "goimports"
    },

    // goimportsのオプション。上書きオプションと編集中のファイルを引数に渡す
    "args": ["-w", "${file}"]
}

デバッグ環境

ステップ実行によるデバッグが可能ですが、デバッグに当たってはdelveが必要になります。

以下のコマンドで入手してください。(Windows版もバイナリが配布されるようになりました。)

go get github.com/derekparker/delve/cmd/dlv

delveのインストールさえ上手くいけば、エディタ上にブレークポイントを置いて、Ctrl+F5もしくはコマンドパレットよりDebug Runコマンドでコードにステップインし、ソースコードでバッグ可能です。

SnapCrab_helloworldgo - HelloWorld - Visual Studio Code_2016-4-24_11-18-37_No-00

【参考】delveのビルド方法

以下のgo getコマンドでソースを入手します。

go get github.com/derekparker/delve/cmd/dlv

GOPATHのsrcディレクトリ以下に配置されるので、移動します。

以下にある手順で、 MinGW-W64をセットアップし、make installします。

Installation on Windows · derekparker/delve Wiki · GitHub

無事makeが動けば$GOPATH/binにdelveの実行ファイル、dlv.exeがコピーされています。

まとめ

これで、WindowsでのGo開発も捗っていくのでは無いかと思います。メモ帳つらいw