-
-
Notifications
You must be signed in to change notification settings - Fork 166
/
github-issue-highlighter.user.js
63 lines (57 loc) · 1.93 KB
/
github-issue-highlighter.user.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
// ==UserScript==
// @name GitHub Issue Highlighter
// @version 1.1.1
// @description A userscript that highlights the linked-to comment
// @license MIT
// @author Rob Garrison
// @namespace https://github.com/Mottie
// @match https://github.com/*
// @run-at document-idle
// @grant GM.addStyle
// @grant GM_addStyle
// @require https://greasemonkey.github.io/gm4-polyfill/gm4-polyfill.js?updated=20180103
// @icon https://github.githubassets.com/pinned-octocat.svg
// @updateURL https://raw.githubusercontent.com/Mottie/Github-userscripts/master/github-issue-highlighter.user.js
// @downloadURL https://raw.githubusercontent.com/Mottie/Github-userscripts/master/github-issue-highlighter.user.js
// @supportURL https://github.com/Mottie/GitHub-userscripts/issues
// ==/UserScript==
(() => {
"use strict";
// !important needed to override styles added by
// https://github.com/StylishThemes/GitHub-Dark
GM.addStyle(`
.timeline-comment.selected,
.timeline-comment.current-user.selected {
border-color: #4183C4 !important;
}
.timeline-comment.selected .comment:before,
.timeline-comment.current-user.selected:before {
border-right-color: #4183C4 !important;
}
`);
const regex = /^#issue(comment)?-\d+/;
function init(event) {
if (document.querySelector("#discussion_bucket")) {
let 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 (regex.test(hash)) {
target = document.querySelector(hash.match(regex)[0]);
if (target) {
target.querySelector(".timeline-comment").classList.add("selected");
}
}
}
}
window.addEventListener("hashchange", init);
document.addEventListener("pjax:end", init);
init();
})();