From 77a9679d08989d37ac2a65a5c1e42d3139bb0e86 Mon Sep 17 00:00:00 2001 From: Folyd Date: Sat, 15 Jun 2024 15:11:51 -0700 Subject: [PATCH] Eagerly get offline doc path --- extension/lib.js | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/extension/lib.js b/extension/lib.js index 21f2e14e..ef967f2a 100644 --- a/extension/lib.js +++ b/extension/lib.js @@ -24,7 +24,6 @@ export default class RustSearchOmnibox { // All dynamic setting items. Those items will been updated // in chrome.storage.onchange listener callback. let isOfflineMode = await settings.isOfflineMode; - let offlineDocPath = await settings.offlineDocPath; let defaultSearch = await settings.defaultSearch; let crateRegistry = await settings.crateRegistry; @@ -54,7 +53,7 @@ export default class RustSearchOmnibox { ]; } - omnibox.bootstrap({ + const docsSearchMixins = { onSearch: (query) => { return stdSearcher.search(query); }, @@ -65,6 +64,10 @@ export default class RustSearchOmnibox { description: `Search Rust docs ${query} on ${isOfflineMode ? "offline mode" : stdSearcher.getRootPath()}`, }]; }, + }; + + omnibox.bootstrap({ + ...docsSearchMixins, onEmptyNavigate: (content, disposition) => { commandManager.handleCommandEnterEvent(content, disposition); }, @@ -96,16 +99,7 @@ export default class RustSearchOmnibox { omnibox.addRegexQueryEvent(/^s(?:rc)?:/i, { name: "Source code", - onSearch: (query) => { - return stdSearcher.search(query); - }, - onFormat: formatDoc, - onAppend: (query) => { - return [{ - content: stdSearcher.getSearchUrl(query), - description: `Search Rust docs ${query} on ${isOfflineMode ? "offline mode" : stdSearcher.getRootPath()}`, - }]; - }, + ...docsSearchMixins, }); // Nightly std docs search @@ -272,7 +266,7 @@ export default class RustSearchOmnibox { omnibox.addRegexQueryEvent(/^`?e\d{2,4}`?$/i, { name: "Error code", - onSearch: (query) => { + onSearch: async (query) => { query = query.replace("`", ""); let baseIndex = parseInt(query.slice(1).padEnd(4, '0')); let result = []; @@ -280,7 +274,7 @@ export default class RustSearchOmnibox { let errorIndex = 'E' + String(baseIndex++).padStart(4, "0").toUpperCase(); result.push(errorIndex); } - let baseUrl = isOfflineMode ? offlineDocPath : 'https://doc.rust-lang.org/'; + let baseUrl = await settings.isOfflineMode ? await settings.offlineDocPath : 'https://doc.rust-lang.org/'; return result.map(errorCode => { return { content: `${baseUrl}error_codes/${errorCode}.html`,