Files
nixos-blueprint/modules/home/programs/editor/zed.nix
unexplrd a20fc14152 upd
2025-02-18 16:40:03 +02:00

122 lines
2.9 KiB
Nix

{
config,
pkgs,
lib,
...
}:
with lib; let
cfg = config.editor.zed;
in {
options = {
editor.zed.enable =
mkEnableOption "enable zed editor";
};
config = mkIf cfg.enable {
programs.zed-editor = {
enable = true;
extensions = [
"nix"
"latex"
"typst"
];
userSettings = {
vim_mode = true;
ui_font_size = lib.mkForce 16;
buffer_font_size = lib.mkForce 16;
features = {inline_completion_provider = "none";};
auto_update = false;
languages = {
"Nix" = {
language-servers = [
"!nil"
"nixd"
];
formatter = {
external.command = lib.getExe pkgs.alejandra;
};
};
"Rust" = {
formatter = {
external = {
command = lib.getExe pkgs.rustfmt;
arguments = ["--edition" "2021"];
};
};
};
"typst" = {
language-servers = ["tinymist"];
format_on_save = "on";
formatter = {
external = {
command = lib.getExe pkgs.typstyle;
arguments = ["-i" "{buffer_path}"];
};
};
};
"Python" = {
format_on_save = "on";
formatter = [
{
language_server = {
name = "ruff";
};
}
];
language_servers = ["ruff"];
};
};
lsp = {
clangd = {
binary = {
arguments = [];
path = "${pkgs.clang-tools}/bin/clangd";
};
};
rust-analyzer = {
binary = {
arguments = [];
path = lib.getExe pkgs.rust-analyzer;
};
};
ruff = {
binary = {
arguments = [];
path = lib.getExe pkgs.ruff;
};
};
nixd = {
binary = {
arguments = [];
path = lib.getExe pkgs.nixd;
};
initialization_options.formatting.command = [(lib.getExe pkgs.alejandra)];
};
nil = {
binary = {
arguments = [];
path = lib.getExe pkgs.nil;
};
initialization_options.formatting.command = [(lib.getExe pkgs.alejandra)];
};
texlab = {
binary = {
arguments = [];
path = lib.getExe pkgs.texlab;
};
};
tinymist = {
binary = {
arguments = [];
path = lib.getExe pkgs.tinymist;
};
};
};
telemetry = {
diagnostics = false;
metrics = false;
};
};
};
};
}