dotfiles/home/features/desktop/vscode.nix

131 lines
6.4 KiB
Nix
Raw Normal View History

2023-08-04 12:57:48 +00:00
{ config, outputs, pkgs, lib, ... }: {
programs.vscode = {
enable = true;
enableExtensionUpdateCheck = false;
enableUpdateCheck = false;
extensions = with pkgs.vscode-extensions; [
bbenoist.nix
github.copilot
golang.go
hashicorp.terraform
ms-kubernetes-tools.vscode-kubernetes-tools
ms-vscode-remote.remote-ssh
ms-vscode.powershell
redhat.vscode-yaml
timonwong.shellcheck
vscodevim.vim
yzhang.markdown-all-in-one
];
2023-07-27 19:03:04 +00:00
keybindings = [
{
key = "backspace";
command = "-markdown.extension.onBackspaceKey";
when = "editorTextFocus && !editorHasMultipleSelections && !editorReadonly && !markdown.extension.editor.cursor.inFencedCodeBlock && !markdown.extension.editor.cursor.inMathEnv && !suggestWidgetVisible && vim.mode != 'CommandlineInProgress' && vim.mode != 'EasyMotionInputMode' && vim.mode != 'EasyMotionMode' && vim.mode != 'Normal' && vim.mode != 'Replace' && vim.mode != 'SearchInProgressMode' && vim.mode != 'SurroundInputMode' && vim.mode != 'Visual' && vim.mode != 'VisualBlock' && vim.mode != 'VisualLine' && editorLangId =~ /^markdown$|^rmd$|^quarto$/";
}
{
key = "ctrl+shift+alt+down";
command = "-markdown.extension.onCopyLineDown";
when = "editorTextFocus && !editorReadonly && !suggestWidgetVisible && editorLangId =~ /^markdown$|^rmd$|^quarto$/";
}
{
key = "ctrl+shift+alt+up";
command = "-markdown.extension.onCopyLineUp";
when = "editorTextFocus && !editorReadonly && !suggestWidgetVisible && editorLangId =~ /^markdown$|^rmd$|^quarto$/";
}
{
key = "ctrl+enter";
command = "-markdown.extension.onCtrlEnterKey";
when = "editorTextFocus && !editorHasMultipleSelections && !editorReadonly && !markdown.extension.editor.cursor.inFencedCodeBlock && !markdown.extension.editor.cursor.inMathEnv && !suggestWidgetVisible && editorLangId =~ /^markdown$|^rmd$|^quarto$/";
}
{
key = "enter";
command = "-markdown.extension.onEnterKey";
when = "editorTextFocus && !editorHasMultipleSelections && !editorReadonly && !markdown.extension.editor.cursor.inFencedCodeBlock && !markdown.extension.editor.cursor.inMathEnv && !suggestWidgetVisible && vim.mode != 'CommandlineInProgress' && vim.mode != 'EasyMotionInputMode' && vim.mode != 'EasyMotionMode' && vim.mode != 'Normal' && vim.mode != 'Replace' && vim.mode != 'SearchInProgressMode' && vim.mode != 'SurroundInputMode' && vim.mode != 'Visual' && vim.mode != 'VisualBlock' && vim.mode != 'VisualLine' && editorLangId =~ /^markdown$|^rmd$|^quarto$/";
}
{
key = "ctrl+]";
command = "-markdown.extension.onIndentLines";
when = "editorTextFocus && !suggestWidgetVisible && editorLangId =~ /^markdown$|^rmd$|^quarto$/";
}
{
key = "alt+down";
command = "-markdown.extension.onMoveLineDown";
when = "editorTextFocus && !editorReadonly && !suggestWidgetVisible && editorLangId =~ /^markdown$|^rmd$|^quarto$/";
}
{
key = "alt+up";
command = "-markdown.extension.onMoveLineUp";
when = "editorTextFocus && !editorReadonly && !suggestWidgetVisible && editorLangId =~ /^markdown$|^rmd$|^quarto$/";
}
{
key = "ctrl+[";
command = "-markdown.extension.onOutdentLines";
when = "editorTextFocus && !suggestWidgetVisible && editorLangId =~ /^markdown$|^rmd$|^quarto$/";
}
{
key = "shift+enter";
command = "-markdown.extension.onShiftEnterKey";
when = "editorTextFocus && !editorHasMultipleSelections && !editorReadonly && !markdown.extension.editor.cursor.inFencedCodeBlock && !markdown.extension.editor.cursor.inMathEnv && !suggestWidgetVisible && editorLangId =~ /^markdown$|^rmd$|^quarto$/";
}
{
key = "shift+tab";
command = "-markdown.extension.onShiftTabKey";
when = "editorTextFocus && markdown.extension.editor.cursor.inList && !editorHasMultipleSelections && !editorReadonly && !editorTabMovesFocus && !hasOtherSuggestions && !hasSnippetCompletions && !inSnippetMode && !markdown.extension.editor.cursor.inFencedCodeBlock && !markdown.extension.editor.cursor.inMathEnv && !suggestWidgetVisible && editorLangId =~ /^markdown$|^rmd$|^quarto$/";
}
{
key = "tab";
command = "-markdown.extension.onTabKey";
when = "editorTextFocus && markdown.extension.editor.cursor.inList && !editorHasMultipleSelections && !editorReadonly && !editorTabMovesFocus && !hasOtherSuggestions && !hasSnippetCompletions && !inSnippetMode && !inlineSuggestionVisible && !markdown.extension.editor.cursor.inFencedCodeBlock && !markdown.extension.editor.cursor.inMathEnv && !suggestWidgetVisible && editorLangId =~ /^markdown$|^rmd$|^quarto$/";
}
];
userSettings = {
"diffEditor.ignoreTrimWhitespace" = false;
"editor.acceptSuggestionOnCommitCharacter" = false;
"editor.acceptSuggestionOnEnter" = "off";
2023-07-27 19:03:04 +00:00
"editor.detectIndentation" = false;
"editor.inlineSuggest.enabled" = true;
"editor.lineNumbers" = "relative";
"editor.renderControlCharacters" = true;
2023-07-27 19:03:04 +00:00
"editor.renderWhitespace" = "all";
"editor.tabCompletion" = "off";
"editor.tabSize" = 2;
"explorer.confirmDragAndDrop" = false;
"files.hotExit" = "onExitAndWindowClose";
2023-07-27 19:03:04 +00:00
"files.trimTrailingWhitespace" = true;
"git.confirmSync" = false;
"git.ignoreLegacyWarning" = true;
2023-07-27 19:03:04 +00:00
"github.copilot.enable" = {
"*" = true;
"plaintext" = true;
"markdown" = true;
"scminput" = false;
"yaml" = true;
};
"powershell.codeFormatting.useCorrectCasing" = true;
2023-08-04 12:57:48 +00:00
"powershell.powerShellAdditionalExePaths" = {
"pwsh" = "${config.home.homeDirectory}/.nix-profile/bin/pwsh";
};
"powershell.promptToUpdatePowerShell" = false;
"security.workspace.trust.untrustedFiles" = "open";
"vim.statusBarColorControl" = true;
"vim.useCtrlKeys" = false;
2023-07-27 19:03:04 +00:00
"window.restoreWindows" = "none";
"workbench.startupEditor" = "none";
"workbench.colorCustomizations" = {
"statusBar.background" = "#005f5f";
"statusBar.debuggingBackground" = "#005f5f";
"statusBar.noFolderBackground" = "#005f5f";
};
"vim.normalModeKeyBindings" = [
{
"after" = ["@q"];
"before" = ["Q"];
}
];
};
};
}