{ 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"; }; }; })); }; }