1{
2 pkgs,
3 lib,
4 config,
5 ...
6}:
7let
8 cfg = config.py.programs.vscodium;
9in
10{
11 options.py.programs.vscodium.enable = lib.mkEnableOption "VSCodium";
12 config.programs.vscode = lib.mkIf cfg.enable {
13 enable = true;
14 package = pkgs.vscode;
15 profiles.default.userSettings = {
16 "biome.lspBin" = "";
17 "breadcrumbs.enabled" = false;
18 "editor.formatOnPaste" = true;
19 "editor.formatOnSave" = true;
20 "editor.formatOnSaveMode" = "file";
21 "editor.formatOnType" = true;
22 "editor.fontSize" = 15;
23 "editor.fontFamily" = "'IBM Plex Mono', 'monospace', monospace";
24 "editor.minimap.enabled" = false;
25 "explorer.confirmDelete" = false;
26 "explorer.confirmDragAndDrop" = false;
27 "extensions.autoCheckUpdates" = false;
28 "extensions.autoUpdate" = false;
29 "extensions.closeExtensionDetailsOnViewChange" = true;
30 "extensions.ignoreRecommendations" = true;
31 "npm.keybindingsChangedWarningShown" = true;
32 "ruff.nativeServer" = true;
33 "ruff.showNotifications" = "onError";
34 "nix.enableLanguageServer" = true;
35 "nix.serverPath" = lib.getExe pkgs.nixd;
36 "[nix]" = {
37 "editor.defaultFormatter" = "brettm12345.nixfmt-vscode";
38 };
39 "python.analysis.autoImportCompletions" = true;
40 "python.analysis.autoSearchPaths" = true;
41 "python.analysis.completeFunctionParens" = true;
42 "python.experiments.enabled" = false;
43 "python.languageServer" = "Pylance";
44 "telemetry.telemetryLevel" = "off";
45 "terminal.external.linuxExec" = "ghostty";
46 "update.mode" = "none";
47 "update.showReleaseNotes" = false;
48 "workbench.colorTheme" = "Catppuccin Mocha";
49 "workbench.iconTheme" = "catppuccin-mocha";
50 "vscode-neovim.neovimExecutablePaths.linux" = lib.getExe pkgs.py.nvim;
51 "python.formatting.provider" = "black";
52 };
53 };
54}