103 lines
3.8 KiB
Nix
103 lines
3.8 KiB
Nix
{pkgs, ...}: {
|
|
programs.vscode = {
|
|
enable = true;
|
|
package = pkgs.vscodium;
|
|
extensions = with pkgs.vscode-extensions; [
|
|
# nix language
|
|
bbenoist.nix
|
|
# nix-shell suport
|
|
arrterian.nix-env-selector
|
|
# nix formatting
|
|
kamadorueda.alejandra
|
|
# python
|
|
ms-python.python
|
|
# C/C++
|
|
ms-vscode.cpptools
|
|
# OCaml
|
|
ocamllabs.ocaml-platform
|
|
|
|
# Color theme
|
|
catppuccin.catppuccin-vsc
|
|
catppuccin.catppuccin-vsc-icons
|
|
];
|
|
userSettings = {
|
|
"update.mode" = "none";
|
|
"extensions.autoUpdate" = false; # This stuff fixes vscode freaking out when theres an update
|
|
"window.titleBarStyle" = "custom"; # needed otherwise vscode crashes, see https://github.com/NixOS/nixpkgs/issues/246509
|
|
|
|
"window.menuBarVisibility" = "toggle";
|
|
"editor.fontFamily" = "'JetBrainsMono Nerd Font', 'SymbolsNerdFont', 'monospace', monospace";
|
|
"terminal.integrated.fontFamily" = "'JetBrainsMono Nerd Font', 'SymbolsNerdFont'";
|
|
"editor.fontSize" = 16;
|
|
"workbench.colorTheme" = "Catppuccin Mocha";
|
|
"workbench.iconTheme" = "catppuccin-mocha";
|
|
"catppuccin.accentColor" = "lavender";
|
|
"vsicons.dontShowNewVersionMessage" = true;
|
|
"explorer.confirmDragAndDrop" = true;
|
|
"editor.fontLigatures" = true;
|
|
"editor.minimap.enabled" = true;
|
|
"workbench.startupEditor" = "none";
|
|
|
|
"editor.formatOnSave" = true;
|
|
"editor.formatOnType" = true;
|
|
"editor.formatOnPaste" = true;
|
|
|
|
"workbench.layoutControl.type" = "menu";
|
|
"workbench.editor.limit.enabled" = true;
|
|
"workbench.editor.limit.value" = 10;
|
|
"workbench.editor.limit.perEditorGroup" = true;
|
|
"workbench.editor.showTabs" = "multiple";
|
|
"files.autoSave" = "onWindowChange";
|
|
"explorer.openEditors.visible" = 0;
|
|
"breadcrumbs.enabled" = false;
|
|
"editor.renderControlCharacters" = false;
|
|
"workbench.activityBar.location" = "default";
|
|
"workbench.statusBar.visible" = false;
|
|
"editor.scrollbar.verticalScrollbarSize" = 4;
|
|
"editor.scrollbar.horizontalScrollbarSize" = 4;
|
|
"editor.scrollbar.vertical" = "auto";
|
|
"editor.scrollbar.horizontal" = "auto";
|
|
"workbench.layoutControl.enabled" = false;
|
|
|
|
"editor.mouseWheelZoom" = true;
|
|
|
|
"C_Cpp.autocompleteAddParentheses" = true;
|
|
"C_Cpp.formatting" = "vcFormat";
|
|
"C_Cpp.vcFormat.newLine.closeBraceSameLine.emptyFunction" = true;
|
|
"C_Cpp.vcFormat.newLine.closeBraceSameLine.emptyType" = true;
|
|
"C_Cpp.vcFormat.space.beforeEmptySquareBrackets" = true;
|
|
"C_Cpp.vcFormat.newLine.beforeOpenBrace.block" = "sameLine";
|
|
"C_Cpp.vcFormat.newLine.beforeOpenBrace.function" = "sameLine";
|
|
"C_Cpp.vcFormat.newLine.beforeElse" = false;
|
|
"C_Cpp.vcFormat.newLine.beforeCatch" = false;
|
|
"C_Cpp.vcFormat.newLine.beforeOpenBrace.type" = "sameLine";
|
|
"C_Cpp.vcFormat.space.betweenEmptyBraces" = true;
|
|
"C_Cpp.vcFormat.space.betweenEmptyLambdaBrackets" = true;
|
|
"C_Cpp.vcFormat.indent.caseLabels" = true;
|
|
"C_Cpp.intelliSenseCacheSize" = 2048;
|
|
"C_Cpp.intelliSenseMemoryLimit" = 2048;
|
|
"C_Cpp.default.browse.path" = [
|
|
''''${workspaceFolder}/**''
|
|
];
|
|
"C_Cpp.default.cStandard" = "gnu11";
|
|
"C_Cpp.inlayHints.parameterNames.hideLeadingUnderscores" = false;
|
|
"C_Cpp.intelliSenseUpdateDelay" = 500;
|
|
"C_Cpp.workspaceParsingPriority" = "medium";
|
|
"C_Cpp.clang_format_sortIncludes" = true;
|
|
"C_Cpp.doxygen.generatedStyle" = "/**";
|
|
};
|
|
# Keybindings
|
|
keybindings = [
|
|
{
|
|
key = "ctrl+q";
|
|
command = "editor.action.commentLine";
|
|
when = "editorTextFocus && !editorReadonly";
|
|
}
|
|
{
|
|
key = "ctrl+s";
|
|
command = "workbench.action.files.saveFiles";
|
|
}
|
|
];
|
|
};
|
|
}
|