extension_snippet.rs

 1use std::path::PathBuf;
 2use std::sync::Arc;
 3
 4use anyhow::Result;
 5use extension::{ExtensionHostProxy, ExtensionSnippetProxy};
 6use gpui::App;
 7
 8use crate::SnippetRegistry;
 9
10pub fn init(cx: &mut App) {
11    let proxy = ExtensionHostProxy::default_global(cx);
12    proxy.register_snippet_proxy(SnippetRegistryProxy {
13        snippet_registry: SnippetRegistry::global(cx),
14    });
15}
16
17struct SnippetRegistryProxy {
18    snippet_registry: Arc<SnippetRegistry>,
19}
20
21impl ExtensionSnippetProxy for SnippetRegistryProxy {
22    fn register_snippet(&self, path: &PathBuf, snippet_contents: &str) -> Result<()> {
23        self.snippet_registry
24            .register_snippets(path, snippet_contents)
25    }
26}