diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2024-08-31 10:08:52 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-08-31 10:08:52 +0200 |
| commit | 1f0292bb8f8d97bb87993d1742423da01bcbc8fa (patch) | |
| tree | 9eb9762d6c0483008e63682603824af8f68ba71d /src/tools | |
| parent | 1fd0c71818dd63ba4c75b4be8d5962af35e143d2 (diff) | |
| parent | 1eb4cb452b62f82037e192cfb201e8795ce342ff (diff) | |
| download | rust-1f0292bb8f8d97bb87993d1742423da01bcbc8fa.tar.gz rust-1f0292bb8f8d97bb87993d1742423da01bcbc8fa.zip | |
Rollup merge of #126183 - Folyd:search-core, r=GuillaumeGomez,notriddle
Separate core search logic with search ui
Currenty, the `search.js` mixed with UI/DOM manipulation codes and search logic codes, I propose to extract the search logic to a class for following benefits:
- Clean code. Separation of DOM manipulation and search logic can lead better code maintainability and easy code testings.
- Easy share the search logic for third party to utilize the search function, such as [Rust Search Extension](https://rust.extension.sh), https://query.rs.
This PR added a new class called `DocSearch`, which mainly expose following methods:
```js
class DocSearch {
// Dependency inject searchIndex, rootPath and searchState
constructor(rawSearchIndex, rootPath, searchState) {
// build search index...
}
static parseQuery(userQuery) {
}
async execQuery(parsedQuery, filterCrates, currentCrate) {
}
}
```
Diffstat (limited to 'src/tools')
| -rw-r--r-- | src/tools/rustdoc-js/tester.js | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/tools/rustdoc-js/tester.js b/src/tools/rustdoc-js/tester.js index 43a22f358c3..e162ba033cc 100644 --- a/src/tools/rustdoc-js/tester.js +++ b/src/tools/rustdoc-js/tester.js @@ -427,7 +427,6 @@ function loadSearchJS(doc_folder, resource_suffix) { return list[descIndex]; }, loadedDescShard: function(crate, shard, data) { - //console.log(this.descShards); this.descShards.get(crate)[shard].resolve(data.split("\n")); }, }; @@ -436,15 +435,15 @@ function loadSearchJS(doc_folder, resource_suffix) { const searchJs = fs.readdirSync(staticFiles).find(f => f.match(/search.*\.js$/)); const searchModule = require(path.join(staticFiles, searchJs)); searchModule.initSearch(searchIndex.searchIndex); - + const docSearch = searchModule.docSearch; return { doSearch: function(queryStr, filterCrate, currentCrate) { - return searchModule.execQuery(searchModule.parseQuery(queryStr), + return docSearch.execQuery(searchModule.parseQuery(queryStr), filterCrate, currentCrate); }, getCorrections: function(queryStr, filterCrate, currentCrate) { const parsedQuery = searchModule.parseQuery(queryStr); - searchModule.execQuery(parsedQuery, filterCrate, currentCrate); + docSearch.execQuery(parsedQuery, filterCrate, currentCrate); return parsedQuery.correction; }, parseQuery: searchModule.parseQuery, |
