94 lines
3 KiB
Nix
94 lines
3 KiB
Nix
{
|
|
lib,
|
|
pkgs,
|
|
config,
|
|
...
|
|
}: {
|
|
programs.vscode = lib.mkMerge [
|
|
{
|
|
enable = true;
|
|
package = pkgs.vscodium.override {
|
|
commandLineArgs = ''--password-store="gnome"'';
|
|
};
|
|
enableExtensionUpdateCheck = false;
|
|
enableUpdateCheck = false;
|
|
keybindings = [
|
|
{
|
|
key = "tab";
|
|
command = "selectNextSuggestion";
|
|
when = "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus || suggestWidgetVisible && textInputFocus && !suggestWidgetHasFocusedSuggestion";
|
|
}
|
|
{
|
|
key = "shift+tab";
|
|
command = "selectPrevSuggestion";
|
|
when = "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus || suggestWidgetVisible && textInputFocus && !suggestWidgetHasFocusedSuggestion";
|
|
}
|
|
];
|
|
userSettings = {
|
|
diffEditor.ignoreTrimWhitespace = false;
|
|
editor.cursorBlinking = "smooth";
|
|
editor.cursorSmoothCaretAnimation = "on";
|
|
editor.fontFamily = lib.mkDefault "Monospace";
|
|
editor.fontWeight = 600;
|
|
editor.lineNumbers = "relative";
|
|
editor.smoothScrolling = true;
|
|
editor.tabSize = 2;
|
|
explorer.confirmDragAndDrop = false;
|
|
explorer.confirmDelete = false;
|
|
files.autoSave = "onFocusChange";
|
|
files.trimTrailingWhitespace = true;
|
|
files.trimFinalNewlines = true;
|
|
security.workspace.trust.enabled = false;
|
|
telemetry.telemetryLevel = "off";
|
|
terminal.integrated.cursorStyle = "line";
|
|
terminal.integrated.smoothScrolling = true;
|
|
window.menuBarVisibility = "toggle";
|
|
workbench.list.smoothScrolling = true;
|
|
|
|
# Workaround for VSCode crashing
|
|
# https://github.com/microsoft/vscode/issues/184124
|
|
window.titleBarStyle = "custom";
|
|
workbench.layoutControl.enabled = false;
|
|
#window.commandCenter = false;
|
|
|
|
# Language specific
|
|
### Nix
|
|
"[nix]".editor.tabSize = 2;
|
|
|
|
# Extensions
|
|
### GitLens
|
|
gitlens.showWelcomeOnInstall = false;
|
|
gitlens.showWhatsNewAfterUpgrades = false;
|
|
gitlens.plusFeatures.enabled = false;
|
|
gitlens.telemetry.enabled = false;
|
|
|
|
### Material icons
|
|
workbench.iconTheme = "material-icon-theme";
|
|
workbench.productIconTheme = "material-product-icons";
|
|
};
|
|
extensions = with pkgs.vscode-extensions; [
|
|
### QoL
|
|
eamodio.gitlens
|
|
esbenp.prettier-vscode
|
|
ritwickdey.liveserver
|
|
vscodevim.vim
|
|
editorconfig.editorconfig
|
|
|
|
### Markup formats
|
|
redhat.vscode-yaml
|
|
redhat.vscode-xml
|
|
tamasfe.even-better-toml
|
|
#bungcip.better-toml
|
|
|
|
### Material icons
|
|
pkief.material-icon-theme
|
|
pkief.material-product-icons
|
|
];
|
|
}
|
|
|
|
(lib.mkIf (config.myFlake.home-manager.colorScheme == "tokyonight") {
|
|
extensions = [pkgs.vscode-extensions.enkia.tokyo-night];
|
|
userSettings.workbench.colorTheme = "Tokyo Night";
|
|
})
|
|
];
|
|
}
|