{ config, lib, pkgs, ... }: with lib; let cfg = config.ez.codium; in { options.ez.codium = { enable = mkEnableOption "Enable simple codium config"; }; config = mkIf cfg.enable { programs.vscode.package = lib.mkDefault pkgs.vscodium; programs.vscode.extensions = with pkgs.vscode-extensions; [ vscodevim.vim bbenoist.nix llvm-org.lldb-vscode ms-python.python ms-vscode-remote.remote-ssh redhat.vscode-yaml skyapps.fish-vscode ] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ { name = "bracket-pair-colorizer"; publisher = "CoenraadS"; version = "1.0.61"; sha256 = "0r3bfp8kvhf9zpbiil7acx7zain26grk133f0r0syxqgml12i652"; } { name = "vscode-direnv"; publisher = "Rubymaniac"; version = "0.0.2"; sha256 = "1gml41bc77qlydnvk1rkaiv95rwprzqgj895kxllqy4ps8ly6nsd"; } { name = "nixpkgs-fmt"; publisher = "B4dM4n"; version = "0.0.1"; sha256 = "1gvjqy54myss4w1x55lnyj2l887xcnxc141df85ikmw1gr9s8gdz"; } { name = "elm-ls-vscode"; publisher = "Elmtooling"; version = "1.3.0"; sha256 = "0h0pibjq1rk7ji4f342vqky2zbq3f4fg1y260rig7y6x3z4007h3"; } ]; programs.vscode.userSettings = { "editor.selectionClipboard" = "native"; "editor.emptySelectionClipboard" = true; "editor.dragAndDrop" = false; "editor.renderWhitespace" = "all"; "editor.tabSize" = 2; "editor.wordWrap" = "on"; "telemetry.enableTelemetry" = false; "telemetry.enableCrashReporter" = false; "window.titleBarStyle" = "native"; "window.menuBarVisibility" = "toggle"; "explorer.confirmDragAndDrop" = false; "git.enableSmartCommit" = true; "git.autofetch" = true; "workbench.startupEditor" = "newUntitledFile"; "vim.easymotion" = true; "vim.camelCaseMotion.enable" = true; "vim.useSystemClipboard" = true; "editor.formatOnSave" = true; "elmLS.elmPath" = "${pkgs.elmPackages.elm}/bin/elm"; "elmLS.elmFormatPath" = "${pkgs.elmPackages.elm-format}/bin/elm-format"; "elmLS.elmAnalyseTrigger" = "change"; }; }; }