diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 84b1721..8deffa0 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -53,7 +53,7 @@ // Add the IDs of extensions you want installed when the container is created. "extensions": [ // General utilities - "sanaajani.taskrunnercode", // Run tasks from Explorer pane + "actboy168.tasks", // ステータスバーからタスクを実行(旧 sanaajani.taskrunnercode の後継) "visualstudioexptteam.vscodeintellicode", // AI-assisted development (Microsoft) "yzhang.markdown-all-in-one", // Markdown "zainchen.json", // Json diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 174fe63..1b6e83a 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,5 +1,7 @@ { "recommendations": [ + "actboy168.tasks", // ステータスバーからタスクを実行(メニュー的にクリックで実行) + "vscjava.vscode-java-pack", // Extension Pack for Java (Microsoft) "ms-python.python", // Python IntelliSense (Microsoft) diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..16a9931 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,10 @@ +{ + // 以下は拡張 actboy168.tasks 固有の設定。 + // この拡張が未インストールの環境では単に無視される(エラーにはならない)。 + // ステータスバーのタスク表示制御: + // limit: ボタンとして直接表示する個数(tasks.json 定義順の先頭から)。 + // 1 = 先頭の「テスト」だけボタン表示、残りは下のメニューに集約。 + "tasks.statusbar.limit": 1, + // 集約メニューのラベル(クリックでタスク一覧のクイックピックが開く) + "tasks.statusbar.select.label": "$(checklist) AtCoder" +} diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 24355f5..3aaf4df 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -1,92 +1,113 @@ { - // See https://go.microsoft.com/fwlink/?LinkId=733558 - // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { - "label": "AtCoder: OPEN Task Page", + "label": "AtCoder: TEST code", "type": "shell", "options": { - "cwd": "${fileDirname}" + "cwd": "${fileDirname}", + "statusbar": { + "label": "$(beaker) テスト", + "detail": "開いているファイルをテスト (am t)" + } }, - "command": "am web", + "command": "am t ${fileExtname}", "problemMatcher": [], "presentation": { "echo": false, - "reveal": "never", + "reveal": "always", "focus": false, "panel": "shared", "showReuseMessage": false, "clear": true }, "group": { - "kind": "build", + "kind": "test", "isDefault": true } }, { - "label": "AtCoder: TEST code", + "label": "AtCoder: SUBMIT code", "type": "shell", "options": { - "cwd": "${fileDirname}" + "cwd": "${fileDirname}", + "statusbar": { + "label": "$(cloud-upload) 提出", + "detail": "開いているファイルを提出 (am s)", + "color": "#e2c08d" + } }, - "command": "am t ${fileExtname}", - "problemMatcher": [], + "command": "am s ${fileBasename}", "presentation": { "echo": false, "reveal": "always", - "focus": false, + "focus": true, "panel": "shared", "showReuseMessage": false, "clear": true }, - "group": { - "kind": "test", - "isDefault": true - } + "problemMatcher": [] }, { - "label": "AtCoder: TEST(float) code", + "label": "AtCoder: OPEN Task Page", "type": "shell", "options": { - "cwd": "${fileDirname}" + "cwd": "${fileDirname}", + "statusbar": { + "label": "$(globe) 問題ページ", + "detail": "問題ページをブラウザで開く (am web)" + } }, - "command": "am tf ${fileExtname}", + "command": "am web", "problemMatcher": [], "presentation": { "echo": false, - "reveal": "always", + "reveal": "never", "focus": false, "panel": "shared", "showReuseMessage": false, "clear": true }, + // 既定ビルドタスク(Ctrl+Shift+B / Cmd+Shift+B)で問題ページを開く、という + // 意図的な割り当て(CLAUDE.md に記載の運用)。変更しないこと。 "group": { - "kind": "test" - } + "kind": "build", + "isDefault": true + } }, { - "label": "AtCoder: SUBMIT code", + "label": "AtCoder: TEST(float) code", "type": "shell", "options": { - "cwd": "${fileDirname}" + "cwd": "${fileDirname}", + "statusbar": { + "label": "$(beaker) テスト(誤差)", + "detail": "浮動小数点誤差を許容してテスト (am tf)" + } }, - "command": "am s ${fileBasename}", + "command": "am tf ${fileExtname}", + "problemMatcher": [], "presentation": { "echo": false, "reveal": "always", - "focus": true, + "focus": false, "panel": "shared", "showReuseMessage": false, "clear": true }, - "problemMatcher": [] + "group": { + "kind": "test" + } }, { "label": "AtCoder: setup NEW contest", "type": "shell", "options": { - "cwd": "${env:CONTEST_DIR}" + "cwd": "${env:CONTEST_DIR}", + "statusbar": { + "label": "$(new-folder) 新規コンテスト", + "detail": "新しいコンテストをセットアップ (am new)" + } }, "command": "am new ${input:contest_id} && am open-first ${input:contest_id}", "presentation": { @@ -100,7 +121,7 @@ "problemMatcher": [] } ], - "inputs":[ + "inputs": [ { "id": "contest_id", "description": "参加するコンテスト名",