Use LanguageServerName in more places (#18167)
This pushes the new LanguageServerName type to more places. As both languages and language servers were identified by Arc<str>, it was sometimes hard to tell which was intended. Release Notes: - N/A
This commit is contained in:
parent
743feb98bc
commit
4f227fd3bf
20 changed files with 150 additions and 85 deletions
|
@ -103,7 +103,7 @@ pub struct LocalLspStore {
|
|||
supplementary_language_servers:
|
||||
HashMap<LanguageServerId, (LanguageServerName, Arc<LanguageServer>)>,
|
||||
prettier_store: Model<PrettierStore>,
|
||||
current_lsp_settings: HashMap<Arc<str>, LspSettings>,
|
||||
current_lsp_settings: HashMap<LanguageServerName, LspSettings>,
|
||||
_subscription: gpui::Subscription,
|
||||
}
|
||||
|
||||
|
@ -138,7 +138,7 @@ impl RemoteLspStore {}
|
|||
|
||||
pub struct SshLspStore {
|
||||
upstream_client: AnyProtoClient,
|
||||
current_lsp_settings: HashMap<Arc<str>, LspSettings>,
|
||||
current_lsp_settings: HashMap<LanguageServerName, LspSettings>,
|
||||
}
|
||||
|
||||
#[allow(clippy::large_enum_variant)]
|
||||
|
@ -316,8 +316,8 @@ impl LspStore {
|
|||
|
||||
pub fn swap_current_lsp_settings(
|
||||
&mut self,
|
||||
new_settings: HashMap<Arc<str>, LspSettings>,
|
||||
) -> Option<HashMap<Arc<str>, LspSettings>> {
|
||||
new_settings: HashMap<LanguageServerName, LspSettings>,
|
||||
) -> Option<HashMap<LanguageServerName, LspSettings>> {
|
||||
match &mut self.mode {
|
||||
LspStoreMode::Ssh(SshLspStore {
|
||||
current_lsp_settings,
|
||||
|
@ -933,7 +933,7 @@ impl LspStore {
|
|||
if !language_settings(Some(language), file.as_ref(), cx).enable_language_server {
|
||||
language_servers_to_stop.push((worktree_id, started_lsp_name.clone()));
|
||||
} else if let Some(worktree) = worktree {
|
||||
let server_name = &adapter.name.0;
|
||||
let server_name = &adapter.name;
|
||||
match (
|
||||
current_lsp_settings.get(server_name),
|
||||
new_lsp_settings.get(server_name),
|
||||
|
@ -4765,7 +4765,7 @@ impl LspStore {
|
|||
let project_id = self.project_id;
|
||||
let worktree_id = worktree.read(cx).id().to_proto();
|
||||
let upstream_client = ssh.upstream_client.clone();
|
||||
let name = adapter.name().to_string();
|
||||
let name = adapter.name();
|
||||
|
||||
let Some(available_language) = self.languages.available_language_for_name(&language) else {
|
||||
log::error!("failed to find available language {language}");
|
||||
|
@ -4783,7 +4783,7 @@ impl LspStore {
|
|||
}
|
||||
};
|
||||
|
||||
let name = adapter.name().to_string();
|
||||
let name = adapter.name();
|
||||
let code_action_kinds = adapter
|
||||
.adapter
|
||||
.code_action_kinds()
|
||||
|
@ -4809,7 +4809,7 @@ impl LspStore {
|
|||
.request(proto::CreateLanguageServer {
|
||||
project_id,
|
||||
worktree_id,
|
||||
name,
|
||||
name: name.0.to_string(),
|
||||
binary: Some(language_server_command),
|
||||
initialization_options,
|
||||
code_action_kinds,
|
||||
|
@ -4892,7 +4892,7 @@ impl LspStore {
|
|||
);
|
||||
|
||||
// We need some on the SSH client, and some on SSH host
|
||||
let lsp = project_settings.lsp.get(&adapter.name.0);
|
||||
let lsp = project_settings.lsp.get(&adapter.name);
|
||||
let override_options = lsp.and_then(|s| s.initialization_options.clone());
|
||||
|
||||
let server_id = pending_server.server_id;
|
||||
|
@ -5078,7 +5078,7 @@ impl LspStore {
|
|||
|
||||
async fn shutdown_language_server(
|
||||
server_state: Option<LanguageServerState>,
|
||||
name: Arc<str>,
|
||||
name: LanguageServerName,
|
||||
cx: AsyncAppContext,
|
||||
) {
|
||||
let server = match server_state {
|
||||
|
@ -5123,7 +5123,7 @@ impl LspStore {
|
|||
let key = (worktree_id, adapter_name);
|
||||
if self.mode.is_local() {
|
||||
if let Some(server_id) = self.language_server_ids.remove(&key) {
|
||||
let name = key.1 .0;
|
||||
let name = key.1;
|
||||
log::info!("stopping language server {name}");
|
||||
|
||||
// Remove other entries for this language server as well
|
||||
|
@ -7168,7 +7168,7 @@ impl LspAdapter for SshLspAdapter {
|
|||
}
|
||||
pub fn language_server_settings<'a, 'b: 'a>(
|
||||
delegate: &'a dyn LspAdapterDelegate,
|
||||
language: &str,
|
||||
language: &LanguageServerName,
|
||||
cx: &'b AppContext,
|
||||
) -> Option<&'a LspSettings> {
|
||||
ProjectSettings::get(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue