Simplify
This commit is contained in:
parent
ff144def63
commit
b75d8a60a8
1 changed files with 27 additions and 54 deletions
|
@ -8448,7 +8448,8 @@ impl Project {
|
|||
{
|
||||
Ok(None) => {
|
||||
let new_task = project.update(&mut cx, |project, cx| {
|
||||
let new_task = spawn_default_prettier(node, cx);
|
||||
let new_task =
|
||||
start_prettier(node, DEFAULT_PRETTIER_DIR.clone(), cx);
|
||||
project
|
||||
.default_prettier
|
||||
.get_or_insert_with(|| DefaultPrettier {
|
||||
|
@ -8480,35 +8481,13 @@ impl Project {
|
|||
}
|
||||
|
||||
log::info!("Found prettier in {prettier_dir:?}, starting.");
|
||||
let task_prettier_dir = prettier_dir.clone();
|
||||
let task_project = project.clone();
|
||||
let new_server_id = project.update(&mut cx, |this, _| {
|
||||
this.languages.next_language_server_id()
|
||||
});
|
||||
let new_prettier_task = cx
|
||||
.spawn(|mut cx| async move {
|
||||
let prettier = Prettier::start(
|
||||
new_server_id,
|
||||
task_prettier_dir,
|
||||
node,
|
||||
cx.clone(),
|
||||
)
|
||||
.await
|
||||
.context("prettier start")
|
||||
.map_err(Arc::new)?;
|
||||
register_new_prettier(
|
||||
&task_project,
|
||||
&prettier,
|
||||
new_server_id,
|
||||
&mut cx,
|
||||
);
|
||||
Ok(Arc::new(prettier)).map_err(Arc::new)
|
||||
})
|
||||
.shared();
|
||||
project.update(&mut cx, |project, _| {
|
||||
let new_prettier_task = project.update(&mut cx, |project, cx| {
|
||||
let new_prettier_task =
|
||||
start_prettier(node, prettier_dir.clone(), cx);
|
||||
project
|
||||
.prettier_instances
|
||||
.insert(prettier_dir.clone(), new_prettier_task.clone());
|
||||
new_prettier_task
|
||||
});
|
||||
Some((Some(prettier_dir), new_prettier_task))
|
||||
}
|
||||
|
@ -8516,7 +8495,7 @@ impl Project {
|
|||
});
|
||||
}
|
||||
None => {
|
||||
let new_task = spawn_default_prettier(node, cx);
|
||||
let new_task = start_prettier(node, DEFAULT_PRETTIER_DIR.clone(), cx);
|
||||
self.default_prettier
|
||||
.get_or_insert_with(|| DefaultPrettier {
|
||||
instance: None,
|
||||
|
@ -8657,6 +8636,26 @@ impl Project {
|
|||
}
|
||||
}
|
||||
|
||||
fn start_prettier(
|
||||
node: Arc<dyn NodeRuntime>,
|
||||
prettier_dir: PathBuf,
|
||||
cx: &mut ModelContext<'_, Project>,
|
||||
) -> Shared<Task<Result<Arc<Prettier>, Arc<anyhow::Error>>>> {
|
||||
cx.spawn(|project, mut cx| async move {
|
||||
let new_server_id = project.update(&mut cx, |project, _| {
|
||||
project.languages.next_language_server_id()
|
||||
});
|
||||
let new_prettier = Prettier::start(new_server_id, prettier_dir, node, cx.clone())
|
||||
.await
|
||||
.context("default prettier spawn")
|
||||
.map(Arc::new)
|
||||
.map_err(Arc::new)?;
|
||||
register_new_prettier(&project, &new_prettier, new_server_id, &mut cx);
|
||||
Ok(new_prettier)
|
||||
})
|
||||
.shared()
|
||||
}
|
||||
|
||||
fn register_new_prettier(
|
||||
project: &ModelHandle<Project>,
|
||||
prettier: &Prettier,
|
||||
|
@ -8682,32 +8681,6 @@ fn register_new_prettier(
|
|||
}
|
||||
}
|
||||
|
||||
fn spawn_default_prettier(
|
||||
node: Arc<dyn NodeRuntime>,
|
||||
cx: &mut ModelContext<'_, Project>,
|
||||
) -> Shared<Task<Result<Arc<Prettier>, Arc<anyhow::Error>>>> {
|
||||
cx.spawn(|project, mut cx| async move {
|
||||
let new_server_id = project.update(&mut cx, |project, _| {
|
||||
project.languages.next_language_server_id()
|
||||
});
|
||||
let new_prettier = Prettier::start(
|
||||
new_server_id,
|
||||
DEFAULT_PRETTIER_DIR.clone(),
|
||||
node,
|
||||
cx.clone(),
|
||||
)
|
||||
.await
|
||||
.context("default prettier spawn")
|
||||
.map(Arc::new)
|
||||
.map_err(Arc::new)?;
|
||||
|
||||
register_new_prettier(&project, &new_prettier, new_server_id, &mut cx);
|
||||
|
||||
Ok(new_prettier)
|
||||
})
|
||||
.shared()
|
||||
}
|
||||
|
||||
#[cfg(not(any(test, feature = "test-support")))]
|
||||
async fn install_default_prettier(
|
||||
plugins_to_install: HashSet<&'static str>,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue