Make relative line number available on leetcode
当前为
// ==UserScript==
// @name Leetcode relative line number
// @namespace http://tampermonkey.net/
// @version 0.1
// @description Make relative line number available on leetcode
// @author You
// @match https://leetcode.com/problems/*
// @icon https://www.google.com/s2/favicons?domain=leetcode.com
// @grant none
// ==/UserScript==
(function() {
'use strict';
// Your code here...
function setRelativeLineNumber() {
let activeLineHTML = document.querySelector("div.CodeMirror-activeline > div > div").innerHTML;
let activeLineNumber = 0;
if (activeLineHTML != null && activeLineHTML !== undefined) {
activeLineNumber = parseInt(activeLineHTML.match("[0-9]+")[0]);
}
let allLines = document.querySelectorAll("div.CodeMirror-linenumber");
console.log(activeLineNumber);
allLines.forEach(line => {
if (!line.hasAttribute("natural-line")) {
line.setAttribute("natural-line", parseInt(line.innerHTML));
}
line.innerHTML = Math.abs(line.getAttribute("natural-line") - activeLineNumber).toString();
if (line.innerHTML == "0") {
line.innerHTML = "<b>" + activeLineNumber.toString() + "</b>";
}
});
};
setInterval(setRelativeLineNumber, 300);
document.addEventListener('click', setRelativeLineNumber);
// const observer = new MutationObserver(() => console.log("changed"));
// const cursor = document.querySelector("div.CodeMirror-cursor");
// observer.observe(cursor, { attributes: true, attributeFilter: ["style"] });
})();