Leetcode relative line number

Make relative line number available on leetcode

  1. // ==UserScript==
  2. // @name Leetcode relative line number
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.2
  5. // @description Make relative line number available on leetcode
  6. // @author You
  7. // @match https://leetcode.com/problems/*
  8. // @icon https://www.google.com/s2/favicons?domain=leetcode.com
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12. (function() {
  13. 'use strict';
  14.  
  15. // Your code here...
  16. const ACTIVE_LINE = "CodeMirror-activeline-gutter"
  17. function setRelativeLineNumber() {
  18. let allLines = Array.from(document.querySelectorAll("div.CodeMirror-linenumber"));
  19. let activeLineIndex = allLines.findIndex(line => line.parentNode.classList.contains(ACTIVE_LINE));
  20. if (allLines[activeLineIndex].innerHTML == ' ') {
  21. return;
  22. }
  23. for (let i = 0; i < allLines.length; i++) {
  24. let line = allLines[i];
  25. line.innerHTML = Math.abs(i - activeLineIndex).toString();
  26. if (line.innerHTML == "0") {
  27. line.innerHTML = " ";
  28. }
  29. }
  30. };
  31. setInterval(setRelativeLineNumber, 300);
  32. document.addEventListener('click', setRelativeLineNumber);
  33.  
  34. })();