{ config, lib, pkgs, ... }: { options = { apps.development = { editor = { vscodium.enable = lib.mkEnableOption "enable vscodium"; emacs.enable = lib.mkEnableOption "enable emacs"; default = lib.mkOption { default = "vscodium"; description = "default editor"; }; }; }; }; config = { environment.systemPackages = with pkgs; [ nixfmt ] ++ (if config.apps.development.editor.vscodium.enable then [ vscodium ] else [ ]); programs = { vscode = if config.apps.development.editor.vscodium.enable then { enable = true; package = pkgs.vscodium; defaultEditor = if (config.apps.development.editor.default == "vscodium") then true else false; # profiles.default.extensions = with pkgs.vscode-extensions; [ # catppuccin.catppuccin-vsc # catppuccin.catppuccin-vsc-icons # jnoortheen.nix-ide # alefragnani.project-manager # naumovs.color-highlight # geequlim.godot-tools # stylelint.vscode-stylelint # ecmel.vscode-html-css # esbenp.prettier-vscode # ]; } else { }; }; services = { emacs = if config.apps.development.editor.emacs.enable then { enable = true; install = true; defaultEditor = if (config.apps.development.editor.default == "emacs") then true else false; } else { }; }; }; }