Haskell
VisualStudioCode

VisualStudioCode で Haskell のコードを実行するショートカットを設定する

前提として Stack (Haskellのビルドツール) で管理しているプロジェクトを対象としています。
筆者の環境はMacです。

タスクを作成する

まずはプロジェクトを開き、コマンドパレットからTasks: Run Taskを実行。

ScreenShot 2018-01-09 16.49.21.png

タスクがなければタスクを構成します。

ScreenShot 2018-01-09 16.53.06.png

tasks.json を生成します。

ScreenShot 2018-01-09 16.54.53.png

テンプレートは Others を選択。

ScreenShot 2018-01-09 16.55.12.png

ここまでいくと、次のような.vscode/tasks.jsonが生成されます。

ScreenShot 2018-01-09 17.03.04.png

tasks を次のように変更します。
myappの部分は自分の環境に合わせてください。

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "run",
      "type": "shell",
      "command": "stack build && stack exec myapp"
    }
  ]
}

ショートカットキーを登録する

次に、キーボードショートカットを設定します。
まず、設定ファイルを開きます。

ScreenShot 2018-01-09 17.25.42.png

keybindings.jsonファイルが開かれるので次のような設定を追加する。
"key"は好みのキーを設定します。

    {
        "command": "workbench.action.tasks.runTask",
        "key": "meta+shift+r",
        "args": "run"
    }

設定は以上です。

確認してみる

コードを保存し、設定したショートカットキーを押して確認してみます。

ScreenShot 2018-01-09 17.41.48.png

以上です。
この方法ですとプロジェクトごとにタスクを設定する必要がありますが、 tasks.jsonをいじればHaskellやStackに限らず様々なタスクの実行に応用できるため、慣れておくと便利だと思います。

参考

https://vscode-doc-jp.github.io/docs/userguide/tasks.html