diff options
Diffstat (limited to 'src/librustdoc/html/static/js/search.js')
| -rw-r--r-- | src/librustdoc/html/static/js/search.js | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/src/librustdoc/html/static/js/search.js b/src/librustdoc/html/static/js/search.js index 6f90575fe65..5e65791bb66 100644 --- a/src/librustdoc/html/static/js/search.js +++ b/src/librustdoc/html/static/js/search.js @@ -606,7 +606,8 @@ function getNextElem(query, parserState, elems, isInGenerics) { c = parserState.userQuery[parserState.pos]; } const generics = []; - if (parserState.userQuery.slice(parserState.pos, parserState.pos + 3) === "mut") { + const pos = parserState.pos; + if (parserState.userQuery.slice(pos, pos + 3) === "mut") { generics.push(makePrimitiveElement("mut", { typeFilter: "keyword" })); parserState.pos += 3; c = parserState.userQuery[parserState.pos]; @@ -623,7 +624,7 @@ function getNextElem(query, parserState, elems, isInGenerics) { getFilteredNextElem(query, parserState, generics, isInGenerics); } elems.push(makePrimitiveElement(name, { generics })); - } + }; skipWhitespace(parserState); let start = parserState.pos; @@ -2324,6 +2325,25 @@ class DocSearch { }, result), ); return true; + } else if (fnType.id === this.typeNameIdOfPointer) { + pushText({ name: "*", highlighted: fnType.highlighted }, result); + if (fnType.generics.length < 2) { + pushText({ name: "const ", highlighted: fnType.highlighted }, result); + } + let prevHighlighted = false; + await onEachBtwnAsync( + fnType.generics, + async value => { + prevHighlighted = !!value.highlighted; + await writeFn(value, result); + }, + // @ts-expect-error + value => pushText({ + name: " ", + highlighted: prevHighlighted && value.highlighted, + }, result), + ); + return true; } else if ( fnType.id === this.typeNameIdOfFn || fnType.id === this.typeNameIdOfFnMut || |
