OpenWithVSCode

快速将GitHub项目下载到本地,并支持选择VSCode或VSCodeInsiders

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

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

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name         OpenWithVSCode
// @name:en      OpenWithVSCode
// @version      1.1.4
// @description  快速将GitHub项目下载到本地,并支持选择VSCode或VSCodeInsiders
// @description:en  Quickly download GitHub project to local and choose VSCode or VSCodeInsiders
// @author       hoorn
// @icon         https://code.visualstudio.com/favicon.ico
// @license      MIT
// @compatible   chrome Latest
// @compatible   firefox Latest
// @compatible   edge Latest
// @noframes
// @grant        window.onurlchange
// @match        https://github.com/*
// @namespace https://greasyfork.org/users/1276388
// ==/UserScript==

(() => {
    "use strict";

    const actions = document.querySelector('.pagehead-actions');
    if (!actions || document.getElementById('openwithvscode-button')) return;

    actions.insertAdjacentHTML('afterBegin', `
        <li>
            <div class="BtnGroup">
                <a id="openwithvscode-button" class="btn btn-sm BtnGroup-item">OpenVSCode</a>
                <a id="openwithvscodeinsiders-button" class="btn btn-sm BtnGroup-item">OpenInsiders</a>
            </div>
        </li>`);

    const projectUrl = window.location.href + ".git";

    document.getElementById('openwithvscode-button').addEventListener('click', e => {
        e.preventDefault();
        window.location.href = `vscode://vscode.git/clone?url=${projectUrl}`;
    });

    document.getElementById('openwithvscodeinsiders-button').addEventListener('click', e => {
        e.preventDefault();
        window.location.href = `vscode-insiders://vscode.git/clone?url=${projectUrl}`;
    });

})();