43
43

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Visual Studio CodeでGo言語の設定

Last updated at Posted at 2015-05-12

感想

  • 動作は気持ちいい
  • まだGo開発で使うのは早いかも
    • 自動補完欲しい
    • 定義ジャンプ欲しい
    • プラグイン書かせて欲しい
  • SublimeTextからの移行だと、タブ無しUIに慣れる必要あり

Visual Studio Code

Visual Studio Codeはマルチプラットフォームで動作する無料のIDEです。

まだプレビューリリースされたばかりなので、機能的に不十分な部分もありますが、
UIはAtom風で、gulpタスクと連携できたりと機能が豊富なIDEです。

Go言語は、シンタックスハイライトと対応するブラケットの表示のみサポートしているようです。
https://code.visualstudio.com/Docs/languages

今のところはユーザーによる言語設定の拡張に対応していないようですが、考えてはいるらしいです。
近い内に対応され、Go関連の機能が満載になることを祈りながら使いましょう。

(私はSublimeText3の動作が重くなってきたので、こちらに切り替えようと思ってます)

ダウンロード

下記URLからダウンロードしてください

OSXでのインストール

解凍してでてきた Visual Studio Code.appアプリケーション に入れればOKです。

下記の関数を .bashrc に追加しておけば、
code コマンドで ファイルやディレクトリをVSCodeで開くことが出来ます。
(でも既に違うワークスペース開いてる場合は開かない...?)

code () {
    if [[ $# = 0 ]]
    then
        open -a "Visual Studio Code"
    else
        [[ $1 = /* ]] && F="$1" || F="$PWD/${1#./}"
        open -a "Visual Studio Code" --args "$F"
    fi
}

Linuxでのインストール

適当なディレクトリに配置して解凍してください。
そしてCodeという実行ファイルにPATHを通すため、シンボリックリンクを張ってください

$ sudo chmod +x /path/to/VSCode/Code
$ sudo ln -s /path/to/VSCode/Code /usr/local/bin/code

Windowsでのインストール

ダウンロードした、 VSCodeSetup.exe を実行するとインストールが自動で始まり、完了するとVSCodeが起動します。

インストール先は下記になるようです

C:\Users\<username>\AppData\Local\Code

設定

VSCodeでは設定をJSONファイルで行います。(SublimeTextやAtomと同じですね)

OSXでは画面左上の「Code -> Preference」から、Windowsでは「File -> Preference」から設定可能です。

基本設定

共通の設定は、
OSXでは cmd+,、 Windowsでは「File -> Preference -> User Setting」から設定可能です。

左側ペインがデフォルトの設定、右側がユーザーの個別設定を記述する部分となります。

ここでは一例として、フォント、ホワイトスペースの表示、MarkdownプレビューのCSS設定を行っています。
コメントはつけられるようですが、JSONなので末尾のカンマの有無に気をつけてください。

// Place your settings in this file to overwrite the default settings
{
	// 使用フォントの指定
//	"editor.fontFamily": "Ricty",  // ←Rictyフォントが入ってる場合
	// フォントサイズ
	"editor.fontSize": 17, 
	// ホワイトスペースの表示
	"editor.renderWhitespace": true, 
	// Markdownプレビュー時のスタイル設定
	"markdown.styles": ["http://thomasf.github.io/solarized-css/solarized-dark.css"] 
}

プロジェクト固有の設定

現在開いているディレクトリ(ワークスペース)以下でのみ有効な設定は、
OSXでは「Code -> Preference -> Workspace Setting」、
Windowsでは「File -> Preference -> Workspace Setting」から設定可能です。

設定できる内容は、↑の基本設定と同様です。
設定した内容は、 <ワークスペース>/.setting/setting.json に保存されます

ホットキー設定

キーボードショートカットの設定は、
OSXでは「Code -> Preference -> Keyboard Shortcuts」、
Windowsでは「File -> Preference -> Keyboard Shortcuts」から設定可能です。

ここでは一例として、タスク一覧のショートカットを追加しています。

// Place your key bindings in this file to overwrite the defaults
[
	// タスク一覧のショートカット
	{ "key": "alt+cmd+t",  "command": "workbench.action.tasks.runTask" }
]

下記にデフォルトのキー設定が記述されています。
便利な機能が記述されているので、英語ですが一度目を通しておくことをおすすめします。

タスク設定

ワークスペース内で有効なタスクの設定が可能です。

cmd+shift+Pを押し、表示されたフォームに tasks と入力すると、
タスク関連で実行可能なコマンドが表示されます。
ここで Run Task を選択すると、実行可能なタスク一覧が表示されます
(先ほどのホットキー設定を行っていれば、cmd+opt+Tで直接タスク一覧を表示することが可能です)

デフォルトでは、tsc(TypeScriptのコンパイル実行)のみ表示されます。
(ワークスペース内でgulpが設定されていれば自動でgulpのタスクが認識されると思います)

タスクの登録は、
cmd+shift+Pを押し、表示されたフォームに tasks と入力し、
Configure Task Runner を選択すると設定ファイルを編集することが可能です

下記では一例としてgoimportsを実行するタスクを追加しています。

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

	// always=必ず表示 silent=エラー時のみ表示?(goimportsでは必ず表示される) never=表示しない
	"showOutput": "silent",
	
	"windows": {
		"command": "goimports"
	},
	
	// 上書きオプションと編集中のファイルを引数に渡す
	"args": ["-w", "${file}"]
}

↑では"isBuildCommand": trueにしているため、ビルドを実行すると、goimportsが実行されます。
cmd+shift+Bを押すビルドが実行されます。Outputペインが表示され、現在表示中のファイルの自動整形が行われるはずです。
(シンタックスエラーがある場合は、Output内に表示され、goimportsの実行に失敗します)

また、タスクのcommandの複数登録はまだできないようです。

サブタスクの登録は引数を変えることが出来るだけなので、
go testgo lintは同時に登録できますが、
go testgoimportsのように、コマンド自体が変わる場合は、
gulpのような外部のタスクランナーを使わないとあかんです。

43
43
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
43
43

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?