Skip to content

Commit b168ff0

Browse files
committed
Cleanup code to remove duplications
Signed-off-by: Pratik Karki <pratik@prertik.com> diff --git a/crates/project/src/lsp_store.rs b/crates/project/src/lsp_store.rs index b28d540..4caa301 100644 --- a/crates/project/src/lsp_store.rs +++ b/crates/project/src/lsp_store.rs @@ -2337,20 +2337,11 @@ impl LocalLspStore { } } - fn server_capabilities_support_range_formatting( - capabilities: &lsp::ServerCapabilities, - ) -> bool { - matches!( - capabilities.document_range_formatting_provider.as_ref(), - Some(provider) if *provider != OneOf::Left(false) - ) - } - fn server_supports_formatting(server: &Arc<LanguageServer>) -> bool { let capabilities = server.capabilities(); let formatting = capabilities.document_formatting_provider.as_ref(); matches!(formatting, Some(p) if *p != OneOf::Left(false)) - || Self::server_capabilities_support_range_formatting(&capabilities) + || server_capabilities_support_range_formatting(&capabilities) } async fn format_via_lsp( @@ -5118,15 +5109,6 @@ impl LspStore { self.check_if_any_relevant_server_matches(buffer, |_, capabilities| check(capabilities), cx) } - fn server_capabilities_support_range_formatting( - capabilities: &lsp::ServerCapabilities, - ) -> bool { - matches!( - capabilities.document_range_formatting_provider.as_ref(), - Some(provider) if *provider != OneOf::Left(false) - ) - } - fn formatter_supports_range_formatting( &self, formatter: &Formatter, @@ -5140,7 +5122,7 @@ impl LspStore { settings.prettier.allowed || self.check_if_capable_for_proto_request( buffer, - Self::server_capabilities_support_range_formatting, + server_capabilities_support_range_formatting, cx, ) } @@ -5149,7 +5131,7 @@ impl LspStore { Formatter::LanguageServer(settings::LanguageServerFormatterSpecifier::Current) => self .check_if_capable_for_proto_request( buffer, - Self::server_capabilities_support_range_formatting, + server_capabilities_support_range_formatting, cx, ), Formatter::LanguageServer(settings::LanguageServerFormatterSpecifier::Specific { @@ -5158,7 +5140,7 @@ impl LspStore { buffer, |server_status, capabilities| { server_status.name.0.as_ref() == name - && Self::server_capabilities_support_range_formatting(capabilities) + && server_capabilities_support_range_formatting(capabilities) }, cx, ), @@ -5214,23 +5196,6 @@ impl LspStore { .insert(language_server_id); } - fn remove_language_server_registration_for_buffer( - &mut self, - buffer_id: BufferId, - language_server_id: LanguageServerId, - ) { - if let Some(language_servers) = self - .registered_language_servers_by_buffer - .get_mut(&buffer_id) - { - language_servers.remove(&language_server_id); - if language_servers.is_empty() { - self.registered_language_servers_by_buffer - .remove(&buffer_id); - } - } - } - fn clear_language_server_registrations_for_buffer(&mut self, buffer_id: BufferId) { self.registered_language_servers_by_buffer .remove(&buffer_id); @@ -12364,16 +12329,11 @@ impl LspStore { for lsp_data in self.lsp_data.values_mut() { lsp_data.remove_server_data(for_server); } - let buffer_ids = self - .registered_language_servers_by_buffer - .iter() - .filter_map(|(buffer_id, language_servers)| { - language_servers.contains(&for_server).then_some(*buffer_id) - }) - .collect::<Vec<_>>(); - for buffer_id in buffer_ids { - self.remove_language_server_registration_for_buffer(buffer_id, for_server); - } + self.registered_language_servers_by_buffer + .retain(|_, servers| { + servers.remove(&for_server); + !servers.is_empty() + }); if let Some(local) = self.as_local_mut() { local.buffer_pull_diagnostics_result_ids.remove(&for_server); local @@ -13477,6 +13437,13 @@ fn parse_register_capabilities<T: serde::de::DeserializeOwned>( }) } +fn server_capabilities_support_range_formatting(capabilities: &lsp::ServerCapabilities) -> bool { + matches!( + capabilities.document_range_formatting_provider.as_ref(), + Some(provider) if *provider != OneOf::Left(false) + ) +} + fn subscribe_to_binary_statuses( languages: &Arc<LanguageRegistry>, cx: &mut Context<'_, LspStore>,
1 parent 918c369 commit b168ff0

1 file changed

Lines changed: 16 additions & 49 deletions

File tree

crates/project/src/lsp_store.rs

Lines changed: 16 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -2337,20 +2337,11 @@ impl LocalLspStore {
23372337
}
23382338
}
23392339

2340-
fn server_capabilities_support_range_formatting(
2341-
capabilities: &lsp::ServerCapabilities,
2342-
) -> bool {
2343-
matches!(
2344-
capabilities.document_range_formatting_provider.as_ref(),
2345-
Some(provider) if *provider != OneOf::Left(false)
2346-
)
2347-
}
2348-
23492340
fn server_supports_formatting(server: &Arc<LanguageServer>) -> bool {
23502341
let capabilities = server.capabilities();
23512342
let formatting = capabilities.document_formatting_provider.as_ref();
23522343
matches!(formatting, Some(p) if *p != OneOf::Left(false))
2353-
|| Self::server_capabilities_support_range_formatting(&capabilities)
2344+
|| server_capabilities_support_range_formatting(&capabilities)
23542345
}
23552346

23562347
async fn format_via_lsp(
@@ -5118,15 +5109,6 @@ impl LspStore {
51185109
self.check_if_any_relevant_server_matches(buffer, |_, capabilities| check(capabilities), cx)
51195110
}
51205111

5121-
fn server_capabilities_support_range_formatting(
5122-
capabilities: &lsp::ServerCapabilities,
5123-
) -> bool {
5124-
matches!(
5125-
capabilities.document_range_formatting_provider.as_ref(),
5126-
Some(provider) if *provider != OneOf::Left(false)
5127-
)
5128-
}
5129-
51305112
fn formatter_supports_range_formatting(
51315113
&self,
51325114
formatter: &Formatter,
@@ -5140,7 +5122,7 @@ impl LspStore {
51405122
settings.prettier.allowed
51415123
|| self.check_if_capable_for_proto_request(
51425124
buffer,
5143-
Self::server_capabilities_support_range_formatting,
5125+
server_capabilities_support_range_formatting,
51445126
cx,
51455127
)
51465128
}
@@ -5149,7 +5131,7 @@ impl LspStore {
51495131
Formatter::LanguageServer(settings::LanguageServerFormatterSpecifier::Current) => self
51505132
.check_if_capable_for_proto_request(
51515133
buffer,
5152-
Self::server_capabilities_support_range_formatting,
5134+
server_capabilities_support_range_formatting,
51535135
cx,
51545136
),
51555137
Formatter::LanguageServer(settings::LanguageServerFormatterSpecifier::Specific {
@@ -5158,7 +5140,7 @@ impl LspStore {
51585140
buffer,
51595141
|server_status, capabilities| {
51605142
server_status.name.0.as_ref() == name
5161-
&& Self::server_capabilities_support_range_formatting(capabilities)
5143+
&& server_capabilities_support_range_formatting(capabilities)
51625144
},
51635145
cx,
51645146
),
@@ -5214,23 +5196,6 @@ impl LspStore {
52145196
.insert(language_server_id);
52155197
}
52165198

5217-
fn remove_language_server_registration_for_buffer(
5218-
&mut self,
5219-
buffer_id: BufferId,
5220-
language_server_id: LanguageServerId,
5221-
) {
5222-
if let Some(language_servers) = self
5223-
.registered_language_servers_by_buffer
5224-
.get_mut(&buffer_id)
5225-
{
5226-
language_servers.remove(&language_server_id);
5227-
if language_servers.is_empty() {
5228-
self.registered_language_servers_by_buffer
5229-
.remove(&buffer_id);
5230-
}
5231-
}
5232-
}
5233-
52345199
fn clear_language_server_registrations_for_buffer(&mut self, buffer_id: BufferId) {
52355200
self.registered_language_servers_by_buffer
52365201
.remove(&buffer_id);
@@ -12364,16 +12329,11 @@ impl LspStore {
1236412329
for lsp_data in self.lsp_data.values_mut() {
1236512330
lsp_data.remove_server_data(for_server);
1236612331
}
12367-
let buffer_ids = self
12368-
.registered_language_servers_by_buffer
12369-
.iter()
12370-
.filter_map(|(buffer_id, language_servers)| {
12371-
language_servers.contains(&for_server).then_some(*buffer_id)
12372-
})
12373-
.collect::<Vec<_>>();
12374-
for buffer_id in buffer_ids {
12375-
self.remove_language_server_registration_for_buffer(buffer_id, for_server);
12376-
}
12332+
self.registered_language_servers_by_buffer
12333+
.retain(|_, servers| {
12334+
servers.remove(&for_server);
12335+
!servers.is_empty()
12336+
});
1237712337
if let Some(local) = self.as_local_mut() {
1237812338
local.buffer_pull_diagnostics_result_ids.remove(&for_server);
1237912339
local
@@ -13477,6 +13437,13 @@ fn parse_register_capabilities<T: serde::de::DeserializeOwned>(
1347713437
})
1347813438
}
1347913439

13440+
fn server_capabilities_support_range_formatting(capabilities: &lsp::ServerCapabilities) -> bool {
13441+
matches!(
13442+
capabilities.document_range_formatting_provider.as_ref(),
13443+
Some(provider) if *provider != OneOf::Left(false)
13444+
)
13445+
}
13446+
1348013447
fn subscribe_to_binary_statuses(
1348113448
languages: &Arc<LanguageRegistry>,
1348213449
cx: &mut Context<'_, LspStore>,

0 commit comments

Comments
 (0)