| ... | @@ -35,6 +35,7 @@ | ... | @@ -35,6 +35,7 @@ |
| 35 | var domSectSearchResults = document.getElementById("sectSearchResults"); | 35 | var domSectSearchResults = document.getElementById("sectSearchResults"); |
| 36 | var domListSearchResults = document.getElementById("listSearchResults"); | 36 | var domListSearchResults = document.getElementById("listSearchResults"); |
| 37 | var domSectSearchNoResults = document.getElementById("sectSearchNoResults"); | 37 | var domSectSearchNoResults = document.getElementById("sectSearchNoResults"); |
| | 38 | var domSectSearchAllResultsLink = document.getElementById("sectSearchAllResultsLink"); |
| 38 | var domSectInfo = document.getElementById("sectInfo"); | 39 | var domSectInfo = document.getElementById("sectInfo"); |
| 39 | var domTdTarget = document.getElementById("tdTarget"); | 40 | var domTdTarget = document.getElementById("tdTarget"); |
| 40 | var domTdZigVer = document.getElementById("tdZigVer"); | 41 | var domTdZigVer = document.getElementById("tdZigVer"); |
| ... | @@ -42,6 +43,7 @@ | ... | @@ -42,6 +43,7 @@ |
| 42 | var domHelpModal = document.getElementById("helpDialog"); | 43 | var domHelpModal = document.getElementById("helpDialog"); |
| 43 | | 44 | |
| 44 | var searchTimer = null; | 45 | var searchTimer = null; |
| | 46 | var searchTrimResults = true; |
| 45 | var escapeHtmlReplacements = { "&": "&amp;", '"': "&quot;", "<": "&lt;", ">": "&gt;" }; | 47 | var escapeHtmlReplacements = { "&": "&amp;", '"': "&quot;", "<": "&lt;", ">": "&gt;" }; |
| 46 | | 48 | |
| 47 | var typeKinds = indexTypeKinds(); | 49 | var typeKinds = indexTypeKinds(); |
| ... | @@ -82,6 +84,8 @@ | ... | @@ -82,6 +84,8 @@ |
| 82 | var nodesToCallsMap = indexNodesToCalls(); | 84 | var nodesToCallsMap = indexNodesToCalls(); |
| 83 | | 85 | |
| 84 | domSearch.addEventListener('keydown', onSearchKeyDown, false); | 86 | domSearch.addEventListener('keydown', onSearchKeyDown, false); |
| | 87 | domSectSearchAllResultsLink.addEventListener('click', onClickSearchShowAllResults, false); |
| | 88 | |
| 85 | window.addEventListener('hashchange', onHashChange, false); | 89 | window.addEventListener('hashchange', onHashChange, false); |
| 86 | window.addEventListener('keydown', onWindowKeyDown, false); | 90 | window.addEventListener('keydown', onWindowKeyDown, false); |
| 87 | onHashChange(); | 91 | onHashChange(); |
| ... | @@ -113,6 +117,7 @@ | ... | @@ -113,6 +117,7 @@ |
| 113 | domSectFields.classList.add("hidden"); | 117 | domSectFields.classList.add("hidden"); |
| 114 | domSectSearchResults.classList.add("hidden"); | 118 | domSectSearchResults.classList.add("hidden"); |
| 115 | domSectSearchNoResults.classList.add("hidden"); | 119 | domSectSearchNoResults.classList.add("hidden"); |
| | 120 | domSectSearchAllResultsLink.classList.add("hidden"); |
| 116 | domSectInfo.classList.add("hidden"); | 121 | domSectInfo.classList.add("hidden"); |
| 117 | domHdrName.classList.add("hidden"); | 122 | domHdrName.classList.add("hidden"); |
| 118 | domSectNav.classList.add("hidden"); | 123 | domSectNav.classList.add("hidden"); |
| ... | @@ -1810,6 +1815,13 @@ | ... | @@ -1810,6 +1815,13 @@ |
| 1810 | domHelpModal.focus(); | 1815 | domHelpModal.focus(); |
| 1811 | } | 1816 | } |
| 1812 | | 1817 | |
| | 1818 | function onClickSearchShowAllResults(ev) { |
| | 1819 | ev.preventDefault(); |
| | 1820 | ev.stopPropagation(); |
| | 1821 | searchTrimResults = false; |
| | 1822 | onHashChange(); |
| | 1823 | } |
| | 1824 | |
| 1813 | function clearAsyncSearch() { | 1825 | function clearAsyncSearch() { |
| 1814 | if (searchTimer != null) { | 1826 | if (searchTimer != null) { |
| 1815 | clearTimeout(searchTimer); | 1827 | clearTimeout(searchTimer); |
| ... | @@ -1819,6 +1831,7 @@ | ... | @@ -1819,6 +1831,7 @@ |
| 1819 | | 1831 | |
| 1820 | function startAsyncSearch() { | 1832 | function startAsyncSearch() { |
| 1821 | clearAsyncSearch(); | 1833 | clearAsyncSearch(); |
| | 1834 | searchTrimResults = true; |
| 1822 | searchTimer = setTimeout(startSearch, 10); | 1835 | searchTimer = setTimeout(startSearch, 10); |
| 1823 | } | 1836 | } |
| 1824 | function startSearch() { | 1837 | function startSearch() { |
| ... | @@ -1897,6 +1910,13 @@ | ... | @@ -1897,6 +1910,13 @@ |
| 1897 | return operatorCompare(a.decl.name, b.decl.name); | 1910 | return operatorCompare(a.decl.name, b.decl.name); |
| 1898 | }); | 1911 | }); |
| 1899 | | 1912 | |
| | 1913 | var searchTrimmed = false |
| | 1914 | var searchTrimResultsMaxItems = 200 |
| | 1915 | if (searchTrimResults && matchedItems.length > searchTrimResultsMaxItems) { |
| | 1916 | matchedItems = matchedItems.slice(0, searchTrimResultsMaxItems) |
| | 1917 | searchTrimmed = true |
| | 1918 | } |
| | 1919 | |
| 1900 | var domListSearchResultsFragment = createDomListFragment(matchedItems.length, '<li><a href="#"></a></li>'); | 1920 | var domListSearchResultsFragment = createDomListFragment(matchedItems.length, '<li><a href="#"></a></li>'); |
| 1901 | for (var i = 0; i < matchedItems.length; i += 1) { | 1921 | for (var i = 0; i < matchedItems.length; i += 1) { |
| 1902 | var liDom = domListSearchResultsFragment.children[i]; | 1922 | var liDom = domListSearchResultsFragment.children[i]; |
| ... | @@ -1911,6 +1931,10 @@ | ... | @@ -1911,6 +1931,10 @@ |
| 1911 | domListSearchResults.appendChild(domListSearchResultsFragment); | 1931 | domListSearchResults.appendChild(domListSearchResultsFragment); |
| 1912 | domSectSearchResults.classList.remove("hidden"); | 1932 | domSectSearchResults.classList.remove("hidden"); |
| 1913 | | 1933 | |
| | 1934 | if (searchTrimmed) { |
| | 1935 | domSectSearchAllResultsLink.classList.remove("hidden"); |
| | 1936 | } |
| | 1937 | |
| 1914 | renderSearchCursor(); | 1938 | renderSearchCursor(); |
| 1915 | } else { | 1939 | } else { |
| 1916 | domSectSearchNoResults.classList.remove("hidden"); | 1940 | domSectSearchNoResults.classList.remove("hidden"); |