Reuse already running default prettiers
This commit is contained in:
parent
cf95f9b082
commit
244c693968
1 changed files with 59 additions and 34 deletions
|
@ -8440,31 +8440,43 @@ impl Project {
|
||||||
.await
|
.await
|
||||||
{
|
{
|
||||||
Ok(None) => {
|
Ok(None) => {
|
||||||
project.update(&mut cx, |project, _| {
|
let started_default_prettier =
|
||||||
project
|
project.update(&mut cx, |project, _| {
|
||||||
.prettiers_per_worktree
|
project
|
||||||
.entry(worktree_id)
|
.prettiers_per_worktree
|
||||||
.or_default()
|
.entry(worktree_id)
|
||||||
.insert(None)
|
.or_default()
|
||||||
});
|
.insert(None);
|
||||||
let new_task = project.update(&mut cx, |project, cx| {
|
project.default_prettier.as_ref().and_then(
|
||||||
let new_task = start_prettier(
|
|default_prettier| default_prettier.instance.clone(),
|
||||||
node,
|
)
|
||||||
DEFAULT_PRETTIER_DIR.clone(),
|
});
|
||||||
Some(worktree_id),
|
match started_default_prettier {
|
||||||
cx,
|
Some(old_task) => return Some((None, old_task)),
|
||||||
);
|
None => {
|
||||||
project
|
let new_task = project.update(&mut cx, |project, cx| {
|
||||||
.default_prettier
|
let new_task = start_prettier(
|
||||||
.get_or_insert_with(|| DefaultPrettier {
|
node,
|
||||||
instance: None,
|
DEFAULT_PRETTIER_DIR.clone(),
|
||||||
#[cfg(not(any(test, feature = "test-support")))]
|
Some(worktree_id),
|
||||||
installed_plugins: HashSet::default(),
|
cx,
|
||||||
})
|
);
|
||||||
.instance = Some(new_task.clone());
|
project
|
||||||
new_task
|
.default_prettier
|
||||||
});
|
.get_or_insert_with(|| DefaultPrettier {
|
||||||
return Some((None, new_task));
|
instance: None,
|
||||||
|
#[cfg(not(any(
|
||||||
|
test,
|
||||||
|
feature = "test-support"
|
||||||
|
)))]
|
||||||
|
installed_plugins: HashSet::default(),
|
||||||
|
})
|
||||||
|
.instance = Some(new_task.clone());
|
||||||
|
new_task
|
||||||
|
});
|
||||||
|
return Some((None, new_task));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Ok(Some(prettier_dir)) => {
|
Ok(Some(prettier_dir)) => {
|
||||||
project.update(&mut cx, |project, _| {
|
project.update(&mut cx, |project, _| {
|
||||||
|
@ -8479,6 +8491,9 @@ impl Project {
|
||||||
project.prettier_instances.get(&prettier_dir).cloned()
|
project.prettier_instances.get(&prettier_dir).cloned()
|
||||||
})
|
})
|
||||||
{
|
{
|
||||||
|
log::debug!(
|
||||||
|
"Found already started prettier in {prettier_dir:?}"
|
||||||
|
);
|
||||||
return Some((Some(prettier_dir), existing_prettier));
|
return Some((Some(prettier_dir), existing_prettier));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8510,15 +8525,25 @@ impl Project {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
None => {
|
None => {
|
||||||
let new_task = start_prettier(node, DEFAULT_PRETTIER_DIR.clone(), None, cx);
|
let started_default_prettier = self
|
||||||
self.default_prettier
|
.default_prettier
|
||||||
.get_or_insert_with(|| DefaultPrettier {
|
.as_ref()
|
||||||
instance: None,
|
.and_then(|default_prettier| default_prettier.instance.clone());
|
||||||
#[cfg(not(any(test, feature = "test-support")))]
|
match started_default_prettier {
|
||||||
installed_plugins: HashSet::default(),
|
Some(old_task) => return Task::ready(Some((None, old_task))),
|
||||||
})
|
None => {
|
||||||
.instance = Some(new_task.clone());
|
let new_task =
|
||||||
return Task::ready(Some((None, new_task)));
|
start_prettier(node, DEFAULT_PRETTIER_DIR.clone(), None, cx);
|
||||||
|
self.default_prettier
|
||||||
|
.get_or_insert_with(|| DefaultPrettier {
|
||||||
|
instance: None,
|
||||||
|
#[cfg(not(any(test, feature = "test-support")))]
|
||||||
|
installed_plugins: HashSet::default(),
|
||||||
|
})
|
||||||
|
.instance = Some(new_task.clone());
|
||||||
|
return Task::ready(Some((None, new_task)));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if self.remote_id().is_some() {
|
} else if self.remote_id().is_some() {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue