15
8

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.

VSCodeのRustコンパイラ出力が2018年11月から見やすくなります(設定の必要あり)

Posted at

VSCodeに以前から欲しかった機能が入ったので紹介したいと思います。

今回紹介する機能は https://code.visualstudio.com/updates/v1_29 に書かれた下記の機能についてです。

Tasks
Clear terminal before executing task

A 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 でビルド

ここで、連続コンパイルすると・・・

image.png

このように、ターミナルが再利用されていました。
コンパイルエラーが無ければ問題はありませんが、エラーがあると非常に見づらくなります。:confused:

image.png

ね?見づらいでしょう?
前回のエラーと今回のエラーがごちゃごちゃですよ。:frowning2:

しかし、この動作は .vscode/tasks.json で変更することができます。
下記のように presentation プロパティを追加します。

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": "new",
            }
            // ======= ここまで追加 =======
        }
    ]
}

"panel": "new" と指定することにより、タスクを実行する度に新しいターミナルが作成されます。

image.png

このように、何度ビルドしても表示されるのは最新のエラーだけ!とても見やすい。:grinning::sparkles:

ですが、別の問題もあります。ターミナルが無限に増えてしまうのです。:sweat_drops:

image.png

新しい機能を使う

2018年11月(version 1.29)で追加された機能を使うとこの問題は解決します。 .vscode/tasks.json を次のように書き換えます。

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 からの新機能で、タスクの実行時にターミナルをクリアすることを示します。

image.png

エラーが見やすい!しかもターミナルが無限に増えることもなくなりました!:sparkles::grinning::sparkles:

15
8
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
15
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?