nix-config/modules/home-manager-modules/programs/vscode/conventionalCommits.nix

42 lines
1.4 KiB
Nix

{
lib,
pkgs,
config,
...
}: let
pkgsRepositories = pkgs.nix-vscode-extensions.forVSCodeVersion config.programs.vscode.package.version;
pkgsRepository = pkgsRepositories.vscode-marketplace;
in {
options.programs.vscode.profiles = lib.mkOption {
type = lib.types.attrsOf (lib.types.submodule ({config, ...}: {
options = {
extraExtensions.conventionalCommits = {
enable = lib.mkEnableOption "Enable VSCode Conventional Commits extension";
extension = lib.mkPackageOption pkgsRepository "conventional-commits" {
default = ["vivaxy" "vscode-conventional-commits"];
};
emojiFormat = lib.mkOption {
type = lib.types.bool;
default = false;
description = "Enable emoji format for conventional commits";
};
promptScopes = lib.mkOption {
type = lib.types.bool;
default = false;
description = "Enable prompting for scopes in conventional commits";
};
};
};
config = lib.mkIf config.extraExtensions.conventionalCommits.enable {
extensions = [config.extraExtensions.conventionalCommits.extension];
userSettings = {
"conventionalCommits.emojiFormat" = config.extraExtensions.conventionalCommits.emojiFormat;
"conventionalCommits.promptScopes" = config.extraExtensions.conventionalCommits.promptScopes;
};
};
}));
};
}