Refactor Zed/Flatpak options and add C++ & clangd settings

- Switch Zed remote server and Flatpak packages to use `enable`
suboption - Update host modules to match the new option hierarchy - Add
default C++ settings (format on save, tab size) to Zed user settings -
Introduce clangd LSP configuration with inlay hints and fallback command
This commit is contained in:
2025-12-01 13:28:43 +01:00
parent 7a2382cb3c
commit 087ffd4194
10 changed files with 41 additions and 16 deletions

View File

@@ -6,7 +6,7 @@ _: {
zed-editor = { zed-editor = {
enable = true; # Zed Editor: a modern, highperformance code editor enable = true; # Zed Editor: a modern, highperformance code editor
remote-server = true; # Remote Server: enable remote editing capabilities remote-server.enable = true; # Remote Server: enable remote editing capabilities
}; };
/* /*

View File

@@ -6,9 +6,9 @@ _: {
flatpak = { flatpak = {
enable = true; # Flatpak: universal packaging system for Linux enable = true; # Flatpak: universal packaging system for Linux
packages = { packages = {
sober = false; # Roblox client sober.enable = false; # Roblox client
warehouse = true; # Flatpak manager warehouse.enable = true; # Flatpak manager
flatseal = true; # Flatpak permissions manager flatseal.enable = true; # Flatpak permissions manager
}; };
}; };

View File

@@ -6,7 +6,7 @@ _: {
zed-editor = { zed-editor = {
enable = true; # Zed Editor: a modern, highperformance code editor enable = true; # Zed Editor: a modern, highperformance code editor
remote-server = true; # Remote Server: enable remote editing capabilities remote-server.enable = true; # Remote Server: enable remote editing capabilities
}; };
/* /*

View File

@@ -6,9 +6,9 @@ _: {
flatpak = { flatpak = {
enable = true; # Flatpak: universal packaging system for Linux enable = true; # Flatpak: universal packaging system for Linux
packages = { packages = {
sober = false; # Roblox client sober.enable = false; # Roblox client
warehouse = true; # Flatpak manager warehouse.enable = true; # Flatpak manager
flatseal = true; # Flatpak permissions manager flatseal.enable = true; # Flatpak permissions manager
}; };
}; };

View File

@@ -6,7 +6,7 @@ _: {
zed-editor = { zed-editor = {
enable = true; # Zed Editor: a modern, highperformance code editor enable = true; # Zed Editor: a modern, highperformance code editor
remote-server = true; # Remote Server: enable remote editing capabilities remote-server.enable = true; # Remote Server: enable remote editing capabilities
}; };
/* /*

View File

@@ -6,9 +6,9 @@ _: {
flatpak = { flatpak = {
enable = true; # Flatpak: universal packaging system for Linux enable = true; # Flatpak: universal packaging system for Linux
packages = { packages = {
sober = false; # Roblox client sober.enable = false; # Roblox client
warehouse = true; # Flatpak manager warehouse.enable = true; # Flatpak manager
flatseal = true; # Flatpak permissions manager flatseal.enable = true; # Flatpak permissions manager
}; };
}; };

View File

@@ -4,10 +4,10 @@
... ...
}: let }: let
mkFlatpakPackage = name: pkgId: { mkFlatpakPackage = name: pkgId: {
options.flatpak.packages.${name} = lib.mkEnableOption "Flatpak: ${name}"; options.flatpak.packages.${name}.enable = lib.mkEnableOption "Flatpak: ${name}";
config.services.flatpak.packages = config.services.flatpak.packages =
lib.mkIf config.flatpak.packages.${name} [pkgId]; lib.mkIf config.flatpak.packages.${name}.enable [pkgId];
}; };
flatpakPackages = { flatpakPackages = {

View File

@@ -6,13 +6,13 @@
}: { }: {
options.zed-editor = { options.zed-editor = {
enable = lib.mkEnableOption "Zed Editor"; enable = lib.mkEnableOption "Zed Editor";
remote-server = lib.mkEnableOption "Zed Editor Remote Server"; remote-server.enable = lib.mkEnableOption "Zed Editor Remote Server";
}; };
config.programs.zed-editor = lib.mkIf config.zed-editor.enable { config.programs.zed-editor = lib.mkIf config.zed-editor.enable {
enable = true; enable = true;
package = pkgs.zed-editor; package = pkgs.zed-editor;
installRemoteServer = lib.mkIf config.zed-editor.remote-server true; installRemoteServer = lib.mkIf config.zed-editor.remote-server.enable true;
}; };
imports = [ imports = [

View File

@@ -62,5 +62,9 @@ _: {
}; };
tab_size = 2; tab_size = 2;
}; };
"C++" = {
format_on_save = "on";
tab_size = 2;
};
}; };
} }

View File

@@ -27,6 +27,27 @@
}; };
}; };
}; };
clangd = {
binary = {
path = lib.getExe pkgs.bash;
arguments = [
"-c"
"if [ -e flake.nix ]; then nix develop --command clangd; else clangd; fi"
];
};
initialization_options = {
inlayHints = {
maxLength = null;
lifetimeElisionHints = {
enable = "skip_trivial";
useParameterNames = true;
};
closureReturnTypeHints = {
enable = "always";
};
};
};
};
nixd = { nixd = {
initialization_options.formatting.command = [ initialization_options.formatting.command = [
"alejandra" "alejandra"