1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- /* eslint-disable */
- var jumpToCode = (function init() {
- // Classes of code we would like to highlight in the file view
- var missingCoverageClasses = [".cbranch-no", ".cstat-no", ".fstat-no"];
- // Elements to highlight in the file listing view
- var fileListingElements = ["td.pct.low"];
- // We don't want to select elements that are direct descendants of another match
- var notSelector = ":not(" + missingCoverageClasses.join("):not(") + ") > "; // becomes `:not(a):not(b) > `
- // Selecter that finds elements on the page to which we can jump
- var selector =
- fileListingElements.join(", ") +
- ", " +
- notSelector +
- missingCoverageClasses.join(", " + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b`
- // The NodeList of matching elements
- var missingCoverageElements = document.querySelectorAll(selector);
- var currentIndex;
- function toggleClass(index) {
- missingCoverageElements.item(currentIndex).classList.remove("highlighted");
- missingCoverageElements.item(index).classList.add("highlighted");
- }
- function makeCurrent(index) {
- toggleClass(index);
- currentIndex = index;
- missingCoverageElements.item(index).scrollIntoView({
- behavior: "smooth",
- block: "center",
- inline: "center",
- });
- }
- function goToPrevious() {
- var nextIndex = 0;
- if (typeof currentIndex !== "number" || currentIndex === 0) {
- nextIndex = missingCoverageElements.length - 1;
- } else if (missingCoverageElements.length > 1) {
- nextIndex = currentIndex - 1;
- }
- makeCurrent(nextIndex);
- }
- function goToNext() {
- var nextIndex = 0;
- if (
- typeof currentIndex === "number" &&
- currentIndex < missingCoverageElements.length - 1
- ) {
- nextIndex = currentIndex + 1;
- }
- makeCurrent(nextIndex);
- }
- return function jump(event) {
- switch (event.which) {
- case 78: // n
- case 74: // j
- goToNext();
- break;
- case 66: // b
- case 75: // k
- case 80: // p
- goToPrevious();
- break;
- }
- };
- })();
- window.addEventListener("keydown", jumpToCode);
|