# Allow wasm extensions to do arbitrary file I/O in their own directory to install language servers \(\#9043\) · gitcafe/zed

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

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

Visibility: public

Requested revision: 51ebe0eb0136a4009c240740d0bb3b3a9b4c173f

Requested commit: 51ebe0eb0136a4009c240740d0bb3b3a9b4c173f

Commit: 51ebe0eb0136a4009c240740d0bb3b3a9b4c173f

Tree: 27a511a1029c064143b3f3927881592486f13d49

Author: Max Brunsfeld

Committer: GitHub

## Message

```
Allow wasm extensions to do arbitrary file I/O in their own directory to install language servers (#9043)

This PR provides WASM extensions with write access to their own specific
working directory under the Zed `extensions` dir. This directory is set
as the extensions `current_dir` when they run. Extensions can return
relative paths from the `Extension::language_server_command` method, and
those relative paths will be interpreted relative to this working dir.

With this functionality, most language servers that we currently build
into zed can be installed using extensions.

Release Notes:

- N/A
```

## Parents

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

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