From e101f4e705f5dd52f0add0a5492a7b11abb7e6d6 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Fri, 8 Jul 2022 16:12:20 -0700 Subject: [PATCH] Run code action's commands if their edits are empty --- crates/project/src/project.rs | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/crates/project/src/project.rs b/crates/project/src/project.rs index e4425e341476dfb4a316bfdc9df5b010e97e0964..231ead4b674ea9cd6352fcd880578f6f76d5cfd2 100644 --- a/crates/project/src/project.rs +++ b/crates/project/src/project.rs @@ -3710,16 +3710,20 @@ impl Project { } if let Some(edit) = action.lsp_action.edit { - Self::deserialize_workspace_edit( - this, - edit, - push_to_history, - lsp_adapter.clone(), - lang_server.clone(), - &mut cx, - ) - .await - } else if let Some(command) = action.lsp_action.command { + if edit.changes.is_some() || edit.document_changes.is_some() { + return Self::deserialize_workspace_edit( + this, + edit, + push_to_history, + 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()); @@ -3731,14 +3735,14 @@ impl Project { ..Default::default() }) .await?; - Ok(this.update(&mut cx, |this, _| { + return Ok(this.update(&mut cx, |this, _| { this.last_workspace_edits_by_language_server .remove(&lang_server.server_id()) .unwrap_or_default() - })) - } else { - Ok(ProjectTransaction::default()) + })); } + + Ok(ProjectTransaction::default()) }) } else if let Some(project_id) = self.remote_id() { let client = self.client.clone();