From b537ca3938ca5f4c708dbd1f2b66e990639b22f4 Mon Sep 17 00:00:00 2001 From: Dominik Reh Date: Mon, 24 Oct 2022 17:01:43 +0200 Subject: [PATCH] Add support for PageUp/Down and Home/End scrolling Closes #34 --- javascript/tagAutocomplete.js | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/javascript/tagAutocomplete.js b/javascript/tagAutocomplete.js index 70e0080..3096011 100644 --- a/javascript/tagAutocomplete.js +++ b/javascript/tagAutocomplete.js @@ -468,7 +468,7 @@ function navigateInList(textArea, event) { // Return if the function is deactivated in the UI if (!acActive) return; - validKeys = ["ArrowUp", "ArrowDown", "Enter", "Tab", "Escape"]; + validKeys = ["ArrowUp", "ArrowDown", "PageUp", "PageDown", "Home", "End", "Enter", "Tab", "Escape"]; if (acConfig.useLeftRightArrowKeys) validKeys.push("ArrowLeft", "ArrowRight"); @@ -494,6 +494,26 @@ function navigateInList(textArea, event) { selectedTag = (selectedTag + 1) % resultCount; } break; + case "PageUp": + if (selectedTag === null || selectedTag === 0) { + selectedTag = resultCount - 1; + } else { + selectedTag = (Math.max(selectedTag - 5, 0) + resultCount) % resultCount; + } + break; + case "PageDown": + if (selectedTag === null || selectedTag === resultCount - 1) { + selectedTag = 0; + } else { + selectedTag = Math.min(selectedTag + 5, resultCount - 1) % resultCount; + } + break; + case "Home": + selectedTag = 0; + break; + case "End": + selectedTag = resultCount - 1; + break; case "ArrowLeft": selectedTag = 0; break;