nixos/home-manager/modules/zed/default.nix

104 lines
2.8 KiB
Nix
Raw Normal View History

2025-03-29 21:03:07 -04:00
{
config,
lib,
pkgs,
...
}: let
cfg = config.lily.zed;
in {
options.lily.zed = {
enable = lib.mkEnableOption "activate zed";
};
config = lib.mkIf cfg.enable {
programs.zed-editor = {
enable = true;
extensions = ["nix" "toml" "elixir" "make"];
## everything inside of these brackets are Zed options.
userSettings = {
assistant = {
enabled = true;
version = "2";
default_open_ai_model = null;
### PROVIDER OPTIONS
### zed.dev models { claude-3-5-sonnet-latest } requires github connected
### anthropic models { claude-3-5-sonnet-latest claude-3-haiku-latest claude-3-opus-latest } requires API_KEY
### copilot_chat models { gpt-4o gpt-4 gpt-3.5-turbo o1-preview } requires github connected
default_model = {
provider = "zed.dev";
model = "claude-3-5-sonnet-latest";
};
# inline_alternatives = [
# {
# provider = "copilot_chat";
# model = "gpt-3.5-turbo";
# }
# ];
};
node = {
path = lib.getExe pkgs.nodejs;
npm_path = lib.getExe' pkgs.nodejs "npm";
};
hour_format = "hour24";
auto_update = false;
terminal = {
alternate_scroll = "off";
blinking = "off";
copy_on_select = false;
dock = "bottom";
detect_venv = {
on = {
directories = [".env" "env" ".venv" "venv"];
activate_script = "default";
};
};
font_family = "JetBrains Mono";
font_features = null;
font_size = null;
line_height = "comfortable";
option_as_meta = false;
button = false;
shell = {
program = "zsh";
};
toolbar = {
title = true;
};
working_directory = "current_project_directory";
};
lsp = {
rust-analyzer = {
binary = {
path = "/run/current-system/sw/bin/rust-analyzer";
path_lookup = false;
};
};
nix = {
binary = {
path = "${pkgs.nixd}/bin/nixd";
path_lookup = false;
};
};
};
vim_mode = false; # Not yet...
load_direnv = "shell_hook";
base_keymap = "VSCode";
theme = {
mode = "system";
light = "One Light";
dark = "Andromeda";
};
show_whitespaces = "all";
ui_font_size = 16;
buffer_font_size = 16;
};
};
};
}