GitHub Issue Highlighter

A userscript that highlights the linked-to comment

As of 2016-05-22. See the latest version.

// ==UserScript==
// @name          GitHub Issue Highlighter
// @version       1.0.0
// @description   A userscript that highlights the linked-to comment
// @license       https://creativecommons.org/licenses/by-sa/4.0/
// @namespace     http://github.com/Mottie
// @include       https://github.com/*
// @run-at        document-idle
// @grant         GM_addStyle
// @author        Rob Garrison
// ==/UserScript==
/* global GM_addStyle */
/*jshint unused:true */
(function() {
  "use strict";

  GM_addStyle([
    // !important needed to override styles added by
    // https://github.com/StylishThemes/GitHub-Dark
    ".timeline-comment.selected { border-color: #4183C4 !important; }",
    ".timeline-comment.selected:before { border-right-color: #4183C4 !important; }"
  ].join(""));

  var init = function(event) {
    if (document.querySelector("#discussion_bucket")) {
      var target, indx,
        hash = window.location.hash;
      // remove "selected" class on hashchange
      if (event) {
        target = document.querySelectorAll(".timeline-comment");
        indx = target.length;
        while (indx--) {
          target[indx].classList.remove("selected");
        }
      }
      // add "selected" class
      if (/^#issue(comment)?-\d+/.test(hash)) {
        target = document.querySelector(hash);
        if (target) {
          target.classList.add("selected");
        }
      }
    }
  };

  window.addEventListener("hashchange", init);
  init();

})();