From 5b6401519bb731f839c05831927821df03d74d3e Mon Sep 17 00:00:00 2001 From: Thorsten Ball Date: Thu, 31 Oct 2024 14:33:36 +0100 Subject: [PATCH] activity indicator: Reset formatting failure on click (#20029) Release Notes: - N/A --- crates/activity_indicator/src/activity_indicator.rs | 5 ++++- crates/project/src/lsp_store.rs | 4 ++++ crates/project/src/project.rs | 5 +++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/crates/activity_indicator/src/activity_indicator.rs b/crates/activity_indicator/src/activity_indicator.rs index 90410d534cb31b053e8cb0bdf527366fdd428366..f06ebe4b232d6521322ed8fdfa3c8a54bd6fef05 100644 --- a/crates/activity_indicator/src/activity_indicator.rs +++ b/crates/activity_indicator/src/activity_indicator.rs @@ -352,7 +352,10 @@ impl ActivityIndicator { .into_any_element(), ), message: format!("Formatting failed: {}. Click to see logs.", failure), - on_click: Some(Arc::new(|_, cx| { + on_click: Some(Arc::new(|indicator, cx| { + indicator.project.update(cx, |project, cx| { + project.reset_last_formatting_failure(cx); + }); cx.dispatch_action(Box::new(workspace::OpenLog)); })), }); diff --git a/crates/project/src/lsp_store.rs b/crates/project/src/lsp_store.rs index fe4127d5364fe55da42b8dd91f84e8f42a88ebe3..bc0bfdf4165064d07f50119ac72948da04355755 100644 --- a/crates/project/src/lsp_store.rs +++ b/crates/project/src/lsp_store.rs @@ -5270,6 +5270,10 @@ impl LspStore { self.last_formatting_failure.as_deref() } + pub fn reset_last_formatting_failure(&mut self) { + self.last_formatting_failure = None; + } + pub fn environment_for_buffer( &self, buffer: &Model, diff --git a/crates/project/src/project.rs b/crates/project/src/project.rs index 788de669963fc4885d756339d434224cdfeeb4f9..41b5f8bfbc0acd6e8bb05cb25b92601da14c7c3d 100644 --- a/crates/project/src/project.rs +++ b/crates/project/src/project.rs @@ -2414,6 +2414,11 @@ impl Project { self.lsp_store.read(cx).last_formatting_failure() } + pub fn reset_last_formatting_failure(&self, cx: &mut AppContext) { + self.lsp_store + .update(cx, |store, _| store.reset_last_formatting_failure()); + } + pub fn update_diagnostics( &mut self, language_server_id: LanguageServerId,