diff options
Diffstat (limited to 'src/librustdoc/html/static/main.js')
| -rw-r--r-- | src/librustdoc/html/static/main.js | 72 |
1 files changed, 44 insertions, 28 deletions
diff --git a/src/librustdoc/html/static/main.js b/src/librustdoc/html/static/main.js index 2546a9410a9..ef8bf2244d9 100644 --- a/src/librustdoc/html/static/main.js +++ b/src/librustdoc/html/static/main.js @@ -77,19 +77,13 @@ return false; } var end = start + className.length; - if (end < elemClass.length && elemClass[end] !== ' ') { - return false; - } - return true; + return !(end < elemClass.length && elemClass[end] !== ' '); } if (start > 0 && elemClass[start - 1] !== ' ') { return false; } var end = start + className.length; - if (end < elemClass.length && elemClass[end] !== ' ') { - return false; - } - return true; + return !(end < elemClass.length && elemClass[end] !== ' '); } return false; } @@ -320,7 +314,7 @@ } else if (ev.target.tagName === 'SPAN' && hasClass(ev.target.parentNode, 'line-numbers')) { var prev_id = 0; - var set_fragment = function (name) { + var set_fragment = function(name) { if (browserSupportsHistoryApi()) { history.replaceState(null, null, '#' + name); window.hashchange(); @@ -835,7 +829,7 @@ query.search = val; // searching by type } else if (val.search("->") > -1) { - var trimmer = function (s) { return s.trim(); }; + var trimmer = function(s) { return s.trim(); }; var parts = val.split("->").map(trimmer); var input = parts[0]; // sort inputs so that order does not matter @@ -1012,11 +1006,21 @@ } } - return { + var ret = { 'in_args': sortResults(results_in_args, true), 'returned': sortResults(results_returned, true), 'others': sortResults(results), }; + if (ALIASES[window.currentCrate][query.raw]) { + var aliases = ALIASES[window.currentCrate][query.raw]; + for (var i = 0; i < aliases.length; ++i) { + ret['others'].unshift(aliases[i]); + if (ret['others'].length > MAX_RESULTS) { + ret['others'].pop(); + } + } + } + return ret; } /** @@ -1197,11 +1201,13 @@ array.forEach(function(item) { var name, type, href, displayPath; - if (shown.indexOf(item) !== -1) { + var id_ty = item.ty + item.path + item.name; + if (shown.indexOf(id_ty) !== -1) { return; } - shown.push(item); + console.log(item); + shown.push(id_ty); name = item.name; type = itemTypes[item.ty]; @@ -1369,13 +1375,17 @@ function search(e) { var params = getQueryStringParams(); - var query = getQuery(document.getElementsByClassName('search-input')[0].value); + var search_input = document.getElementsByClassName('search-input')[0]; + var query = getQuery(search_input.value.trim()); if (e) { e.preventDefault(); } if (!query.query || query.id === currentResults) { + if (query.query.length > 0) { + putBackSearch(search_input); + } return; } @@ -1547,7 +1557,7 @@ startSearch(); // Draw a convenient sidebar of known crates if we have a listing - if (rootPath === '../') { + if (rootPath === '../' || rootPath === "./") { var sidebar = document.getElementsByClassName('sidebar-elems')[0]; if (sidebar) { var div = document.createElement('div'); @@ -1566,11 +1576,11 @@ crates.sort(); for (var i = 0; i < crates.length; ++i) { var klass = 'crate'; - if (crates[i] === window.currentCrate) { + if (rootPath !== "./" && crates[i] === window.currentCrate) { klass += ' current'; } var link = document.createElement('a'); - link.href = '../' + crates[i] + '/index.html'; + link.href = rootPath + crates[i] + '/index.html'; link.title = rawSearchIndex[crates[i]].doc; link.className = klass; link.textContent = crates[i]; @@ -1947,7 +1957,7 @@ otherMessage = ' Show type declaration'; } e.parentNode.insertBefore(createToggle(otherMessage), e); - if (otherMessage) { + if (otherMessage && getCurrentValue('rustdoc-item-declarations') !== "false") { collapseDocs(e.previousSibling.childNodes[0], "toggle"); } } @@ -2017,7 +2027,9 @@ onEach(document.getElementById('main').getElementsByTagName('pre'), function(e) { onEach(e.getElementsByClassName('attributes'), function(i_e) { i_e.parentNode.insertBefore(createToggleWrapper(), i_e); - collapseDocs(i_e.previousSibling.childNodes[0], "toggle"); + if (getCurrentValue("rustdoc-item-attributes") !== "false") { + collapseDocs(i_e.previousSibling.childNodes[0], "toggle"); + } }); }); @@ -2064,19 +2076,23 @@ }; }); + function putBackSearch(search_input) { + if (search_input.value !== "") { + addClass(document.getElementById("main"), "hidden"); + removeClass(document.getElementById("search"), "hidden"); + if (browserSupportsHistoryApi()) { + history.replaceState(search_input.value, + "", + "?search=" + encodeURIComponent(search_input.value)); + } + } + } + var search_input = document.getElementsByClassName("search-input")[0]; if (search_input) { search_input.onfocus = function() { - if (search_input.value !== "") { - addClass(document.getElementById("main"), "hidden"); - removeClass(document.getElementById("search"), "hidden"); - if (browserSupportsHistoryApi()) { - history.replaceState(search_input.value, - "", - "?search=" + encodeURIComponent(search_input.value)); - } - } + putBackSearch(this); }; } |
