{ pkgs, lib, ... }: { programs = { vscode = { enable = true; package = pkgs.vscode; keybindings = [ { key = "ctrl+shift+s"; command = "editor.action.insertCursorAtEndOfEachLineSelected"; when = "textInputFocus"; } { key = "ctrl+shift+a"; command = "editor.action.quickFix"; when = "editorHasCodeActionsProvider && textInputFocus && !editorReadonly"; } { key = "ctrl+shift+f"; command = "editor.action.formatDocument"; when = "editorHasDocumentFormattingProvider && editorTextFocus && !editorReadonly && !inCompositeEditor"; } ]; extensions = builtins.attrValues { inherit (pkgs.vscode-extensions.catppuccin) catppuccin-vsc; inherit (pkgs.vscode-extensions.eamodio) gitlens; inherit (pkgs.vscode-extensions.elmtooling) elm-ls-vscode; inherit (pkgs.vscode-extensions.esbenp) prettier-vscode; inherit (pkgs.vscode-extensions.haskell) haskell; inherit (pkgs.vscode-extensions.james-yu) latex-workshop; inherit (pkgs.vscode-extensions.jnoortheen) nix-ide; inherit (pkgs.vscode-extensions.kamadorueda) alejandra; inherit (pkgs.vscode-extensions.mattn) lisp; inherit (pkgs.vscode-extensions.mkhl) direnv; inherit (pkgs.vscode-extensions.pkief) material-icon-theme; inherit (pkgs.vscode-extensions.streetsidesoftware) code-spell-checker; inherit (pkgs.vscode-extensions.tamasfe) even-better-toml; }; userSettings = { "git.confirmSync" = false; "editor.insertSpaces" = false; "files.autoSave" = "afterDelay"; "git.enableSmartCommit" = true; "nix.enableLanguageServer" = true; "nix.serverPath" = lib.getExe pkgs.nil; "nix.formatterPath" = lib.getExe pkgs.alejandra; "window.menuBarVisibility" = "toggle"; "workbench.iconTheme" = "material-icon-theme"; "workbench.startupEditor" = "none"; "workbench.colorTheme" = "Catppuccin Mocha"; "workbench.statusBar.visible" = false; "editor.multiCursorLimit" = 700000; "elmLS.disableElmLSDiagnostics" = true; "elmLS.elmReviewDiagnostics" = "warning"; }; }; }; }