add `git clone` automatically when copying ssh repo link

a simple script to `add git clone` prefix when copying ssh repo link

Verzia zo dňa 30.11.2023. Pozri najnovšiu verziu.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, Greasemonkey alebo Violentmonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, % alebo Violentmonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, % alebo Violentmonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey alebo Userscripts.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie, ako napríklad Tampermonkey.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie správcu používateľských skriptov.

(Už mám správcu používateľských skriptov, nechajte ma ho nainštalovať!)

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

(Už mám správcu používateľských štýlov, nechajte ma ho nainštalovať!)

// ==UserScript==
// @name            add `git clone` automatically when copying ssh repo link
// @description     a simple script to `add git clone` prefix when copying ssh repo link
// @update          2023/11/30 09:50:00
// @namespace       add-git-clone
// @match           *://*/*
// @grant           none
// @version         1.0
// @author          Viki <[email protected]>
// @feedback-url    https://github.com/vikiboss/add-git-clone/issues
// @github          https://github.com/vikiboss/add-git-clone
// @license         MIT
// ==/UserScript==


(function() {
    'use strict';
  
    function shouldPrefix(text) {
        return text.startsWith('git@');
    }

    const originalWriteText = navigator.clipboard.writeText;
    navigator.clipboard.writeText = function(data) {
        if (shouldPrefix(data)) {
            data = 'git clone ' + data;
        }
        return originalWriteText.call(navigator.clipboard, data);
    };

    document.addEventListener('copy', function(e) {
        let selection = window.getSelection().toString();
        if (shouldPrefix(selection)) {
            e.clipboardData.setData('text/plain', 'git clone ' + selection);
            e.preventDefault(); // 阻止默认行为
        }
    });
})();