dotfiles/home-manager/modules/vscode.nix
2024-11-20 15:46:18 -06:00

61 lines
2.3 KiB
Nix
Executable file

{
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";
};
};
};
}