VSCodeに以前から欲しかった機能が入ったので紹介したいと思います。
今回紹介する機能は https://code.visualstudio.com/updates/v1_29 に書かれた下記の機能についてです。
Tasks
Clear terminal before executing taskA new property clear was added to the task presentation configuration. Set the clear property to true to clear the terminal before the task is run.
以前の状況
次のような操作でRustのコードをビルドしている時のことです。
- 拡張機能 Rust (rls) を入れておく
- 拡張子.rsのファイルを開く
- メニューの
"ターミナル" > "既定のビルド タスクの構成..."
にて.vscode/tasks.json
を生成 -
Ctrl + Shift + B
でビルド
ここで、連続コンパイルすると・・・
このように、ターミナルが再利用されていました。
コンパイルエラーが無ければ問題はありませんが、エラーがあると非常に見づらくなります。
ね?見づらいでしょう?
前回のエラーと今回のエラーがごちゃごちゃですよ。
しかし、この動作は .vscode/tasks.json
で変更することができます。
下記のように presentation
プロパティを追加します。
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"type": "cargo",
"label": "cargo build",
"command": "cargo",
"args": [
"build"
],
"problemMatcher": [
"$rustc"
],
"group": {
"kind": "build",
"isDefault": true
},
// ======= ここから追加 =======
"presentation": {
"panel": "new",
}
// ======= ここまで追加 =======
}
]
}
"panel": "new"
と指定することにより、タスクを実行する度に新しいターミナルが作成されます。
このように、何度ビルドしても表示されるのは最新のエラーだけ!とても見やすい。
ですが、別の問題もあります。ターミナルが無限に増えてしまうのです。
新しい機能を使う
2018年11月(version 1.29)で追加された機能を使うとこの問題は解決します。 .vscode/tasks.json
を次のように書き換えます。
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"type": "cargo",
"label": "cargo build",
"command": "cargo",
"args": [
"build"
],
"problemMatcher": [
"$rustc"
],
"group": {
"kind": "build",
"isDefault": true
},
// ======= ここから追加 =======
"presentation": {
"panel": "dedicated",
"clear": true
}
// ======= ここまで追加 =======
}
]
}
"panel": "dedicated"
はこのタスク用にターミナルを新規作成し、使いまわすことを示します。
また、"clear": true
は version 1.29 からの新機能で、タスクの実行時にターミナルをクリアすることを示します。
エラーが見やすい!しかもターミナルが無限に増えることもなくなりました!