{ pkgs, pkgsUnstable, ... }: let extensions = with pkgs.vscode-extensions; [ ms-dotnettools.csharp ms-dotnettools.csdevkit ms-dotnettools.vscode-dotnet-runtime mkhl.direnv catppuccin.catppuccin-vsc bmewburn.vscode-intelephense-client continue.continue vue.volar ms-vscode-remote.remote-containers ]; userSettings = { "editor.lineNumbers" = "relative"; "workbench.colorTheme" = "Catppuccin Mocha"; "workbench.editor.enablePreview" = false; "direnv.restart.automatic" = true; "terminal.integrated.defaultProfile.linux" = "zsh"; "terminal.integrated.profiles.linux".zsh = { path = "${pkgs.zsh}/bin/zsh"; }; }; editors = { vscode = pkgsUnstable.vscode.fhs; cursor = pkgsUnstable.code-cursor-fhs; vscodium = pkgsUnstable.vscodium-fhs; }; mkEditor = package: { enable = true; inherit package; profiles.default = { inherit extensions; inherit userSettings; }; }; in { programs = builtins.mapAttrs (_: mkEditor) editors; }