sneeuwvlok/modules/home/editor/zed/default.nix
2026-03-26 14:03:12 +01:00

81 lines
1.5 KiB
Nix

{
config,
lib,
pkgs,
...
}: let
inherit (lib) mkIf mkEnableOption;
cfg = config.sneeuwvlok.editor.zed;
in {
options.sneeuwvlok.editor.zed = {
enable = mkEnableOption "zed";
};
config = mkIf cfg.enable {
home.packages = with pkgs; [
zed-editor
nixd
nil
alejandra
];
programs.zed-editor = {
enable = true;
extensions = ["nix" "toml" "html" "just-ls"];
userSettings = {
assistant.enabled = false;
vim_mode = false;
load_direnv = "shell_hook";
base_keymap = "JetBrains";
format_on_save = "on";
bindings = {
"ctrl+s" = "workspace::SaveAll";
};
tabs = {
file_icons = true;
git_status = true;
};
project_panel.auto_reveal_entries = false;
"experimental.theme_overrides" = {
border = "#ffffff07";
};
hour_format = "hour24";
auto_update = false;
lsp = {
nixd = {};
nil = {
initialization_options = {
nix = {
flake = {
autoArchive = true;
};
};
formatting = {
command = ["alejandra" "--quiet" "--"];
};
};
binary = {
path_lookup = true;
};
};
};
languages = {
"Nix" = {
language_servers = ["nixd" "nil"];
format_on_save = "on";
};
};
};
};
};
}