Trust NPM instead of managing dirs for different Node server versions
This commit is contained in:
parent
c19e6f8f0e
commit
8c0db17634
5 changed files with 17 additions and 53 deletions
|
@ -1,4 +1,4 @@
|
|||
use anyhow::{anyhow, Context, Result};
|
||||
use anyhow::{anyhow, Result};
|
||||
use async_trait::async_trait;
|
||||
use collections::HashMap;
|
||||
use futures::{future::BoxFuture, FutureExt, StreamExt};
|
||||
|
@ -16,7 +16,7 @@ use std::{
|
|||
sync::Arc,
|
||||
};
|
||||
use theme::ThemeRegistry;
|
||||
use util::{fs::remove_matching, http::HttpClient};
|
||||
use util::http::HttpClient;
|
||||
use util::{paths, ResultExt, StaffMode};
|
||||
|
||||
const SERVER_PATH: &'static str =
|
||||
|
@ -70,21 +70,15 @@ impl LspAdapter for JsonLspAdapter {
|
|||
container_dir: PathBuf,
|
||||
) -> Result<LanguageServerBinary> {
|
||||
let version = version.downcast::<String>().unwrap();
|
||||
let version_dir = container_dir.join(version.as_str());
|
||||
fs::create_dir_all(&version_dir)
|
||||
.await
|
||||
.context("failed to create version directory")?;
|
||||
let server_path = version_dir.join(SERVER_PATH);
|
||||
let server_path = container_dir.join(SERVER_PATH);
|
||||
|
||||
if fs::metadata(&server_path).await.is_err() {
|
||||
self.node
|
||||
.npm_install_packages(
|
||||
[("vscode-json-languageserver", version.as_str())],
|
||||
&version_dir,
|
||||
&container_dir,
|
||||
)
|
||||
.await?;
|
||||
|
||||
remove_matching(&container_dir, |entry| entry != version_dir).await;
|
||||
}
|
||||
|
||||
Ok(LanguageServerBinary {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue