{ pkgs, ... }: { programs.vscode = { enable = true; package = pkgs.vscodium; extensions = with pkgs.vscode-extensions; [ ms-vscode.cpptools ] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ { name = "vsc-prolog"; publisher = "arthurwang"; version = "0.8.23"; sha256 = "1i6rgz8ap269pph6bh04bimw9yyajd7iyq8dvv7sqmpfk859vb8d"; } { name = "agda-mode"; publisher = "banacorn"; version = "0.5.1"; sha256 = "02r28a8y6pdjhad76z193xrlc4yk4fsynn064w7cff56gdc31bd5"; } { name = "nix"; publisher = "bbenoist"; version = "1.0.1"; sha256 = "0zd0n9f5z1f0ckzfjr38xw2zzmcxg1gjrava7yahg5cvdcw6l35b"; } { name = "catppuccin-vsc"; publisher = "catppuccin"; version = "3.16.0"; sha256 = "1g4021qrsy67fw2b1lvazn58nvr64dkvpywqanbpz24dlgk2573r"; } { name = "doxdocgen"; publisher = "cschlosser"; version = "1.4.0"; sha256 = "1d95znf2vsdzv9jqiigh9zm62dp4m9jz3qcfaxn0n0pvalbiyw92"; } { name = "simple-alignment"; publisher = "earshinov"; version = "1.0.1"; sha256 = "1ak1v1dbwx7d6ablla5njznj59z9jaqbzmci22jmpsd3a70kka1f"; } { name = "yuck"; publisher = "eww-yuck"; version = "0.0.3"; sha256 = "1hxdxa13s1vlilw7fidr8vnl19c9wjazjvnvmqgl4fsswwny110c"; } { name = "todo-tree"; publisher = "gruntfuggly"; version = "0.0.226"; sha256 = "0yrc9qbdk7zznd823bqs1g6n2i5xrda0f9a7349kknj9wp1mqgqn"; } { name = "haskell"; publisher = "haskell"; version = "2.5.3"; sha256 = "13s39fvb6kwxklcfsa5xh4z7y8y3y0h6jv39ljrgl24qkwgx8xnw"; } { name = "latex-workshop"; publisher = "james-yu"; version = "10.7.5"; sha256 = "0habsbk0w2g8vcxqzdbnwy6f0x0ghvcx1f9szd4p1pwjfij2vnax"; } { name = "c-cpp-flylint"; publisher = "jbenden"; version = "1.15.0"; sha256 = "1z1l9ygxsqjn8vpncjzyisdg2sirgzf4ghiv5ak32mkq3k8hgawk"; } { name = "better-cpp-syntax"; publisher = "jeff-hykin"; version = "1.27.1"; sha256 = "037nigza7n71j5vgl3qw0swrmy8gvfj9m8jbi1nb2a3lmsifivqq"; } { name = "language-haskell"; publisher = "justusadam"; version = "3.6.0"; sha256 = "115y86w6n2bi33g1xh6ipz92jz5797d3d00mr4k8dv5fz76d35dd"; } { name = "lean4"; publisher = "leanprover"; version = "0.0.194"; sha256 = "1anal0i85vy0y1rfjx6nj82q8bilh2pyh40j6ax9wfsjyrqzrynf"; } { name = "vscoq"; publisher = "maximedenes"; version = "2.2.3"; sha256 = "066l48b22qnxlwnq2328wmldn2dwrjn5d399rp605ahdihl9f7w7"; } { name = "direnv"; publisher = "mkhl"; version = "0.17.0"; sha256 = "1n2qdd1rspy6ar03yw7g7zy3yjg9j1xb5xa4v2q12b0y6dymrhgn"; } { name = "vscode-ltex"; publisher = "valentjn"; version = "13.1.0"; sha256 = "15qm97i9l65v3x0zxl1895ilazz2jk2wmizbj7kmds613jz7d46c"; } { name = "markdown-all-in-one"; publisher = "yzhang"; version = "3.6.2"; sha256 = "1n9d3qh7vypcsfygfr5rif9krhykbmbcgf41mcjwgjrf899f11h4"; } ]; userSettings = { "prolog.executablePath" = "/etc/profiles/per-user/leonv/bin/swipl"; "agdaMode.connection.agdaLanguageServer" = false; "agdaMode.highlighting.getHighlightWithThemeColors" = false; "editor.unicodeHighlight.ambiguousCharacters" = false; "editor.semanticHighlighting.enabled" = true; "workbench.colorTheme" = "Catppuccin Mocha"; "haskell.manageHLS" = "PATH"; "editor.fontFamily" = "monospace"; "terminal.integrated.minimumContrastRatio" = 1; "terminal.integrated.shellIntegration.enabled" = false; "terminal.integrated.profiles.linux" = { bash = null; zsh = { path = "/run/current-system/sw/bin/zsh"; icon = "terminal-linux"; }; }; "terminal.integrated.defaultProfile.linux" = "zsh"; "vim.handleKeys" = { "<C-c>" = false; "<C-x>" = false; "<C-s>" = false; "<C-v>" = false; "<C-a>" = false; "<C-d>" = false; }; "C_Cpp.formatting" = "disabled"; "vim.overrideCopy" = false; "window.titleBarStyle" = "custom"; "window.customMenuBarAltFocus" = false; "window.enableMenuBarMnemonics" = false; "ltex.sentenceCacheSize" = 50000; "ltex.java.maximumHeapSize" = 8192; "ltex.latex.environments" = { "tikzcd" = "ignore"; }; "editor.tabSize" = 2; "explorer.excludeGitIgnore" = true; "files.exclude" = { "**/*.agdai" = true; }; # try to fix agda suggestions: "editor.acceptSuggestionOnCommitCharacter" = false; "editor.minimap.enabled" = false; "editor.autoClosingOvertype" = "never"; "editor.autoClosingBrackets" = "never"; "editor.accessibilitySupport" = "off"; # for latex "todo-tree.regex.regex" = "((//|#|<!--|;|/\\*|^|%|\\\\)\\s*($TAGS)\\{*|^\\s*- \\[ \\])"; "todo-tree.regex.regexCaseSensitive" = false; "latex-workshop.linting.chktex.enabled" = true; "editor.formatOnSave" = true; "latex-workshop.linting.chktex.exec.args" = [ "-wall" "-n21" "-n22" "-n30" "-e16" "-q" ]; }; keybindings = [ { key = "ctrl+shift+v"; command = "extension.vim_ctrl+v"; when = "editorTextFocus && vim.active && !inDebugRepl"; } { key = "ctrl+shift+="; command = "editor.action.fontZoomIn"; when = ""; } { key = "ctrl+shift+-"; command = "editor.action.fontZoomOut"; when = ""; } ]; }; }