diff options
| author | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2025-09-11 18:05:07 +0200 |
|---|---|---|
| committer | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2025-09-11 18:05:07 +0200 |
| commit | bfd5a264c7e02ee831aab919c272539cf9395a1d (patch) | |
| tree | 651ed9dcab6f780dd886bb43999ef833647d4ff2 /src | |
| parent | be8de5d6a0fc5cb2924e174a809a0aff303f281a (diff) | |
| download | rust-bfd5a264c7e02ee831aab919c272539cf9395a1d.tar.gz rust-bfd5a264c7e02ee831aab919c272539cf9395a1d.zip | |
Correctly handle literal search on paths
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustdoc/html/static/js/search.js | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/librustdoc/html/static/js/search.js b/src/librustdoc/html/static/js/search.js index b01b596da68..3b84ae2bed0 100644 --- a/src/librustdoc/html/static/js/search.js +++ b/src/librustdoc/html/static/js/search.js @@ -3639,7 +3639,7 @@ class DocSearch { if (contains.length === 0) { return 0; } - const maxPathEditDistance = Math.floor( + const maxPathEditDistance = parsedQuery.literalSearch ? 0 : Math.floor( contains.reduce((acc, next) => acc + next.length, 0) / 3, ); let ret_dist = maxPathEditDistance + 1; @@ -3650,7 +3650,9 @@ class DocSearch { let dist_total = 0; for (let x = 0; x < clength; ++x) { const [p, c] = [path[i + x], contains[x]]; - if (Math.floor((p.length - c.length) / 3) <= maxPathEditDistance && + if (parsedQuery.literalSearch && p !== c) { + continue pathiter; + } else if (Math.floor((p.length - c.length) / 3) <= maxPathEditDistance && p.indexOf(c) !== -1 ) { // discount distance on substring match |
