mirror of https://github.com/helix-editor/helix
Replace if let with early return
parent
f0cd02d5ef
commit
e90276df0b
|
@ -3494,47 +3494,48 @@ pub fn code_action(cx: &mut Context) {
|
||||||
move |editor: &mut Editor,
|
move |editor: &mut Editor,
|
||||||
compositor: &mut Compositor,
|
compositor: &mut Compositor,
|
||||||
response: Option<lsp::CodeActionResponse>| {
|
response: Option<lsp::CodeActionResponse>| {
|
||||||
if let Some(actions) = response {
|
let actions = match response {
|
||||||
if actions.is_empty() {
|
Some(a) => a,
|
||||||
editor.set_status("No code actions available".to_owned());
|
None => return,
|
||||||
|
};
|
||||||
|
if actions.is_empty() {
|
||||||
|
editor.set_status("No code actions available".to_owned());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
let picker = ui::Menu::new(actions, move |editor, code_action, event| {
|
||||||
|
if event != PromptEvent::Validate {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
let picker = ui::Menu::new(actions, move |editor, code_action, event| {
|
// always present here
|
||||||
if event != PromptEvent::Validate {
|
let code_action = code_action.unwrap();
|
||||||
return;
|
|
||||||
|
match code_action {
|
||||||
|
lsp::CodeActionOrCommand::Command(command) => {
|
||||||
|
log::debug!("code action command: {:?}", command);
|
||||||
|
execute_lsp_command(editor, command.clone());
|
||||||
}
|
}
|
||||||
|
lsp::CodeActionOrCommand::CodeAction(code_action) => {
|
||||||
|
log::debug!("code action: {:?}", code_action);
|
||||||
|
if let Some(ref workspace_edit) = code_action.edit {
|
||||||
|
log::debug!("edit: {:?}", workspace_edit);
|
||||||
|
apply_workspace_edit(editor, offset_encoding, workspace_edit);
|
||||||
|
}
|
||||||
|
|
||||||
// always present here
|
// if code action provides both edit and command first the edit
|
||||||
let code_action = code_action.unwrap();
|
// should be applied and then the command
|
||||||
|
if let Some(command) = &code_action.command {
|
||||||
match code_action {
|
|
||||||
lsp::CodeActionOrCommand::Command(command) => {
|
|
||||||
log::debug!("code action command: {:?}", command);
|
|
||||||
execute_lsp_command(editor, command.clone());
|
execute_lsp_command(editor, command.clone());
|
||||||
}
|
}
|
||||||
lsp::CodeActionOrCommand::CodeAction(code_action) => {
|
|
||||||
log::debug!("code action: {:?}", code_action);
|
|
||||||
if let Some(ref workspace_edit) = code_action.edit {
|
|
||||||
log::debug!("edit: {:?}", workspace_edit);
|
|
||||||
apply_workspace_edit(editor, offset_encoding, workspace_edit);
|
|
||||||
}
|
|
||||||
|
|
||||||
// if code action provides both edit and command first the edit
|
|
||||||
// should be applied and then the command
|
|
||||||
if let Some(command) = &code_action.command {
|
|
||||||
execute_lsp_command(editor, command.clone());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
let popup =
|
});
|
||||||
Popup::new("code-action", picker).margin(helix_view::graphics::Margin {
|
let popup = Popup::new("code-action", picker).margin(helix_view::graphics::Margin {
|
||||||
vertical: 1,
|
vertical: 1,
|
||||||
horizontal: 1,
|
horizontal: 1,
|
||||||
});
|
});
|
||||||
compositor.push(Box::new(popup))
|
compositor.push(Box::new(popup))
|
||||||
}
|
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue