179 lines
4.9 KiB
Nix
179 lines
4.9 KiB
Nix
{ pkgs, ... }:
|
|
{
|
|
programs.vscode = {
|
|
|
|
enable = true;
|
|
enableUpdateCheck = false;
|
|
|
|
extensions =
|
|
(with pkgs.vscode-extensions; [
|
|
# Bash
|
|
timonwong.shellcheck
|
|
|
|
# C#
|
|
ms-dotnettools.vscodeintellicode-csharp
|
|
ms-dotnettools.vscode-dotnet-runtime
|
|
ms-dotnettools.csharp
|
|
ms-dotnettools.csdevkit
|
|
|
|
# Nix
|
|
arrterian.nix-env-selector
|
|
jnoortheen.nix-ide
|
|
|
|
# Theme and Icons
|
|
catppuccin.catppuccin-vsc-icons
|
|
catppuccin.catppuccin-vsc
|
|
|
|
# General Dev
|
|
continue.continue
|
|
dotenv.dotenv-vscode
|
|
ms-vscode.hexeditor
|
|
mkhl.direnv
|
|
skellock.just
|
|
ms-vscode-remote.remote-ssh
|
|
|
|
# Formatter
|
|
redhat.vscode-xml
|
|
|
|
])
|
|
++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
|
|
{
|
|
name = "remote-ssh-edit";
|
|
publisher = "ms-vscode-remote";
|
|
version = "0.47.2";
|
|
sha256 = "1hp6gjh4xp2m1xlm1jsdzxw9d8frkiidhph6nvl24d0h8z34w49g";
|
|
}
|
|
];
|
|
|
|
# ++ (with extensions.vscode-marketplace; [
|
|
# # C#
|
|
# patcx.vscode-nuget-gallery
|
|
# # Tool
|
|
# jetpack-io.devbox
|
|
# rangav.vscode-thunder-client
|
|
# ]);
|
|
|
|
keybindings = [
|
|
{
|
|
"key" = "ctrl+k ctrl+c";
|
|
"command" = "editor.action.commentLine";
|
|
"when" = "editorTextFocus && !editorReadonly";
|
|
}
|
|
{
|
|
"key" = "ctrl+k ctrl+u";
|
|
"command" = "editor.action.removeCommentLine";
|
|
"when" = "editorTextFocus && !editorReadonly";
|
|
}
|
|
{
|
|
"key" = "ctrl+r ctrl+r";
|
|
"command" = "editor.action.rename";
|
|
"when" = "editorHasRenameProvider && editorTextFocus && !editorReadonly";
|
|
}
|
|
{
|
|
"key" = "alt+d";
|
|
"command" = "editor.action.copyLinesDownAction";
|
|
"when" = "editorTextFocus && !editorReadonly";
|
|
}
|
|
{
|
|
"key" = "ctrl+shift+alt+down";
|
|
"command" = "-editor.action.copyLinesDownAction";
|
|
"when" = "editorTextFocus && !editorReadonly";
|
|
}
|
|
{
|
|
"key" = "shift+alt+d";
|
|
"command" = "editor.action.copyLinesUpAction";
|
|
"when" = "editorTextFocus && !editorReadonly";
|
|
}
|
|
{
|
|
"key" = "ctrl+shift+alt+up";
|
|
"command" = "-editor.action.copyLinesUpAction";
|
|
"when" = "editorTextFocus && !editorReadonly";
|
|
}
|
|
];
|
|
|
|
userSettings = {
|
|
# Editor
|
|
"telemetry.telemetryLevel" = "off";
|
|
"update.mode" = "none";
|
|
|
|
"workbench.colorTheme" = "Flexoki Light";
|
|
"workbench.iconTheme" = "catppuccin-latte";
|
|
"workbench.editor.wrapTabs" = true;
|
|
"explorer.excludeGitIgnore" = true;
|
|
"files.autoSave" = "afterDelay";
|
|
"files.autoSaveDelay" = 5000;
|
|
"diffEditor.codeLens" = true;
|
|
"diffEditor.ignoreTrimWhitespace" = false;
|
|
"editor.bracketPairColorization.enabled" = true;
|
|
"editor.formatOnPaste" = true;
|
|
"editor.formatOnSave" = true;
|
|
"editor.formatOnType" = true;
|
|
"editor.quickSuggestions" = {
|
|
"comments" = "on";
|
|
"strings" = "on";
|
|
"other" = "on";
|
|
};
|
|
|
|
"window.titleBarStyle" = "custom";
|
|
|
|
# Git
|
|
"git.enableSmartCommit" = true;
|
|
"git.autofetch" = true;
|
|
|
|
# C#
|
|
# "csharp.maxProjectFileCountForDiagnosticAnalysis" = 100;
|
|
# "csharp.semanticHighlighting.enabled" = true;
|
|
# "csharp.suppressHiddenDiagnostics" = false;
|
|
# "dotnetAcquisitionExtension.enableTelemetry" = false;
|
|
# "omnisharp.enableEditorConfigSupport" = true;
|
|
# "omnisharp.useModernNet" = true;
|
|
# "omnisharp.useGlobalMono" = "never";
|
|
#"dotnet.dotnetPath" = "/home/${config.home.username}/.nix-profile/bin/dotnet";
|
|
#"omnisharp.sdkPath" = "/home/${config.home.username}/.nix-profile/bin/dotnet";
|
|
#"dotnet.preferCSharpExtension" = false;
|
|
# "dotnetAcquisitionExtension.existingDotnetPath" = [
|
|
# {
|
|
# "extensionId" = "ms-dotnettools.csdevkit";
|
|
# "path" = "/home/${config.home.username}/.nix-profile/bin/dotnet";
|
|
# }
|
|
# ];
|
|
# "NugetGallery.sources" = [
|
|
# "{\"name\": \"nuget.org\",\"url\": \"https://api.nuget.org/v3/index.json\"}"
|
|
# ];
|
|
|
|
# Markdown
|
|
"markdown-preview-enhanced.previewTheme" = "github-dark.css";
|
|
|
|
# Python
|
|
"python.experiments.enabled" = false;
|
|
"python.analysis.inlayHints.variableTypes" = true;
|
|
"python.analysis.inlayHints.pytestParameters" = true;
|
|
"python.analysis.inlayHints.functionReturnTypes" = true;
|
|
|
|
# Bash
|
|
"shellcheck.customArgs" = [ "-x" ];
|
|
"shellcheck.exclude" = [ "2001" ];
|
|
|
|
# Nix
|
|
"nix.formatterPath" = [
|
|
"nix"
|
|
"fmt"
|
|
"--"
|
|
"-"
|
|
];
|
|
"nix.serverPath" = "nil";
|
|
"nix.enableLanguageServer" = true;
|
|
"nix.serverSettings" = {
|
|
"nil" = {
|
|
"diagnostics" = {
|
|
"ignored" = [
|
|
"unused_binding"
|
|
"unused_with"
|
|
];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
};
|
|
}
|