Github - Open with VSCode

Fixes "Open with Visual Studio" button on GitHub to open with VSCode instead of Visual Studio

2023-10-21 기준 버전입니다. 최신 버전을 확인하세요.

이 스크립트를 설치하려면 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         Github - Open with VSCode
// @namespace    V@no
// @description  Fixes "Open with Visual Studio" button on GitHub to open with VSCode instead of Visual Studio
// @match        https://github.com/*
// @version      23.10.21-004817
// @license      MIT
// @run-at       document-end
// @grant        none
// ==/UserScript==

(() =>
{
	"use strict";
	const fixLink = () =>
	{ 
		const elLink = document.querySelector('[data-open-app="visual-studio"]');
		if (!elLink)
			return true;

		elLink.dataset.openApp = "vscode"; // display "Launching Visual Studio Code..." message
		elLink.innerHTML += " Code";
		const cloneURL = (document.querySelector(".input-group > .form-control") || {}).value;
		if (cloneURL)
			elLink.href = "vscode://vscode.git/clone?url=" + encodeURI(cloneURL);
		else
			elLink.href = elLink.href.replace("git-client://", "vscode://vscode.git/");

		//we don't need keep observing DOM changes
		observer.disconnect();
	};

	const observer = new MutationObserver(fixLink);
	if (fixLink())
		observer.observe(document, {childList: true, subtree: true});
})();