nixos/modules/common/programming/vscode.nix

66 lines
2.2 KiB
Nix

{ config, pkgs, lib, ... }: {
options = {
vscode = {
enable = lib.mkEnableOption {
description = "Enable Visual Studio Code";
default = false;
};
};
};
config = lib.mkIf (config.gui.enable && config.vscode.enable) {
home-manager.users.${config.user} = {
nixpkgs.config.allowUnfree = true;
programs.vscode = {
enable = true;
enableUpdateCheck = false;
enableExtensionUpdateCheck = false;
mutableExtensionsDir = false;
extensions = [
pkgs.vscode-extensions.catppuccin.catppuccin-vsc
pkgs.vscode-extensions.ms-azuretools.vscode-docker
pkgs.vscode-extensions.dbaeumer.vscode-eslint
pkgs.vscode-extensions.vue.volar
pkgs.vscode-extensions.esbenp.prettier-vscode
pkgs.vscode-extensions.firefox-devtools.vscode-firefox-debug
pkgs.vscode-extensions.davidanson.vscode-markdownlint
pkgs.vscode-extensions.bbenoist.nix
pkgs.vscode-extensions.brettm12345.nixfmt-vscode
pkgs.vscode-extensions.golang.go
pkgs.vscode-extensions.mkhl.direnv
pkgs.vscode-extensions.ms-vscode-remote.remote-ssh
pkgs.vscode-extensions.ms-vscode-remote.remote-containers
pkgs.vscode-extensions.sumneko.lua
] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
{
name = "vscode-wow-toc";
publisher = "stanzilla";
version = "0.0.6";
sha256 = "sha256-XEeqfnl+MxuElx1xaJ2OFjfl7YAh13StZzZN4f3DE74=";
}
{
name = "wow-bundle";
publisher = "septh";
version = "1.3.0";
sha256 = "sha256-L0hdiKIzoOUC/+WxXHfWeuvINWf2EM7GPk2FzLmF07Y=";
}
{
name = "wow-api";
publisher = "ketho";
version = "0.17.6";
sha256 = "sha256-5g3j+Ta7e4L5uNh/Fb3blesVu4dSJyQe2vPF0MQHJPc=";
}
];
userSettings = {
"workbench.colorTheme" = "Catppuccin Mocha";
"editor.tabSize" = 2;
"editor.insertSpaces" = true;
"git.autofetch" = true;
"git.confirmSync" = false;
};
};
};
};
}