Overview Version History Q & A Rating & Review
Atcoder Utility
VS Code上でのAtCoderのコンテスト参加と学習をサポートする拡張機能です。
主な機能
1. ファイルエクスプローラーの強化
正解確率の可視化: あなたのAtCoderレーティングと問題のDifficultyに基づき、問題フォルダに正解確率の目安を絵文字とパーセンテージでバッジ表示します。
🔵 (75%以上): 自信を持って解ける問題
🟡 (40%以上): ちょうど良い練習になる問題
🔴 (40%未満): 挑戦的な問題
AC状況の表示: AtCoder Problemsの提出履歴と連携し、AC済みの問題に ✅ マークを表示します。
コンテスト情報の表示: コンテストフォルダにマウスをホバーすると、正式名称や開催日時をツールチップで表示します。
2. サイドバー・ダッシュボード
アクティビティバーの専用アイコン Ⓐ をクリックすると、あなたのAtCoderステータスが一覧表示されます。
My Status: 現在のレーティング、最高レーティング、ランク表示、総AC数、連続AC記録、色別のAC数。
Recommended Problems: あなたの現在の実力に合わせた、次に解くべきおすすめの問題リスト(Difficultyに基づき計算)。
Current Contest: 現在開いているコンテストの問題一覧とAC状況。
Bookmarks: 問題フォルダを右クリックして、後で復習したい問題をブックマーク・管理。
AC Activity: サイドバーの「AC Activity」ビューから、1週間、1ヶ月、3ヶ月、6ヶ月ごとのAC数をグラフとヒートマップで表示。
Custom Tests: 独自の入力・出力ケースを作成し、test
フォルダに my_test_N.in
/ .out
として保存。
Problem Timer: 問題を解く時間を測定するタイマー。
Contest Actions:
コンテストの準備(acc new
相当の操作を自動化)。
提出の準備(ファイルをバンドルし、プログラムをコピー、提出リンクを開くことで、Ctrl+Vと提出ボタンのみで提出可能に)。
入力予測スニペットの生成。
リセット(現在開いているファイルをtemplateの内容にリセットします)。
Random Input: 制約を設定すると自動でテストケースを作成。クエリの入力はStruct Arrayで設定可能。
Fuzzer: Random Inputの設定を保存することで、愚直解とメインの解法で出力が変わる入力例を発見。
Virtual Contest: 時間、コンテスト種類、問題の絞り込み、フィルタを設定してバーチャルコンテストを実施。ステータスバーに残り時間が表示され、終了時間が近づくと通知。
3. ステータスバー連携
常時レート表示: 👤 ユーザー名 (⚪ 1985)
のように、現在のレーティングを常にステータスバーに表示。
自動テスト: ファイルをセーブ(Ctrl+S)したときに下のバーにテスト結果を表示。カーソルを合わせると具体的な結果を表示。
デフォルトではC++ ・Python ・Java ・Rust ・C ・C# ・Ruby ・Go のみ 対応。
設定でoj tの実行結果を出力することも可能(動作が不安定になる可能性あり)。
4. 問題文表示
ブラウザを使わずに問題文を表示。設定で常に表示するかを選択可能。
アクセスを減らすためHTMLファイルが生成されます(不要であれば非表示を推奨)。
5. 入力予測
問題文から入力を予測(現在はC++のみ)。Contest Actionsからボタンを押すと、クリップボードに入力がコピーされます。
ルールベースで動作 し、ABCやARCのコンテスト中に使用可能。
特殊な入力やクエリ問題では動作しない ことがあります。
6. 自動折りたたみ
設定したファイル名(例: Main.cpp
)を開いたときに、設定した行数を自動で折りたたみ。
使い方
1. インストール
Visual Studio Marketplaceから「Atcoder-Utility」をインストールしてください。
Atcoder-Utility - Visual Studio Marketplace
2. 初期設定
VS Codeの設定 (settings.json
) を開きます。 (Ctrl + ,
-> 右上のファイルアイコン)
必須設定 (F1 -> 基本設定: 設定(UI)からでも変更可能)
"atcoder-utility.userId": "your_atcoder_id",
"atcoder-utility.aclPath": "your_atcoder_library_path",
"atcoder-utility.templateFilePath": "your_template_file_path"
userId
: レートやAC確率計算に使用します。
aclPath
: C++などのコンパイル時に使用します。
templateFilePath
: コンテストセットアップ時に自動生成されるファイル(.cppや.pyなど)のパスを設定します。
AtCoder Session Cookieの設定:
F1 -> AtCoder-Utility: Set AtCoder Session Cookie
を実行し、AtCoderのセッションクッキーを設定します。
取得方法 (Chromeの場合): F12で開発者ツールを開き、「Application」タブ -> 「Storage」-> 「Cookies」-> https://atcoder.jp
を選択。「REVEL_SESSION」の値をコピーし、VS Code上に貼り付けます。
この値はSecretStorageで管理 され、スクレイピングに利用されます。
基本設定 (F1 -> 基本設定: 設定(UI)からでも変更可能)
"atcoder-utility.autoTestEngine": "custom",
"atcoder-utility.bundleEngine": "custom",
"atcoder-utility.languageSettings": {"..."}
autoTestEngine
: 自動テストで使用するエンジン(custom
は拡張機能内蔵、oj
はonline-judge-tools)。
bundleEngine
: バンドル&クリップボードにコピーで使用するエンジン(autoTestEngine
と同様)。
languageSettings
: 自動テストで使用するコンパイルコマンド(autoTestEngine
でoj
を設定している際は不要。C++、Python、Java、Rust、C、C#、Ruby、Goはすでに設定済みで変更も可能)。
C++のみの設定
"atcoder-utility.snippet.arrayStyle": "vector",
"atcoder-utility.snippet.integerType": "int",
"atcoder-utility.snippet.queryStyle": "individual_vectors"
snippet.arrayStyle
: 入力スニペット生成で使用する配列の種類を選択(vector
を推奨)。
snippet.integerType
: 入力スニペット生成で使用する整数型の種類を選択(int
かlong long
)。
snippet.queryStyle
: 変更は推奨しません(デフォルトで動作します)。
依存関係 (オプション)
この拡張機能は、以下のツールがなくてもすべての機能が動作します。
一部機能はこれらのツールと連携して動作させることも可能です。
atcoder-cli (acc): コンテストフォルダの作成に使用。
online-judge-tools (oj): テストの実行・ファイルのバンドルに使用。
注意事項
本拡張機能が使用するAPIは非公式なものであり、予告なく仕様が変更され、機能が動作しなくなる可能性があります。
解ける確率はあくまで推定値であり、実際の正答率を保証するものではありません。
AtCoder Problemsのdifficultyを参考にしていますが、負の値になる場合があります。
入力予測機能は間違ったコードを生成することがあります。
現在確認されている入力スニペットが動作しない例: 複雑な配列入力(ジャグ配列など)。
貢献
バグ報告、機能要望、改善提案などがありましたら、GitHubのIssueにご連絡ください。
ライセンス
This extension is licensed under the MIT License.
この拡張機能はMITライセンスであり、商用利用も可能です。
いかなる場合においても、著作者または著作権者は、本拡張機能の使用、その他の取り扱いに起因または関連して生じるいかなる請求、損害、その他の責任についても責任を負わないものとします。