Skip to content

Commit

Permalink
Add Vue language server auto update (zed-industries#9474)
Browse files Browse the repository at this point in the history
For zed-industries#9401

---------

Co-authored-by: Joseph T. Lyons <JosephTLyons@gmail.com>
  • Loading branch information
2 people authored and pjlast committed Mar 26, 2024
1 parent 7f76866 commit dd2e189
Showing 1 changed file with 29 additions and 6 deletions.
35 changes: 29 additions & 6 deletions crates/languages/src/vue.rs
Expand Up @@ -79,31 +79,54 @@ impl super::LspAdapter for VueLspAdapter {
}
async fn fetch_server_binary(
&self,
version: Box<dyn 'static + Send + Any>,
latest_version: Box<dyn 'static + Send + Any>,
container_dir: PathBuf,
_: &dyn LspAdapterDelegate,
) -> Result<LanguageServerBinary> {
let version = version.downcast::<VueLspVersion>().unwrap();
let latest_version = latest_version.downcast::<VueLspVersion>().unwrap();
let server_path = container_dir.join(Self::SERVER_PATH);
let ts_path = container_dir.join(Self::TYPESCRIPT_PATH);

if fs::metadata(&server_path).await.is_err() {
let vue_package_name = "@vue/language-server";
let should_install_vue_language_server = self
.node
.should_install_npm_package(
vue_package_name,
&server_path,
&container_dir,
&latest_version.vue_version,
)
.await;

if should_install_vue_language_server {
self.node
.npm_install_packages(
&container_dir,
&[("@vue/language-server", version.vue_version.as_str())],
&[(vue_package_name, latest_version.vue_version.as_str())],
)
.await?;
}
ensure!(
fs::metadata(&server_path).await.is_ok(),
"@vue/language-server package installation failed"
);
if fs::metadata(&ts_path).await.is_err() {

let ts_package_name = "typescript";
let should_install_ts_language_server = self
.node
.should_install_npm_package(
ts_package_name,
&server_path,
&container_dir,
&latest_version.ts_version,
)
.await;

if should_install_ts_language_server {
self.node
.npm_install_packages(
&container_dir,
&[("typescript", version.ts_version.as_str())],
&[(ts_package_name, latest_version.ts_version.as_str())],
)
.await?;
}
Expand Down

0 comments on commit dd2e189

Please sign in to comment.