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);