mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-25 16:24:46 +00:00
parent
5ad98b4026
commit
4c5e888eb6
@ -1393,6 +1393,7 @@ function initSearch(rawSearchIndex) {
|
|||||||
*/
|
*/
|
||||||
async function sortResults(results, isType, preferredCrate) {
|
async function sortResults(results, isType, preferredCrate) {
|
||||||
const userQuery = parsedQuery.userQuery;
|
const userQuery = parsedQuery.userQuery;
|
||||||
|
const casedUserQuery = parsedQuery.original;
|
||||||
const result_list = [];
|
const result_list = [];
|
||||||
for (const result of results.values()) {
|
for (const result of results.values()) {
|
||||||
result.item = searchIndex[result.id];
|
result.item = searchIndex[result.id];
|
||||||
@ -1403,6 +1404,13 @@ function initSearch(rawSearchIndex) {
|
|||||||
result_list.sort((aaa, bbb) => {
|
result_list.sort((aaa, bbb) => {
|
||||||
let a, b;
|
let a, b;
|
||||||
|
|
||||||
|
// sort by exact case-sensitive match
|
||||||
|
a = (aaa.item.name !== casedUserQuery);
|
||||||
|
b = (bbb.item.name !== casedUserQuery);
|
||||||
|
if (a !== b) {
|
||||||
|
return a - b;
|
||||||
|
}
|
||||||
|
|
||||||
// sort by exact match with regard to the last word (mismatch goes later)
|
// sort by exact match with regard to the last word (mismatch goes later)
|
||||||
a = (aaa.word !== userQuery);
|
a = (aaa.word !== userQuery);
|
||||||
b = (bbb.word !== userQuery);
|
b = (bbb.word !== userQuery);
|
||||||
|
7
tests/rustdoc-js-std/exact-case.js
Normal file
7
tests/rustdoc-js-std/exact-case.js
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
const EXPECTED = {
|
||||||
|
'query': 'Copy',
|
||||||
|
'others': [
|
||||||
|
{ 'path': 'std::marker', 'name': 'Copy' },
|
||||||
|
{ 'path': 'std::fs', 'name': 'copy' },
|
||||||
|
],
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user