diff --git a/crates/project/src/project.rs b/crates/project/src/project.rs index c47a809b82..a3475cc23a 100644 --- a/crates/project/src/project.rs +++ b/crates/project/src/project.rs @@ -5279,103 +5279,6 @@ impl Project { self.code_actions_impl(buffer_handle, range, cx) } - pub fn apply_code_actions_on_save( - &self, - buffers: HashSet>, - cx: &mut ModelContext, - ) -> Task> { - if !self.is_local() { - return Task::ready(Ok(Default::default())); - } - - let buffers_with_adapters_and_servers = buffers - .into_iter() - .filter_map(|buffer_handle| { - let buffer = buffer_handle.read(cx); - self.primary_language_server_for_buffer(buffer, cx) - .map(|(a, s)| (buffer_handle, a.clone(), s.clone())) - }) - .collect::>(); - - cx.spawn(move |this, mut cx| async move { - for (buffer_handle, lsp_adapter, lang_server) in buffers_with_adapters_and_servers { - let actions = this - .update(&mut cx, |this, cx| { - let buffer = buffer_handle.read(cx); - let kinds: Vec = - language_settings(buffer.language(), buffer.file(), cx) - .code_actions_on_format - .iter() - .flat_map(|(kind, enabled)| { - if *enabled { - Some(kind.clone().into()) - } else { - None - } - }) - .collect(); - if kinds.is_empty() { - return Task::ready(Ok(vec![])); - } - - this.request_lsp( - buffer_handle.clone(), - LanguageServerToQuery::Other(lang_server.server_id()), - GetCodeActions { - range: text::Anchor::MIN..text::Anchor::MAX, - kinds: Some(kinds), - }, - cx, - ) - })? - .await?; - - for action in actions { - if let Some(edit) = action.lsp_action.edit { - if edit.changes.is_some() || edit.document_changes.is_some() { - return Self::deserialize_workspace_edit( - this.upgrade().ok_or_else(|| anyhow!("no app present"))?, - edit, - true, - lsp_adapter.clone(), - lang_server.clone(), - &mut cx, - ) - .await; - } - } - - if let Some(command) = action.lsp_action.command { - this.update(&mut cx, |this, _| { - this.last_workspace_edits_by_language_server - .remove(&lang_server.server_id()); - })?; - - let result = lang_server - .request::(lsp::ExecuteCommandParams { - command: command.command, - arguments: command.arguments.unwrap_or_default(), - ..Default::default() - }) - .await; - - if let Err(err) = result { - // TODO: LSP ERROR - return Err(err); - } - - return Ok(this.update(&mut cx, |this, _| { - this.last_workspace_edits_by_language_server - .remove(&lang_server.server_id()) - .unwrap_or_default() - })?); - } - } - } - Ok(ProjectTransaction::default()) - }) - } - pub fn apply_code_action( &self, buffer_handle: Model,