mirror of
https://github.com/zed-industries/zed.git
synced 2024-11-08 07:35:01 +03:00
Remove dead apply_code_actions_on_save
code (#8488)
I think this was a left-over from when Conrad and I worked on this but then it was changed to work with `format`. Release Notes: - N/A
This commit is contained in:
parent
83bc24b480
commit
3036c0cab7
@ -5279,103 +5279,6 @@ impl Project {
|
|||||||
self.code_actions_impl(buffer_handle, range, cx)
|
self.code_actions_impl(buffer_handle, range, cx)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn apply_code_actions_on_save(
|
|
||||||
&self,
|
|
||||||
buffers: HashSet<Model<Buffer>>,
|
|
||||||
cx: &mut ModelContext<Self>,
|
|
||||||
) -> Task<Result<ProjectTransaction>> {
|
|
||||||
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::<Vec<_>>();
|
|
||||||
|
|
||||||
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<lsp::CodeActionKind> =
|
|
||||||
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::request::ExecuteCommand>(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(
|
pub fn apply_code_action(
|
||||||
&self,
|
&self,
|
||||||
buffer_handle: Model<Buffer>,
|
buffer_handle: Model<Buffer>,
|
||||||
|
Loading…
Reference in New Issue
Block a user