Commit 9fc6990052

Loris Cro <kappaloris@gmail.com>
2022-08-06 17:29:13
autodoc: re-introduce search result limits
1 parent 0597134
Changed files (2)
lib/docs/index.html
@@ -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>
lib/docs/main.js
@@ -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");