diff --git a/src/librustdoc/html/static/main.js b/src/librustdoc/html/static/main.js index 7b5d1b7be2f63..7f379cfd98cb6 100644 --- a/src/librustdoc/html/static/main.js +++ b/src/librustdoc/html/static/main.js @@ -266,6 +266,11 @@ b = (bbb.item.crate !== window.currentCrate); if (a !== b) return a - b; + // sort by total module path length (longer goes later) + a = (aaa.item.path + (aaa.item.parent || {name: ''}).name + aaa.item.name).length; + b = (bbb.item.path + (bbb.item.parent || {name: ''}).name + bbb.item.name).length; + if (a !== b) return a - b; + // sort by exact match (mismatch goes later) a = (aaa.word !== valLower); b = (bbb.word !== valLower);