AtCoder CustomTest Run Shortcut

You can run by using Ctrl + Enter in Custom Test of AtCoder

スクリプトをインストールするには、Tampermonkey, GreasemonkeyViolentmonkey のような拡張機能のインストールが必要です。

You will need to install an extension such as Tampermonkey to install this script.

スクリプトをインストールするには、TampermonkeyViolentmonkey のような拡張機能のインストールが必要です。

スクリプトをインストールするには、TampermonkeyUserscripts のような拡張機能のインストールが必要です。

このスクリプトをインストールするには、Tampermonkeyなどの拡張機能をインストールする必要があります。

このスクリプトをインストールするには、ユーザースクリプト管理ツールの拡張機能をインストールする必要があります。

(ユーザースクリプト管理ツールは設定済みなのでインストール!)

このスタイルをインストールするには、Stylusなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus などの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus tなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

(ユーザースタイル管理ツールは設定済みなのでインストール!)

作者のサイトでサポートを受ける。または、このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください
// ==UserScript==
// @name           AtCoder CustomTest Run Shortcut
// @name:ja        AtCoderカスタムテスト実行ショートカット
// @namespace      https://greasyfork.org/ja/users/570127
// @version        2025.12.25.0
// @description    You can run by using Ctrl + Enter in Custom Test of AtCoder
// @description:ja AtCoderのコードテストにおいてCtrl+Enterで実行ができるようになります。Macは、⌘+Enterも。
// @author         universato
// @grant          none
// @match          https://atcoder.jp/contests/*/custom_test
// @match          https://atcoder.jp/contests/*/custom_test*
// @license        MIT
// @supportURL     https://twitter.com/universato
// ==/UserScript==

console.log(`[UserScript] AtCoder CustomTest Run Shortcut`);

(function() {
    let runButton;

    const buttons = document.querySelectorAll('a.btn.btn-primary');
    for(let button of buttons){
        if(button.innerText.match(/^(Run|実行)$/)){
            runButton = button;
            runButton.innerHTML += ' <small>(Ctrl + Enter)</small>';
        }
    }

    document.addEventListener('keydown', function (event) {
        if (event.altKey || event.shiftKey) return;
        if (event.isComposing) return;
        if (event.repeat) return;

        // Mac: control -> ctrlKey, command -> metaKey
        if ((event.ctrlKey || event.metaKey) && event.key === 'Enter'){
            runButton?.click();
        }
    });
})();