Posted at

VisualStudioCodeによるNim開発環境

More than 1 year has passed since last update.


概要

こちらの記事に触発されて、VSCodeによるNimの開発環境構築についてのメモとなります。

環境はLinux(fedora24)で行っています。


作業の流れ


  • VSCodeの起動

  • 拡張機能のインストール

  • ワークスペースの設定

  • タスクの設定

  • ビルド&実行

  • 自動保存によるビルド&実行


VSCodeの起動

この時点で、nimコマンドへのパスが通っていることを確認してください。

Nimの開発を行いたいフォルダを作成し、VSCodeを起動します。

$ mkdir nim-work

$ code nim-work


拡張機能のインストール

VSCode上の、拡張機能インストール(ctrl+shift+x)を表示し、”nim”で検索を行うと、"Nim 0.5.12"という拡張機能が表示されるので、"インストール"を選択します。約1分ほどでインストールが完了します。


ワークスペースの設定

VSCodeを起動したときに指定したフォルダが、ワークスペースとなります。

メニューから、”ファイル/基本設定/ワークスペース設定”を選択します。

すると、ワークスペースのフォルダ配下に、.vscodeというフォルダが作成され、エディタには2ペイン表示でファイルが表示されます。


  • 左側に"規定の設定"が表示されたテキスト

  • 右側に.vscodeに作成された"setting.json"

左側の"規定の設定"に、”// Nim configuration”とコメントされたブロックがありますのでこれをコピーし、settings.jsonにペーストします。


.vscode/settings.json

// 既定の設定とユーザー設定を上書きするには、このファイル内に設定を挿入します

{
// Nim project file, if empty use current selected.
"nim.project": [],

// Optional test project.
"nim.test-project": "",

// Execute build task from tasks.json file on save.
"nim.buildOnSave": true,

// Nim build command (c, cpp, doc, etc)
"nim.buildCommand": "c",

// Check code by using 'nim check' on save.
"nim.lintOnSave": true,

// Enable verbose logging of nimsuggest to use profile directory.
"nim.logNimsuggest": false
}


nim.buildOnSaveをtrueに設定しています。


タスクの設定

NIMファイルのコンパイルを呼び出す設定を行います。

.vscodeフォルダに、以下の内容でtasks.jsonファイルを作成します。


.vscode/tasks.json

{

// なんのバージョンかちょっと不明
"version": "0.1.0",
// nimコマンドへのパスを指定します
"command": "nim",
// コンパイル時の引数を指定します。編集中のファイルパスを指定するには${file}を指定します
"args": [
"c",
"-r",
"${file}"
],
"options": {
"cwd": "${workspaceRoot}"
},
"isShellCommand": true
}


ビルド&実行

nimファイルを作成&編集し、Ctrl+Shift+Bでビルド&実行し、結果がVSCode内のターミナルに表示されます。


自動保存によるビルド&実行

若干うざく感じる時もありますが、NIMファイルをある程度編集したところで自動保存し、ついでにビルド&実行してくれる機能があります。この機能を有効にするには、2箇所の設定が必要です。


  • .vscode/settings.json の nim.buildOnSave を true に設定する

  • "ファイル/自動保存" メニューにチェックを入れる


まとめ

Nimを手軽に実験できる環境がVSCodeでも実現できました。

ステップ実行したいという方は、kdevelopがおすすめです。

ご参考 → http://qiita.com/6in/items/379bc1ba18241ddf5404