indiaai-hackathon
/
datalab
/web
/node_modules
/http-proxy
/coverage
/lcov-report
/block-navigation.js
| var jumpToCode = (function init () { | |
| // Classes of code we would like to highlight | |
| var missingCoverageClasses = [ '.cbranch-no', '.cstat-no', '.fstat-no' ]; | |
| // 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 = 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); | |