initial
This commit is contained in:
114
hosts/sarien/users/user/programs/editor/zed.nix
Normal file
114
hosts/sarien/users/user/programs/editor/zed.nix
Normal file
@ -0,0 +1,114 @@
|
||||
{
|
||||
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;
|
||||
};
|
||||
};
|
||||
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;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user