mirror of
https://github.com/zed-industries/zed.git
synced 2026-06-01 03:14:56 +07:00
project: Fix LSP requests failing for remotes for builtin servers (#46156)
Closes https://github.com/zed-industries/zed/issues/45928 Release Notes: - Fixed builtin python language servers not correctly working on ssh remotes
This commit is contained in:
parent
583a479f77
commit
6e21fa9a6a
3 changed files with 23 additions and 9 deletions
|
|
@ -408,6 +408,12 @@ impl LanguageRegistry {
|
|||
Some(load_lsp_adapter())
|
||||
}
|
||||
|
||||
/// Checks if a language server adapter with the given name is available to be loaded.
|
||||
pub fn is_lsp_adapter_available(&self, name: &LanguageServerName) -> bool {
|
||||
let state = self.state.read();
|
||||
state.available_lsp_adapters.contains_key(name)
|
||||
}
|
||||
|
||||
pub fn register_lsp_adapter(&self, language_name: LanguageName, adapter: Arc<dyn LspAdapter>) {
|
||||
let mut state = self.state.write();
|
||||
|
||||
|
|
|
|||
|
|
@ -4665,7 +4665,7 @@ impl LspStore {
|
|||
let Some(language) = buffer.read(cx).language().cloned() else {
|
||||
return false;
|
||||
};
|
||||
let relevant_language_servers = self
|
||||
let registered_language_servers = self
|
||||
.languages
|
||||
.lsp_adapters(&language.name())
|
||||
.into_iter()
|
||||
|
|
@ -4674,9 +4674,13 @@ impl LspStore {
|
|||
self.language_server_statuses
|
||||
.iter()
|
||||
.filter_map(|(server_id, server_status)| {
|
||||
relevant_language_servers
|
||||
.contains(&server_status.name)
|
||||
.then_some(server_id)
|
||||
// Include servers that are either registered for this language OR
|
||||
// available to be loaded (for SSH remote mode where adapters like
|
||||
// ty/pylsp/pyright are registered via register_available_lsp_adapter
|
||||
// but only loaded on the server side)
|
||||
let is_relevant = registered_language_servers.contains(&server_status.name)
|
||||
|| self.languages.is_lsp_adapter_available(&server_status.name);
|
||||
is_relevant.then_some(server_id)
|
||||
})
|
||||
.filter_map(|server_id| self.lsp_server_capabilities.get(server_id))
|
||||
.any(check)
|
||||
|
|
@ -4694,7 +4698,7 @@ impl LspStore {
|
|||
let Some(language) = buffer.read(cx).language().cloned() else {
|
||||
return Vec::default();
|
||||
};
|
||||
let relevant_language_servers = self
|
||||
let registered_language_servers = self
|
||||
.languages
|
||||
.lsp_adapters(&language.name())
|
||||
.into_iter()
|
||||
|
|
@ -4703,9 +4707,13 @@ impl LspStore {
|
|||
self.language_server_statuses
|
||||
.iter()
|
||||
.filter_map(|(server_id, server_status)| {
|
||||
relevant_language_servers
|
||||
.contains(&server_status.name)
|
||||
.then_some((server_id, &server_status.name))
|
||||
// Include servers that are either registered for this language OR
|
||||
// available to be loaded (for SSH remote mode where adapters like
|
||||
// ty/pylsp/pyright are registered via register_available_lsp_adapter
|
||||
// but only loaded on the server side)
|
||||
let is_relevant = registered_language_servers.contains(&server_status.name)
|
||||
|| self.languages.is_lsp_adapter_available(&server_status.name);
|
||||
is_relevant.then_some((server_id, &server_status.name))
|
||||
})
|
||||
.filter_map(|(server_id, server_name)| {
|
||||
self.lsp_server_capabilities
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ fn main() {
|
|||
let open_console_target = target_dir.join("OpenConsole.exe");
|
||||
|
||||
let conpty_url = "https://github.com/microsoft/terminal/releases/download/v1.23.13503.0/Microsoft.Windows.Console.ConPTY.1.23.251216003.nupkg";
|
||||
let nupkg_path = out_dir.join("conpty.nupkg");
|
||||
let nupkg_path = out_dir.join("conpty.nupkg.zip");
|
||||
let extract_dir = out_dir.join("conpty");
|
||||
|
||||
let download_script = format!(
|
||||
|
|
|
|||
Loading…
Reference in a new issue