# language_model: Decouple from Zed-specific implementation details \(\#52913\) · gitcafe/zed

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

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

Visibility: public

Requested revision: 29609d3599c10fbec40a3756cfeac41d5e04e57e

Requested commit: 29609d3599c10fbec40a3756cfeac41d5e04e57e

Commit: 29609d3599c10fbec40a3756cfeac41d5e04e57e

Tree: e1571ec2f45988640e9d6b0f36665f7aa1d9d966

Author: Jakub Konka

Committer: GitHub

## Message

```
language_model: Decouple from Zed-specific implementation details (#52913)

This PR decouples `language_model`'s dependence on Zed-specific
implementation details. In particular
* `credentials_provider` is split into a generic `credentials_provider`
crate that provides a trait, and `zed_credentials_provider` that
implements the said trait for Zed-specific providers and has functions
that can populate a global state with them
* `zed_env_vars` is split into a generic `env_var` crate that provides
generic tooling for managing env vars, and `zed_env_vars` that contains
Zed-specific statics
* `client` is now dependent on `language_model` and not vice versa

Release Notes:

- N/A
```

## Parents

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

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