autodoc: re-introduce search result limits

This commit is contained in:
Loris Cro 2022-08-06 17:29:13 +02:00
parent 059713478a
commit 9fc6990052
2 changed files with 26 additions and 3 deletions

View File

@ -647,6 +647,7 @@
<div id="sectSearchResults" class="hidden">
<h2>Search Results</h2>
<ul id="listSearchResults"></ul>
<p id="sectSearchAllResultsLink" class="hidden"><a href="">show all results</a></p>
</div>
<div id="sectSearchNoResults" class="hidden">
<h2>No Results Found</h2>

View File

@ -40,7 +40,8 @@ var zigAnalysis;
let domDeclNoRef = document.getElementById("declNoRef");
let domSearch = document.getElementById("search");
let domSectSearchResults = document.getElementById("sectSearchResults");
let domSectSearchAllResultsLink = document.getElementById("sectSearchAllResultsLink");
let domListSearchResults = document.getElementById("listSearchResults");
let domSectSearchNoResults = document.getElementById("sectSearchNoResults");
let domSectInfo = document.getElementById("sectInfo");
@ -51,6 +52,7 @@ var zigAnalysis;
let domHelpModal = document.getElementById("helpDialog");
let searchTimer = null;
let searchTrimResults = true;
let escapeHtmlReplacements = {
"&": "&amp;",
@ -103,6 +105,14 @@ var zigAnalysis;
// let nodesToCallsMap = indexNodesToCalls();
domSearch.addEventListener("keydown", onSearchKeyDown, false);
domSectSearchAllResultsLink.addEventListener('click', onClickSearchShowAllResults, false);
function onClickSearchShowAllResults(ev) {
ev.preventDefault();
ev.stopPropagation();
searchTrimResults = false;
onHashChange();
}
domPrivDeclsBox.addEventListener(
"change",
function () {
@ -355,6 +365,7 @@ var zigAnalysis;
domSectFns.classList.add("hidden");
domSectFields.classList.add("hidden");
domSectSearchResults.classList.add("hidden");
domSectSearchAllResultsLink.classList.add("hidden");
domSectSearchNoResults.classList.add("hidden");
domSectInfo.classList.add("hidden");
domHdrName.classList.add("hidden");
@ -3261,6 +3272,7 @@ var zigAnalysis;
list.sort();
return list;
}
function renderSearch() {
let matchedItems = [];
let ignoreCase = curNavSearch.toLowerCase() === curNavSearch;
@ -3332,6 +3344,14 @@ var zigAnalysis;
return operatorCompare(a.decl.name, b.decl.name);
});
var searchTrimmed = false
var searchTrimResultsMaxItems = 200
if (searchTrimResults && matchedItems.length > searchTrimResultsMaxItems) {
matchedItems = matchedItems.slice(0, searchTrimResultsMaxItems)
searchTrimmed = true
}
// Build up the list of search results
let matchedItemsHTML = "";
@ -3342,12 +3362,14 @@ var zigAnalysis;
const text = lastPkgName + "." + match.path.declNames.join(".");
const href = navLink(match.path.pkgNames, match.path.declNames);
matchedItemsHTML += `<li><a href="${href}">${text}</a></li>`;
matchedItemsHTML += "<li><a href=\""+ href +"\">"+ text + "</a></li>";
}
// Replace the search results using our newly constructed HTML string
domListSearchResults.innerHTML = matchedItemsHTML;
if (searchTrimmed) {
domSectSearchAllResultsLink.classList.remove("hidden");
}
renderSearchCursor();
domSectSearchResults.classList.remove("hidden");