
Our direnv integration was making zed refuse to auto-update when you had
the zed repo open with the devshell active. This was happening even when
you used a non-nix build of zed, which actually should be able to
auto-update.
I'm a bit unsure of why we check for the `ZED_UPDATE_EXPLANATION` env
var [both at build time _and_ at
runtime](2828dcb67b/crates/auto_update/src/auto_update.rs (L149)
),
but I can see an argument for why people might want that so I'll just do
the less intrusive change for now and leave the var out of the devshell.
Release Notes:
- N/A
64 lines
1.8 KiB
Nix
64 lines
1.8 KiB
Nix
{
|
||
lib,
|
||
mkShell,
|
||
stdenv,
|
||
stdenvAdapters,
|
||
makeFontsConf,
|
||
|
||
zed-editor,
|
||
|
||
rust-analyzer,
|
||
cargo-nextest,
|
||
nixfmt-rfc-style,
|
||
protobuf,
|
||
nodejs_22,
|
||
}:
|
||
let
|
||
moldStdenv = stdenvAdapters.useMoldLinker stdenv;
|
||
mkShell' =
|
||
if stdenv.hostPlatform.isLinux then mkShell.override { stdenv = moldStdenv; } else mkShell;
|
||
in
|
||
mkShell' {
|
||
inputsFrom = [ zed-editor ];
|
||
packages = [
|
||
rust-analyzer
|
||
cargo-nextest
|
||
nixfmt-rfc-style
|
||
# TODO: package protobuf-language-server for editing zed.proto
|
||
# TODO: add other tools used in our scripts
|
||
|
||
# `build.nix` adds this to the `zed-editor` wrapper (see `postFixup`)
|
||
# we'll just put it on `$PATH`:
|
||
nodejs_22
|
||
];
|
||
|
||
# We set SDKROOT and DEVELOPER_DIR to the Xcode ones instead of the nixpkgs ones, because
|
||
# we need Swift 6.0 and nixpkgs doesn't have it
|
||
shellHook = lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||
export SDKROOT="/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk";
|
||
export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer";
|
||
'';
|
||
|
||
env =
|
||
let
|
||
baseEnvs =
|
||
(zed-editor.overrideAttrs (attrs: {
|
||
passthru = { inherit (attrs) env; };
|
||
})).env; # exfil `env`; it's not in drvAttrs
|
||
in
|
||
(removeAttrs baseEnvs [
|
||
"LK_CUSTOM_WEBRTC" # download the staticlib during the build as usual
|
||
"ZED_UPDATE_EXPLANATION" # allow auto-updates
|
||
])
|
||
// {
|
||
# note: different than `$FONTCONFIG_FILE` in `build.nix` – this refers to relative paths
|
||
# outside the nix store instead of to `$src`
|
||
FONTCONFIG_FILE = makeFontsConf {
|
||
fontDirectories = [
|
||
"./assets/fonts/plex-mono"
|
||
"./assets/fonts/plex-sans"
|
||
];
|
||
};
|
||
PROTOC = "${protobuf}/bin/protoc";
|
||
};
|
||
}
|