Replace abandoned Task Runner with status-bar Tasks extension#134
Conversation
| "label": "AtCoder: setup NEW contest", | ||
| "type": "shell", | ||
| "label": "AtCoder: SUBMIT (auto-fill)", | ||
| "type": "atcoder-submit-helper", |
There was a problem hiding this comment.
🚨 [HIGH] AtCoder: SUBMIT (auto-fill) タスクの type が "atcoder-submit-helper" になっています。
このタスクタイプを提供する拡張(atcoder-submit-helper 等)が devcontainer.json や extensions.json に記載されていないため、対応拡張が未インストールの環境ではタスク実行時にエラーになります。hide: true で非表示にしているとはいえ、タスク一覧には表示されるため、依存拡張を devcontainer.json の extensions に追加するか、コメントで依存関係を明記することを推奨します。
| }, | ||
| "group": { | ||
| "kind": "test", | ||
| "kind": "build", |
There was a problem hiding this comment.
AtCoder: OPEN Task Page タスクに "group": { "kind": "build", "isDefault": true } が設定されています。
isDefault: true の build グループタスクは Ctrl+Shift+B(デフォルトのビルドタスク)に割り当てられます。「問題ページをブラウザで開く」という操作がデフォルトビルドタスクになるのは意図しない挙動を引き起こす可能性があります。
元の設計では AtCoder: TEST code が "kind": "test", "isDefault": true になっており、テストがデフォルトテストタスク(Ctrl+Shift+P → Run Test Task)として機能します。OPEN Task Page の group は削除するか、isDefault: false にすることを検討してください。
| "focus": false, | ||
| "panel": "shared", | ||
| "showReuseMessage": false, | ||
| "showReuseMessage": true, |
There was a problem hiding this comment.
ℹ️ [LOW] AtCoder: setup NEW contest タスクで "showReuseMessage": true に変更されています。
am new と am open-first を && で連結した長めのコマンドを実行した後、「Terminal will be reused by tasks, press any key to close it.」というメッセージが表示されます。clear: true と組み合わせると出力が消えてしまうため、ユーザーが結果を確認できない場合があります。clear: false にするか、showReuseMessage: false のままにする方が一貫性があります。
77322c1 to
e274fdb
Compare
| } | ||
| "kind": "build", | ||
| "isDefault": true | ||
| } |
There was a problem hiding this comment.
"group": { "kind": "build", "isDefault": true } が設定されています。これは「問題ページをブラウザで開く」という性質のタスクに build グループのデフォルトを割り当てることになり、Ctrl+Shift+B でビルドタスクを実行しようとすると意図せずブラウザが開く可能性があります。このタスクには group を設定しないか、"isDefault": false にすることを検討してください。
| "kind": "test", | ||
| "isDefault": true | ||
| } | ||
| "problemMatcher": [] |
There was a problem hiding this comment.
ℹ️ [LOW] 「AtCoder: SUBMIT code」タスクから "problemMatcher": [] が削除されています(他のタスクには残っています)。統一性のためにも "problemMatcher": [] を追加しておくことを推奨します。
e274fdb to
2a0a6d0
Compare
|
レビューコメントに対応しました( [HIGH]
|
| } | ||
| "kind": "build", | ||
| "isDefault": true | ||
| } |
There was a problem hiding this comment.
"group": { "kind": "build", "isDefault": true } が設定されています。このタスクはブラウザでページを開くだけの操作であり、build グループのデフォルトとして登録するのは意味的に不自然です。Ctrl+Shift+B(デフォルトビルドタスク実行)を押すとブラウザが開いてしまうため、混乱を招く可能性があります。group 設定を削除するか、"isDefault": false にすることを検討してください。
| "kind": "test", | ||
| "isDefault": true | ||
| } | ||
| "problemMatcher": [] |
There was a problem hiding this comment.
ℹ️ [LOW] 「AtCoder: SUBMIT code」タスクから problemMatcher が削除されています(旧コードには "problemMatcher": [] がありましたが、新コードでは位置が変わり存在しています)。差分を確認すると新コードの49行目に "problemMatcher": [] は残っていますが、念のため確認してください。一方、"group" 設定が SUBMIT タスクから完全に削除されており、これ自体は問題ありませんが意図的な変更であることを明記しておくと良いでしょう。
| // ステータスバーのタスク(actboy168.tasks)の表示制御 | ||
| // limit: ボタンとして直接表示する個数(tasks.json 定義順の先頭から)。 | ||
| // 1 = 先頭の「テスト」だけボタン表示、残りは下のメニューに集約。 | ||
| "tasks.statusbar.limit": 1, |
There was a problem hiding this comment.
ℹ️ [LOW] tasks.statusbar.limit および tasks.statusbar.select.label は actboy168.tasks 拡張固有の設定です。この settings.json はリポジトリ全体に適用されるワークスペース設定であるため、当該拡張がインストールされていない環境では単に無視されますが、設定ファイルのコメントに「actboy168.tasks が必要」である旨を明記しておくと、将来の保守担当者が混乱しにくくなります。現状のコメントでも概ね伝わりますが、拡張がない場合の挙動(無効化される)についても一言添えると親切です。
The Task Runner extension (sanaajani.taskrunnercode) has been unmaintained since 2018 and was listed only in devcontainer.json with no recommendation fallback, so a missed first-run install left it absent for many users with no recovery path. Switch to actboy168.tasks (actively maintained), which surfaces tasks as clickable status-bar items so contests can be run from the UI instead of keyboard shortcuts: - devcontainer.json: swap the extension id - .vscode/extensions.json: also recommend it, so a missed container install is recovered via the 'install recommended extensions' prompt - .vscode/tasks.json: add options.statusbar labels/icons and order tasks so TEST comes first - .vscode/settings.json: tasks.statusbar.limit=1 so only TEST shows as a button and the rest collapse into a single 'AtCoder' menu (提出 / 問題ページ / テスト(誤差) / 新規コンテスト) All four files validated as JSONC.
2a0a6d0 to
42d0e1d
Compare
|
追加レビュー(再実行ぶんの重複含む)に対応しました( [MEDIUM ×3]
|
| "kind": "test", | ||
| "isDefault": true | ||
| } | ||
| "problemMatcher": [] |
There was a problem hiding this comment.
AtCoder: SUBMIT code タスクに "problemMatcher": [] が設定されていません(旧コードにはありましたが、新コードでは削除されています)。他のタスクにはすべて problemMatcher が明示されているため、意図的な省略か確認が必要です。problemMatcher が未設定の場合、VS Code はデフォルトの問題マッチャーを使用しようとする場合があり、不要な警告が出る可能性があります。
| "clear": true | ||
| }, | ||
| // 既定ビルドタスク(Ctrl+Shift+B / Cmd+Shift+B)で問題ページを開く、という | ||
| // 意図的な割り当て(CLAUDE.md に記載の運用)。変更しないこと。 |
There was a problem hiding this comment.
ℹ️ [LOW] コメントに「既定ビルドタスク(Ctrl+Shift+B / Cmd+Shift+B)で問題ページを開く」と記載されていますが、AtCoder: TEST code にも "group": { "kind": "test", "isDefault": true } が設定されており、AtCoder: OPEN Task Page には "kind": "build", "isDefault": true が設定されています。
VS Code の仕様上、Ctrl+Shift+B はデフォルトビルドタスク(kind: build, isDefault: true)を実行するため、現状の設定は意図通りです。ただし、コメントに「変更しないこと」と強調されているにもかかわらず、テストタスクが isDefault: true のまま残っている点は混乱を招く可能性があります。kind: test の isDefault は Ctrl+Shift+T(Run Test Task)に対応するため、機能的には問題ありませんが、コメントと合わせて「ビルドのデフォルトは問題ページ、テストのデフォルトはテストコード」と明記しておくと誤解を防げます。
| @@ -0,0 +1,10 @@ | |||
| { | |||
There was a problem hiding this comment.
ℹ️ [LOW] このファイルはワークスペース全体の .vscode/settings.json として新規追加されています。tasks.statusbar.limit や tasks.statusbar.select.label は actboy168.tasks 拡張固有の設定であり、コメントにも「未インストール環境では無視される」と記載されています。
ただし、将来的にプロジェクトメンバーが他の VS Code 設定(例: エディタのフォーマット設定など)をこのファイルに追加する際、このファイルの存在に気づかず別途 settings.json を作成しようとする可能性があります。ファイルの冒頭に「このファイルはワークスペース設定ファイルです。拡張固有の設定以外もここに追記してください」といった案内コメントを追加しておくと親切です。
追加レビュー(
|
背景・問題
VS Code 初回起動時に Task Runner 拡張(
sanaajani.taskrunnercode)が入っていないユーザが多数いた。調査の結果:devcontainer.jsonにしか記載がなく.vscode/extensions.jsonの推奨にも無いため、初回コンテナ作成時の一発インストールを取りこぼすと回復経路が無く、欠けたままになる(言語拡張は推奨にあるため再勧奨で回復する)。変更内容
現役メンテされている
actboy168.tasksに置き換え、タスクをステータスバーからクリック実行できるようにする(キーボードショートカット不要):devcontainer.json: 拡張 ID をsanaajani.taskrunnercode→actboy168.tasksに差し替え.vscode/extensions.json:actboy168.tasksを推奨にも追加(初回取りこぼし時の回復経路を確保).vscode/tasks.json: 各タスクにoptions.statusbar(アイコン+日本語ラベル)を付与。内部用SUBMIT (auto-fill)は非表示。タスク定義順をテスト → 提出 → 問題ページ → テスト(誤差) → 新規コンテストに並べ替え.vscode/settings.json(新規):tasks.statusbar.limit: 1で先頭の テストだけをボタン表示し、残りは 1 つの☑ AtCoderメニュー(クリックでクイックピック)に集約UI イメージ
ステータスバー:
🧪 テストボタン +☑ AtCoderメニューメニューを開くと
提出 / 問題ページ / テスト(誤差) / 新規コンテストの順で表示。品質確認
limit=1を整合確認補足
actboy168.tasksは Open VSX にも公開されているため、将来 VS Code フォークへ対応する場合も移植性が高い。