diff --git a/src-tauri/src/scanner.rs b/src-tauri/src/scanner.rs index 1783dfa..1233acb 100644 --- a/src-tauri/src/scanner.rs +++ b/src-tauri/src/scanner.rs @@ -205,16 +205,17 @@ fn scan_extensions_for_profile( }; for (extension_id, extension_value) in extension_settings { - let Some(manifest) = extension_value.get("manifest") else { - continue; - }; - let Some(install_dir) = resolve_extension_install_dir(profile_path, extension_id, extension_value) else { continue; }; + let manifest = load_extension_manifest(&install_dir, extension_value); + let Some(manifest) = manifest.as_ref() else { + continue; + }; + let name = resolve_extension_name(manifest, &install_dir) .filter(|value| !value.is_empty()) .unwrap_or_else(|| extension_id.clone()); @@ -260,6 +261,11 @@ fn scan_extensions_for_profile( } } +fn load_extension_manifest(install_dir: &Path, extension_value: &Value) -> Option { + read_json_file(&install_dir.join("manifest.json")) + .or_else(|| extension_value.get("manifest").cloned()) +} + fn resolve_extension_install_dir( profile_path: &Path, extension_id: &str,