uiua.rs

 1use zed_extension_api::{self as zed, Result};
 2
 3struct UiuaExtension;
 4
 5impl zed::Extension for UiuaExtension {
 6    fn new() -> Self {
 7        Self
 8    }
 9
10    fn language_server_command(
11        &mut self,
12        _language_server_id: &zed::LanguageServerId,
13        worktree: &zed::Worktree,
14    ) -> Result<zed::Command> {
15        let path = worktree
16            .which("uiua")
17            .ok_or_else(|| "uiua is not installed".to_string())?;
18
19        Ok(zed::Command {
20            command: path,
21            args: vec!["lsp".to_string()],
22            env: Default::default(),
23        })
24    }
25}
26
27zed::register_extension!(UiuaExtension);