Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 2 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
{
"recommendations": [
"actboy168.tasks", // ステータスバーからタスクを実行(メニュー的にクリックで実行)

"vscjava.vscode-java-pack", // Extension Pack for Java (Microsoft)

"ms-python.python", // Python IntelliSense (Microsoft)
Expand Down
10 changes: 10 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ℹ️ [LOW] このファイルはワークスペース全体の .vscode/settings.json として新規追加されています。tasks.statusbar.limittasks.statusbar.select.labelactboy168.tasks 拡張固有の設定であり、コメントにも「未インストール環境では無視される」と記載されています。

ただし、将来的にプロジェクトメンバーが他の VS Code 設定(例: エディタのフォーマット設定など)をこのファイルに追加する際、このファイルの存在に気づかず別途 settings.json を作成しようとする可能性があります。ファイルの冒頭に「このファイルはワークスペース設定ファイルです。拡張固有の設定以外もここに追記してください」といった案内コメントを追加しておくと親切です。

// 以下は拡張 actboy168.tasks 固有の設定。
// この拡張が未インストールの環境では単に無視される(エラーにはならない)。
// ステータスバーのタスク表示制御:
// limit: ボタンとして直接表示する個数(tasks.json 定義順の先頭から)。
// 1 = 先頭の「テスト」だけボタン表示、残りは下のメニューに集約。
"tasks.statusbar.limit": 1,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ℹ️ [LOW] tasks.statusbar.limit および tasks.statusbar.select.labelactboy168.tasks 拡張固有の設定です。この settings.json はリポジトリ全体に適用されるワークスペース設定であるため、当該拡張がインストールされていない環境では単に無視されますが、設定ファイルのコメントに「actboy168.tasks が必要」である旨を明記しておくと、将来の保守担当者が混乱しにくくなります。現状のコメントでも概ね伝わりますが、拡張がない場合の挙動(無効化される)についても一言添えると親切です。

// 集約メニューのラベル(クリックでタスク一覧のクイックピックが開く)
"tasks.statusbar.select.label": "$(checklist) AtCoder"
}
79 changes: 50 additions & 29 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -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": []

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ℹ️ [LOW] 「AtCoder: SUBMIT code」タスクから "problemMatcher": [] が削除されています(他のタスクには残っています)。統一性のためにも "problemMatcher": [] を追加しておくことを推奨します。

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ℹ️ [LOW] 「AtCoder: SUBMIT code」タスクから problemMatcher が削除されています(旧コードには "problemMatcher": [] がありましたが、新コードでは位置が変わり存在しています)。差分を確認すると新コードの49行目に "problemMatcher": [] は残っていますが、念のため確認してください。一方、"group" 設定が SUBMIT タスクから完全に削除されており、これ自体は問題ありませんが意図的な変更であることを明記しておくと良いでしょう。

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [MEDIUM] AtCoder: SUBMIT code タスクに "problemMatcher": [] が設定されていません(旧コードにはありましたが、新コードでは削除されています)。他のタスクにはすべて problemMatcher が明示されているため、意図的な省略か確認が必要です。problemMatcher が未設定の場合、VS Code はデフォルトの問題マッチャーを使用しようとする場合があり、不要な警告が出る可能性があります。

},
{
"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 に記載の運用)。変更しないこと。

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ℹ️ [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: testisDefaultCtrl+Shift+T(Run Test Task)に対応するため、機能的には問題ありませんが、コメントと合わせて「ビルドのデフォルトは問題ページ、テストのデフォルトはテストコード」と明記しておくと誤解を防げます。

"group": {
"kind": "test"
}
"kind": "build",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [MEDIUM] AtCoder: OPEN Task Page タスクに "group": { "kind": "build", "isDefault": true } が設定されています。

isDefault: truebuild グループタスクは Ctrl+Shift+B(デフォルトのビルドタスク)に割り当てられます。「問題ページをブラウザで開く」という操作がデフォルトビルドタスクになるのは意図しない挙動を引き起こす可能性があります。

元の設計では AtCoder: TEST code"kind": "test", "isDefault": true になっており、テストがデフォルトテストタスク(Ctrl+Shift+P → Run Test Task)として機能します。OPEN Task Pagegroup は削除するか、isDefault: false にすることを検討してください。

"isDefault": true
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [MEDIUM] 「AtCoder: OPEN Task Page」タスクに "group": { "kind": "build", "isDefault": true } が設定されています。これは「問題ページをブラウザで開く」という性質のタスクに build グループのデフォルトを割り当てることになり、Ctrl+Shift+B でビルドタスクを実行しようとすると意図せずブラウザが開く可能性があります。このタスクには group を設定しないか、"isDefault": false にすることを検討してください。

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [MEDIUM] 「AtCoder: OPEN Task Page」タスクに "group": { "kind": "build", "isDefault": true } が設定されています。このタスクはブラウザでページを開くだけの操作であり、build グループのデフォルトとして登録するのは意味的に不自然です。Ctrl+Shift+B(デフォルトビルドタスク実行)を押すとブラウザが開いてしまうため、混乱を招く可能性があります。group 設定を削除するか、"isDefault": false にすることを検討してください。

},
{
"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": {
Expand All @@ -100,7 +121,7 @@
"problemMatcher": []
}
],
"inputs":[
"inputs": [
{
"id": "contest_id",
"description": "参加するコンテスト名",
Expand Down
Loading