# Implement updating for node-based language servers \(\#9361\) · gitcafe/zed

[View on GitCafe](https://git.cafe/gitcafe/zed/commit/276139f792f8c88564d252908dd41fa502fd6695)

Repository: [gitcafe/zed](https://git.cafe/gitcafe/zed)

Visibility: public

Requested revision: 276139f792f8c88564d252908dd41fa502fd6695

Requested commit: 276139f792f8c88564d252908dd41fa502fd6695

Commit: 276139f792f8c88564d252908dd41fa502fd6695

Tree: 3a6e39505dd4838e8f78e145d432fbb16360648a

Author: Joseph T\. Lyons

Committer: GitHub

## Message

```
Implement updating for node-based language servers (#9361)

Fixes: https://github.com/zed-industries/zed/issues/9234

This doesn't address `vue` as it has a slightly different install code,
but it should be fairly simple to add - I'll add it in in a follow-up.

This PR will allow all (except `vue`) node-based language servers to
update. It is mostly just throwing in a method into the `NodeRuntime`
trait that is used for checking if a package doesn't exist locally, or
is out of date, by checking the version against what's newest, and
installing. If any parsing of the `package.json` data fails along the
way, it assumes something has gone awry on the users system, logs the
error, and then proceeds with trying to install the package, so that
users don't get stuck on version if their package has some bad data.
Outside of adding this method, it just adds that check in all of the
language server's individual `fetch_server_binary` methods.

Release Notes:

- Added updating for node-based language servers
([#9234](https://github.com/zed-industries/zed/issues/9234)).
```

## Parents

- [cb160031336be6dcf8e965d66d74e12ed29f5ecd](https://git.cafe/gitcafe/zed/commit/cb160031336be6dcf8e965d66d74e12ed29f5ecd?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zed/tree/276139f792f8c88564d252908dd41fa502fd6695?format=markdown)
