Add initial package.json
scripts task autodetection (#32497)
Now, every JS/TS-related file will get their package.json script contents added as tasks: <img width="1020" alt="image" src="https://github.com/user-attachments/assets/5bf80f80-fd72-4ba8-8ccf-418872895a25" /> To achieve that, `fn associated_tasks` from the `ContextProvider` was made asynchronous and the related code adjusted. Release Notes: - Added initial `package.json` scripts task autodetection --------- Co-authored-by: Piotr Osiewicz <piotr@zed.dev>
This commit is contained in:
parent
0c0933d1c0
commit
9c513223c4
15 changed files with 782 additions and 661 deletions
|
@ -192,31 +192,33 @@ where
|
|||
task_contexts(workspace, window, cx)
|
||||
})?;
|
||||
let task_contexts = task_contexts.await;
|
||||
let mut tasks = workspace.update(cx, |workspace, cx| {
|
||||
let Some(task_inventory) = workspace
|
||||
.project()
|
||||
.read(cx)
|
||||
.task_store()
|
||||
.read(cx)
|
||||
.task_inventory()
|
||||
.cloned()
|
||||
else {
|
||||
return Vec::new();
|
||||
};
|
||||
let (file, language) = task_contexts
|
||||
.location()
|
||||
.map(|location| {
|
||||
let buffer = location.buffer.read(cx);
|
||||
(
|
||||
buffer.file().cloned(),
|
||||
buffer.language_at(location.range.start),
|
||||
)
|
||||
})
|
||||
.unwrap_or_default();
|
||||
task_inventory
|
||||
.read(cx)
|
||||
.list_tasks(file, language, task_contexts.worktree(), cx)
|
||||
})?;
|
||||
let mut tasks = workspace
|
||||
.update(cx, |workspace, cx| {
|
||||
let Some(task_inventory) = workspace
|
||||
.project()
|
||||
.read(cx)
|
||||
.task_store()
|
||||
.read(cx)
|
||||
.task_inventory()
|
||||
.cloned()
|
||||
else {
|
||||
return Task::ready(Vec::new());
|
||||
};
|
||||
let (file, language) = task_contexts
|
||||
.location()
|
||||
.map(|location| {
|
||||
let buffer = location.buffer.read(cx);
|
||||
(
|
||||
buffer.file().cloned(),
|
||||
buffer.language_at(location.range.start),
|
||||
)
|
||||
})
|
||||
.unwrap_or_default();
|
||||
task_inventory
|
||||
.read(cx)
|
||||
.list_tasks(file, language, task_contexts.worktree(), cx)
|
||||
})?
|
||||
.await;
|
||||
|
||||
let did_spawn = workspace
|
||||
.update_in(cx, |workspace, window, cx| {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue