Code at the speed of thought – Zed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.
Find a file
Thorsten Ball 0360cda543
tasks: Use environment variables from project (#15266)
This fixes #12125 and addresses what's described in here:

-
https://github.com/zed-industries/zed/issues/4977#issuecomment-2162094388

Before the changes in this PR, when running tasks, they inherited the
Zed process environment, but that might not be the process environment
that you'd get if you `cd` into a project directory.

We already ran into that problem with language servers and we fixed it
by loading the shell environment in the context of a projects root
directory and then passing that to the language servers when starting
them (or when looking for their binaries).

What the change here does is to add the behavior for tasks too: we use
the project-environment as the base environment with which to spawn
tasks. Everything else still works the same, except that the base env is
different.

Release Notes:

- Improved the environment-variable detection when running tasks so that
tasks can now access environment variables as if the task had been
spawned in a terminal that `cd`ed into a project directory. That means
environment variables set by `direnv`/`asdf`/`mise` and other tools are
now picked up.
([#12125](https://github.com/zed-industries/zed/issues/12125)).

Demo:


https://github.com/user-attachments/assets/8bfcc98f-0f9b-4439-b0d9-298aef1a3efe
2024-07-26 18:19:53 +02:00
.cargo windows: Bump windows-rs version (#14719) 2024-07-25 10:41:59 -07:00
.cloudflare Remove 2 removal (#11867) 2024-05-15 11:06:05 -06:00
.config
.github Update actions/checkout action to v4 (#15189) 2024-07-25 09:48:15 -04:00
.zed Keymap oneliners (#13887) 2024-07-05 22:00:18 -04:00
assets Add note about used context in the model selector (#15235) 2024-07-26 12:48:06 -03:00
crates tasks: Use environment variables from project (#15266) 2024-07-26 18:19:53 +02:00
docs docs: Embed video directly, copying formatting from blog (#15229) 2024-07-25 16:05:04 -07:00
extensions uiua: Upgrade zed_extension_api to v0.0.6 (#15240) 2024-07-25 20:43:15 -04:00
script danger: Upgrade danger to v12 (#15194) 2024-07-25 11:07:04 -04:00
tooling/xtask xtask: Add command for checking packages conform to certain standards (#15236) 2024-07-25 19:20:08 -04:00
.dockerignore Update .dockerignore (#14016) 2024-07-09 16:27:55 -04:00
.git-blame-ignore-revs More ignorable commits (#14596) 2024-07-16 17:09:50 -04:00
.gitattributes Prevent GitHub from displaying comments within JSON files as errors (#7043) 2024-01-29 23:11:25 -05:00
.gitignore Add Nix/NixOS dev-shell (#13407) 2024-07-09 09:21:42 +02:00
.mailmap Update .mailmap (#13724) 2024-07-01 19:04:58 -04:00
Cargo.lock Update Rust crate log to v0.4.22 (#15283) 2024-07-26 11:27:00 -04:00
Cargo.toml Upgrade env_logger to v0.11 (#15278) 2024-07-26 10:48:07 -04:00
CODE_OF_CONDUCT.md Add CODE_OF_CONDUCT.md (#4239) 2024-01-23 22:31:39 -05:00
compose.yml Update Docker Compose configuration (#13530) 2024-06-26 08:05:23 -04:00
CONTRIBUTING.md docs: Fix some typos (#13509) 2024-06-25 10:58:11 -04:00
debug.plist WIP 2023-12-14 09:25:14 -07:00
docker-compose.sql Add config files for running Postgres inside Docker Compose (#3637) 2023-12-13 17:25:07 -05:00
Dockerfile chore: Bump Rust version to 1.80 (#15186) 2024-07-25 22:48:42 +02:00
flake.lock Add Nix/NixOS dev-shell (#13407) 2024-07-09 09:21:42 +02:00
flake.nix Add Nix/NixOS dev-shell (#13407) 2024-07-09 09:21:42 +02:00
LICENSE-AGPL chore: Add crate licenses. (#4158) 2024-01-23 16:56:22 +01:00
LICENSE-APACHE chore: Add crate licenses. (#4158) 2024-01-23 16:56:22 +01:00
LICENSE-GPL Licenses: change license fields in Cargo.toml to AGPL-3.0-or-later. (#5535) 2024-01-27 13:51:16 +01:00
livekit.yaml Add LiveKit server to Docker Compose (#7907) 2024-02-16 10:49:48 -05:00
Procfile Revert change to tracing (#10578) 2024-04-15 14:00:56 -06:00
README.md Update README.md 2024-07-09 14:05:29 -07:00
renovate.json renovate: Fix wasmtime package prefix 2024-07-25 11:45:14 -04:00
rust-toolchain.toml chore: Bump Rust version to 1.80 (#15186) 2024-07-25 22:48:42 +02:00
shell.nix Add Nix/NixOS dev-shell (#13407) 2024-07-09 09:21:42 +02:00
typos.toml Bump tree-sitter and related core language parser libraries (#14986) 2024-07-24 23:38:21 +03:00

Zed

CI

Welcome to Zed, a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.


Installation

Packaging status

On macOS and Linux you can download Zed directly or install Zed via your local package manager.

Other platforms are not yet available:

Developing Zed

Contributing

See CONTRIBUTING.md for ways you can contribute to Zed.

Also... we're hiring! Check out our jobs page for open roles.

Licensing

License information for third party dependencies must be correctly provided for CI to pass.

We use cargo-about to automatically comply with open source licenses. If CI is failing, check the following:

  • Is it showing a no license specified error for a crate you've created? If so, add publish = false under [package] in your crate's Cargo.toml.
  • Is the error failed to satisfy license requirements for a dependency? If so, first determine what license the project has and whether this system is sufficient to comply with this license's requirements. If you're unsure, ask a lawyer. Once you've verified that this system is acceptable add the license's SPDX identifier to the accepted array in script/licenses/zed-licenses.toml.
  • Is cargo-about unable to find the license for a dependency? If so, add a clarification field at the end of script/licenses/zed-licenses.toml, as specified in the cargo-about book.