nix-config/programs/vscode/default.nix
2024-11-13 22:37:45 -08:00

107 lines
3.3 KiB
Nix

{ pkgs, ... }:
let
myExtensions = with pkgs.vscode-extensions; [
asvetliakov.vscode-neovim
baccata.scaladex-search
charliermarsh.ruff
davidanson.vscode-markdownlint
enkia.tokyo-night
github.copilot
github.copilot-chat
github.github-vscode-theme
github.vscode-github-actions
github.vscode-pull-request-github
humao.rest-client
jnoortheen.nix-ide
marp-team.marp-vscode
mechatroner.rainbow-csv
mkhl.direnv
ms-python.debugpy
ms-python.python
ms-python.vscode-pylance
ms-toolsai.jupyter
ms-toolsai.jupyter-keymap
ms-toolsai.jupyter-renderers
ms-toolsai.vscode-jupyter-cell-tags
ms-toolsai.vscode-jupyter-slideshow
ms-vscode.makefile-tools
ms-toolsai.jupyter
redhat.java
redhat.vscode-yaml
rust-lang.rust-analyzer
scalameta.metals
skyapps.fish-vscode
sswg.swift-lang
svsool.markdown-memo
timonwong.shellcheck
usernamehw.errorlens
visualstudioexptteam.vscodeintellicode
visualjj.visualjj
vscode-icons-team.vscode-icons
vscjava.vscode-java-pack
xyz.local-history
yzhang.markdown-all-in-one
];
myUserSettings = {
"editor.fontFamily" = "SF Mono";
"editor.fontLigatures" = true;
"editor.fontSize" = 13;
"editor.copyWithSyntaxHighlighting" = true;
"extensions.experimental.affinity" = {
"asvetliakov.vscode-neovim" = 1;
};
"extensions.ignoreRecommendations" = true;
"files.autoSave" = "afterDelay";
"git.confirmSync" = true;
"git.rebaseWhenSync" = true;
"github.gitProtocol" = "ssh";
"githubPullRequests.notifications" = "pullRequests";
"githubPullRequests.pullBranch" = "never";
"markdown.extension.preview.autoShowPreviewToSide" = true;
"notebook.formatOnSave" = true;
"notebook.codeActionsOnSave" = {
"notebook.source.fixAll" = true;
"notebook.source.organizeImports" = true;
};
# Install paste image manually as not in nix ( https://marketplace.visualstudio.com/items?itemName=mushan.vscode-paste-image )
"pasteImage.insertPattern" = "![[\${imageFileName}]]";
"pasteImage.path" = "\${projectRoot}/Attachments";
"python.analysis.extraPaths" = [ "src" ];
"python.analysis.autoFormatStrings" = true;
"python.analysis.autoImportCompletions" = true;
"python.analysis.completeFunctionParens" = true;
"python.analysis.inlayHints.pytestParameters" = true;
"python.analysis.typeCheckingMode" = "strict";
"python.testing.pytestEnabled" = true;
"[python]" = {
"editor.defaultFormatter" = "charliermarsh.ruff";
"editor.formatOnSave" = true;
"editor.codeActionsOnSave" = {
"source.fixAll" = true;
"source.organizeImports" = true;
};
};
"telemetry.telemetryLevel" = "off";
"terminal.integrated.defaultProfile.osx" = "fish";
"terminal.integrated.fontFamily" = "SF Mono";
"terminal.integrated.fontSize" = 13;
"update.mode" = "none";
"vsicons.dontShowNewVersionMessage" = true;
"window.openFoldersInNewWindow" = "on";
"workbench.colorTheme" = "Tokyo Night";
"workbench.iconTheme" = "vscode-icons";
"workbench.sideBar.location" = "right";
};
in
{
programs.vscode = {
enable = true;
enableUpdateCheck = false;
enableExtensionUpdateCheck = false;
mutableExtensionsDir = false;
extensions = myExtensions;
userSettings = myUserSettings;
};
}