dap: Simplify launch & start

There's no need to re-detect language config, just use the one available
on the document.
This commit is contained in:
Blaž Hrastnik 2021-11-07 21:26:03 +09:00
parent 4f2a01cc09
commit 65868081fc

View File

@ -165,19 +165,10 @@ pub fn dap_start_impl(
socket: Option<std::net::SocketAddr>,
params: Option<Vec<&str>>,
) {
let (_, doc) = current!(editor);
let doc = doc!(editor);
let path = match doc.path() {
Some(path) => path,
None => {
editor.set_error("Can't start debug: document has no path".to_string());
return;
}
};
let language_config = editor.syn_loader.language_config_for_file_name(path);
let config = match language_config
.as_deref()
let config = match doc
.language_config()
.and_then(|config| config.debugger.as_ref())
{
Some(c) => c,
@ -283,7 +274,8 @@ pub fn dap_start_impl(
}
};
if let Err(e) = result {
editor.set_error(format!("Failed {} target: {}", start_config.request, e));
let msg = format!("Failed {} target: {}", start_config.request, e);
editor.set_error(msg);
return;
}
@ -300,19 +292,10 @@ pub fn dap_launch(cx: &mut Context) {
return;
}
let (_, doc) = current!(cx.editor);
let path = match doc.path() {
Some(path) => path,
None => {
cx.editor
.set_error("Can't start debug: document has no path".to_string());
return;
}
};
let doc = doc!(cx.editor);
let language_config = cx.editor.syn_loader.language_config_for_file_name(path);
let config = match language_config
.as_deref()
let config = match doc
.language_config()
.and_then(|config| config.debugger.as_ref())
{
Some(c) => c,
@ -324,9 +307,11 @@ pub fn dap_launch(cx: &mut Context) {
}
};
let templates = config.templates.clone();
cx.push_layer(Box::new(Picker::new(
true,
config.templates.clone(),
templates,
|template| template.name.as_str().into(),
|cx, template, _action| {
let completions = template.completion.clone();