Skip to content

Commit b22ef1a

Browse files
authored
Check PATH for starting a LS out of the project gemset (#90)
Refactor language server binary lookup logic by extracting the path search and extension gemset fallback into a dedicated method. The new `try_find_on_path_or_extension_gemset` method: - Checks if the language server is available on PATH - Falls back to extension gemset if not found Closes #89
1 parent c4bd1df commit b22ef1a

File tree

1 file changed

+17
-12
lines changed

1 file changed

+17
-12
lines changed

src/language_servers/language_server.rs

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ pub trait LanguageServer {
6464
.unwrap_or(true);
6565

6666
if !use_bundler {
67-
return self.extension_gemset_language_server_binary(language_server_id);
67+
return self.try_find_on_path_or_extension_gemset(language_server_id, worktree);
6868
}
6969

7070
let bundler = Bundler::new(worktree.root_path());
@@ -85,18 +85,23 @@ pub trait LanguageServer {
8585
env: Some(worktree.shell_env()),
8686
})
8787
}
88-
Err(_e) => {
89-
// If a requested LS is not available via bundler, check if it's available via PATH
90-
if let Some(path) = worktree.which(Self::EXECUTABLE_NAME) {
91-
return Ok(LanguageServerBinary {
92-
path,
93-
args: Some(Self::get_executable_args()),
94-
env: Some(worktree.shell_env()),
95-
});
96-
}
88+
Err(_e) => self.try_find_on_path_or_extension_gemset(language_server_id, worktree),
89+
}
90+
}
9791

98-
self.extension_gemset_language_server_binary(language_server_id)
99-
}
92+
fn try_find_on_path_or_extension_gemset(
93+
&self,
94+
language_server_id: &LanguageServerId,
95+
worktree: &zed::Worktree,
96+
) -> Result<LanguageServerBinary> {
97+
if let Some(path) = worktree.which(Self::EXECUTABLE_NAME) {
98+
Ok(LanguageServerBinary {
99+
path,
100+
args: Some(Self::get_executable_args()),
101+
env: Some(worktree.shell_env()),
102+
})
103+
} else {
104+
self.extension_gemset_language_server_binary(language_server_id)
100105
}
101106
}
102107

0 commit comments

Comments
 (0)