Skip to content

Commit e1a4d1d

Browse files
committed
rustdoc search: make crate: filter more ergonomic
no longer requires a comma, also remove trailing whitespace.
1 parent 298c25f commit e1a4d1d

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

Diff for: src/librustdoc/html/static/js/search.js

+15-1
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,20 @@ function getFilteredNextElem(query, parserState, elems, isInGenerics) {
283283
parserState.pos += 1;
284284
parserState.totalElems -= 1;
285285
query.literalSearch = false;
286+
if (parserState.typeFilter === "crate") {
287+
while (parserState.userQuery[parserState.pos] === " ") {
288+
parserState.pos += 1;
289+
}
290+
const start = parserState.pos;
291+
const foundCrate = consumeIdent(parserState);
292+
if (!foundCrate) {
293+
throw ["Expected ident after ", "crate:", ", found ", parserState.userQuery[start]];
294+
}
295+
const name = parserState.userQuery.substring(start, parserState.pos);
296+
elems.push(makePrimitiveElement(name, { typeFilter: "crate" }));
297+
parserState.typeFilter = null;
298+
return getFilteredNextElem(query, parserState, elems, isInGenerics);
299+
}
286300
getNextElem(query, parserState, elems, isInGenerics);
287301
}
288302
}
@@ -1930,7 +1944,7 @@ class DocSearch {
19301944
query.error = err;
19311945
return query;
19321946
}
1933-
1947+
19341948
const nonCrateElems = query.elems.filter(function (elem) {
19351949
if (elem.typeFilter === TY_CRATE) {
19361950
query.filterCrates = elem.name;

0 commit comments

Comments
 (0)