diff --git a/extensions/elixir/src/language_servers/lexical.rs b/extensions/elixir/src/language_servers/lexical.rs index b15984498fa32421f8a3e69841152bc66b8bc65a..cbab9f07c21861af06d41647ad387b0b599705e0 100644 --- a/extensions/elixir/src/language_servers/lexical.rs +++ b/extensions/elixir/src/language_servers/lexical.rs @@ -20,8 +20,12 @@ impl Lexical { pub fn language_server_binary_path( &mut self, language_server_id: &LanguageServerId, - _worktree: &zed::Worktree, + worktree: &zed::Worktree, ) -> Result { + if let Some(path) = worktree.which("lexical") { + return Ok(path); + } + if let Some(path) = &self.cached_binary_path { if fs::metadata(path).map_or(false, |stat| stat.is_file()) { return Ok(path.clone()); diff --git a/extensions/elixir/src/language_servers/next_ls.rs b/extensions/elixir/src/language_servers/next_ls.rs index 14c216f312bb46df20d107f55d3e408b6a2e2fb4..c63d61a713b043d0077ed6c254034adfe120682d 100644 --- a/extensions/elixir/src/language_servers/next_ls.rs +++ b/extensions/elixir/src/language_servers/next_ls.rs @@ -20,8 +20,12 @@ impl NextLs { pub fn language_server_binary_path( &mut self, language_server_id: &LanguageServerId, - _worktree: &zed::Worktree, + worktree: &zed::Worktree, ) -> Result { + if let Some(path) = worktree.which("next-ls") { + return Ok(path); + } + if let Some(path) = &self.cached_binary_path { if fs::metadata(path).map_or(false, |stat| stat.is_file()) { return Ok(path.clone());