34 lines
1.1 KiB
Nix
34 lines
1.1 KiB
Nix
{
|
|
lib,
|
|
pkgs,
|
|
config,
|
|
...
|
|
}: let
|
|
pkgsRepositories = pkgs.nix-vscode-extensions.forVSCodeVersion config.programs.vscode.package.version;
|
|
pkgsRepository = pkgsRepositories.open-vsx;
|
|
in {
|
|
options.programs.vscode.profiles = lib.mkOption {
|
|
type = lib.types.attrsOf (lib.types.submodule ({config, ...}: {
|
|
options = {
|
|
extraExtensions.alejandra = {
|
|
enable = lib.mkEnableOption "Enable Alejandra extension for Nix formatting";
|
|
extension = lib.mkPackageOption pkgsRepository "alejandra" {
|
|
default = ["kamadorueda" "alejandra"];
|
|
};
|
|
};
|
|
};
|
|
config = lib.mkIf config.extraExtensions.alejandra.enable {
|
|
extensions = [config.extraExtensions.alejandra.extension];
|
|
userSettings = {
|
|
"[nix]" = {
|
|
"editor.defaultFormatter" = "kamadorueda.alejandra";
|
|
"editor.formatOnPaste" = true;
|
|
"editor.formatOnSave" = true;
|
|
"editor.formatOnType" = true;
|
|
};
|
|
"alejandra.program" = "alejandra";
|
|
};
|
|
};
|
|
}));
|
|
};
|
|
}
|