| ... | @@ -40,7 +40,8 @@ var zigAnalysis; | ... | @@ -40,7 +40,8 @@ var zigAnalysis; |
| 40 | let domDeclNoRef = document.getElementById("declNoRef"); | 40 | let domDeclNoRef = document.getElementById("declNoRef"); |
| 41 | let domSearch = document.getElementById("search"); | 41 | let domSearch = document.getElementById("search"); |
| 42 | let domSectSearchResults = document.getElementById("sectSearchResults"); | 42 | let domSectSearchResults = document.getElementById("sectSearchResults"); |
| 43 | | 43 | let domSectSearchAllResultsLink = document.getElementById("sectSearchAllResultsLink"); |
| | 44 | |
| 44 | let domListSearchResults = document.getElementById("listSearchResults"); | 45 | let domListSearchResults = document.getElementById("listSearchResults"); |
| 45 | let domSectSearchNoResults = document.getElementById("sectSearchNoResults"); | 46 | let domSectSearchNoResults = document.getElementById("sectSearchNoResults"); |
| 46 | let domSectInfo = document.getElementById("sectInfo"); | 47 | let domSectInfo = document.getElementById("sectInfo"); |
| ... | @@ -51,6 +52,7 @@ var zigAnalysis; | ... | @@ -51,6 +52,7 @@ var zigAnalysis; |
| 51 | let domHelpModal = document.getElementById("helpDialog"); | 52 | let domHelpModal = document.getElementById("helpDialog"); |
| 52 | | 53 | |
| 53 | let searchTimer = null; | 54 | let searchTimer = null; |
| | 55 | let searchTrimResults = true; |
| 54 | | 56 | |
| 55 | let escapeHtmlReplacements = { | 57 | let escapeHtmlReplacements = { |
| 56 | "&": "&", | 58 | "&": "&", |
| ... | @@ -103,6 +105,14 @@ var zigAnalysis; | ... | @@ -103,6 +105,14 @@ var zigAnalysis; |
| 103 | // let nodesToCallsMap = indexNodesToCalls(); | 105 | // let nodesToCallsMap = indexNodesToCalls(); |
| 104 | | 106 | |
| 105 | domSearch.addEventListener("keydown", onSearchKeyDown, false); | 107 | domSearch.addEventListener("keydown", onSearchKeyDown, false); |
| | 108 | domSectSearchAllResultsLink.addEventListener('click', onClickSearchShowAllResults, false); |
| | 109 | function onClickSearchShowAllResults(ev) { |
| | 110 | ev.preventDefault(); |
| | 111 | ev.stopPropagation(); |
| | 112 | searchTrimResults = false; |
| | 113 | onHashChange(); |
| | 114 | } |
| | 115 | |
| 106 | domPrivDeclsBox.addEventListener( | 116 | domPrivDeclsBox.addEventListener( |
| 107 | "change", | 117 | "change", |
| 108 | function () { | 118 | function () { |
| ... | @@ -355,6 +365,7 @@ var zigAnalysis; | ... | @@ -355,6 +365,7 @@ var zigAnalysis; |
| 355 | domSectFns.classList.add("hidden"); | 365 | domSectFns.classList.add("hidden"); |
| 356 | domSectFields.classList.add("hidden"); | 366 | domSectFields.classList.add("hidden"); |
| 357 | domSectSearchResults.classList.add("hidden"); | 367 | domSectSearchResults.classList.add("hidden"); |
| | 368 | domSectSearchAllResultsLink.classList.add("hidden"); |
| 358 | domSectSearchNoResults.classList.add("hidden"); | 369 | domSectSearchNoResults.classList.add("hidden"); |
| 359 | domSectInfo.classList.add("hidden"); | 370 | domSectInfo.classList.add("hidden"); |
| 360 | domHdrName.classList.add("hidden"); | 371 | domHdrName.classList.add("hidden"); |
| ... | @@ -3261,6 +3272,7 @@ var zigAnalysis; | ... | @@ -3261,6 +3272,7 @@ var zigAnalysis; |
| 3261 | list.sort(); | 3272 | list.sort(); |
| 3262 | return list; | 3273 | return list; |
| 3263 | } | 3274 | } |
| | 3275 | |
| 3264 | function renderSearch() { | 3276 | function renderSearch() { |
| 3265 | let matchedItems = []; | 3277 | let matchedItems = []; |
| 3266 | let ignoreCase = curNavSearch.toLowerCase() === curNavSearch; | 3278 | let ignoreCase = curNavSearch.toLowerCase() === curNavSearch; |
| ... | @@ -3332,6 +3344,14 @@ var zigAnalysis; | ... | @@ -3332,6 +3344,14 @@ var zigAnalysis; |
| 3332 | return operatorCompare(a.decl.name, b.decl.name); | 3344 | return operatorCompare(a.decl.name, b.decl.name); |
| 3333 | }); | 3345 | }); |
| 3334 | | 3346 | |
| | 3347 | |
| | 3348 | var searchTrimmed = false |
| | 3349 | var searchTrimResultsMaxItems = 200 |
| | 3350 | if (searchTrimResults && matchedItems.length > searchTrimResultsMaxItems) { |
| | 3351 | matchedItems = matchedItems.slice(0, searchTrimResultsMaxItems) |
| | 3352 | searchTrimmed = true |
| | 3353 | } |
| | 3354 | |
| 3335 | // Build up the list of search results | 3355 | // Build up the list of search results |
| 3336 | let matchedItemsHTML = ""; | 3356 | let matchedItemsHTML = ""; |
| 3337 | | 3357 | |
| ... | @@ -3342,12 +3362,14 @@ var zigAnalysis; | ... | @@ -3342,12 +3362,14 @@ var zigAnalysis; |
| 3342 | const text = lastPkgName + "." + match.path.declNames.join("."); | 3362 | const text = lastPkgName + "." + match.path.declNames.join("."); |
| 3343 | const href = navLink(match.path.pkgNames, match.path.declNames); | 3363 | const href = navLink(match.path.pkgNames, match.path.declNames); |
| 3344 | | 3364 | |
| 3345 | matchedItemsHTML += `<li><a href="${href}">${text}</a></li>`; | 3365 | matchedItemsHTML += "<li><a href=\""+ href +"\">"+ text + "</a></li>"; |
| 3346 | } | 3366 | } |
| 3347 | | 3367 | |
| 3348 | // Replace the search results using our newly constructed HTML string | 3368 | // Replace the search results using our newly constructed HTML string |
| 3349 | domListSearchResults.innerHTML = matchedItemsHTML; | 3369 | domListSearchResults.innerHTML = matchedItemsHTML; |
| 3350 | | 3370 | if (searchTrimmed) { |
| | 3371 | domSectSearchAllResultsLink.classList.remove("hidden"); |
| | 3372 | } |
| 3351 | renderSearchCursor(); | 3373 | renderSearchCursor(); |
| 3352 | | 3374 | |
| 3353 | domSectSearchResults.classList.remove("hidden"); | 3375 | domSectSearchResults.classList.remove("hidden"); |