@@ -487,19 +487,20 @@ function showCurrent(state)
487
487
var searchInput = search.querySelector('.sf-dump-search-input');
488
488
var counter = search.querySelector('.sf-dump-search-count');
489
489
var searchInputTimer = 0;
490
+ var previousSearchQuery = '';
490
491
491
- addEventListener(searchInput, 'keydown', function (e) {
492
- /* Don't intercept escape key in order to not start a search */
493
- if (27 === e.keyCode) {
492
+ addEventListener(searchInput, 'keyup', function (e) {
493
+ var searchQuery = e.target.value;
494
+ /* Don't perform anything if the pressed key didn't change the query */
495
+ if (searchQuery === previousSearchQuery) {
494
496
return;
495
497
}
496
-
498
+ previousSearchQuery = searchQuery;
497
499
clearTimeout(searchInputTimer);
498
500
searchInputTimer = setTimeout(function () {
499
501
state.reset();
500
502
collapseAll(root);
501
503
resetHighlightedNodes(root);
502
- var searchQuery = e.target.value;
503
504
if ('' === searchQuery) {
504
505
counter.textContent = '0 on 0';
505
506
@@ -526,17 +527,29 @@ function showCurrent(state)
526
527
});
527
528
528
529
addEventListener(root, 'keydown', function (e) {
529
- if (114 === e.keyCode || (isCtrlKey(e) && 70 === e.keyCode)) {
530
- /* CTRL + F or CMD + F */
530
+ var isSearchActive = !/\bsf-dump-search-hidden\b/.test(search.className);
531
+ if ((114 === e.keyCode && !isSearchActive) || (isCtrlKey(e) && 70 === e.keyCode)) {
532
+ /* F3 or CMD/CTRL + F */
531
533
e.preventDefault();
532
534
search.className = search.className.replace(/\bsf-dump-search-hidden\b/, '');
533
535
searchInput.focus();
534
- } else if (27 === e.keyCode && !/\bsf-dump-search-hidden\b/.test(search.className)) {
535
- /* ESC key */
536
- search.className += ' sf-dump-search-hidden';
537
- e.preventDefault();
538
- resetHighlightedNodes(root);
539
- searchInput.value = '';
536
+ } else if (isSearchActive) {
537
+ if (27 === e.keyCode) {
538
+ /* ESC key */
539
+ search.className += ' sf-dump-search-hidden';
540
+ e.preventDefault();
541
+ resetHighlightedNodes(root);
542
+ searchInput.value = '';
543
+ } else if (
544
+ (isCtrlKey(e) && 71 === e.keyCode) /* CMD/CTRL + G */
545
+ || 13 === e.keyCode /* Enter */
546
+ || 114 === e.keyCode /* F3 */
547
+ ) {
548
+ e.preventDefault();
549
+ e.shiftKey ? state.previous() : state.next();
550
+ collapseAll(root);
551
+ showCurrent(state);
552
+ }
540
553
}
541
554
});
542
555
}
0 commit comments