GitHub Remove Diff Signs

A userscript that removes the "+" and "-" from code diffs

目前为 2018-07-31 提交的版本。查看 最新版本

// ==UserScript==
// @name        GitHub Remove Diff Signs
// @version     1.2.4
// @description A userscript that removes the "+" and "-" from code diffs
// @license     MIT
// @author      Rob Garrison
// @namespace   https://github.com/Mottie
// @include     https://github.com/*
// @run-at      document-idle
// @grant       GM_addStyle
// @require     https://gf.qytechs.cn/scripts/28721-mutations/code/mutations.js?version=597950
// @icon        https://assets-cdn.github.com/pinned-octocat.svg
// ==/UserScript==
(() => {
	"use strict";

	GM_addStyle(`.diff-table .blob-code-inner:before {
		user-select: none;
		content: "\\a0";
	}`);

	function processDiff() {
		if (document.querySelector(".highlight")) {
			let indx = 0,
				els = document.querySelectorAll(`span.blob-code-inner:not([data-ghrds])`),
				len = els.length;

			// loop with delay to allow user interaction
			function loop() {
				let el, txt, firstNode,
					// max number of DOM insertions per loop
					max = 0;
				while ( max < 50 && indx < len ) {
					if (indx >= len) {
						return;
					}
					el = els[indx];
					if (!el.getAttribute("data-ghrds")) {
						firstNode = el.childNodes[0];
						txt = firstNode.textContent || "";
						// remove the leading +, - or first space
						// the github-code-show-whitespace.user.js script is applied
						firstNode.textContent = txt.slice(1);
						el.setAttribute("data-ghrds", true);
					}
					max++;
					indx++;
				}
				if (indx < len) {
					setTimeout(() => {
						loop();
					}, 200);
				}
			}
			loop();
		}
	}

	// Observe GitHub dynamic content
	document.addEventListener("ghmo:container", init);
	document.addEventListener("ghmo:diff", processDiff);

	function init() {
		if (document.querySelector("#files.diff-view")) {
			processDiff();
		}
	}

	init();

})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址