{ config, lib, pkgs, ... }: { options = { development = { editor = { vscodium.enable = lib.mkEnableOption "enable vscodium"; emacs.enable = lib.mkEnableOption "enable emacs"; default = "vscodium"; }; }; }; config = { environment.systemPackages = with pkgs; [ (lib.mkIf config.development.editor.vscodium.enable vscodium) nixfmt ]; programs = { vscode = lib.mkIf config.development.editor.vscodium.enable { enable = true; package = pkgs.vscodium; defaultEditor = lib.mkIf (config.development.editor.default == "vscodium") true; 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 ]; }; }; services = { emacs = lib.mkIf config.development.editor.emacs.enable { enable = true; install = true; defaultEditor = lib.mkIf (config.development.editor.default == "emacs") true; }; }; home.sessionVariables = { EDITOR = lib.mkDefault "codium"; }; }; }