{ pkgs, ... }: { programs.vscode = { enable = true; mutableExtensionsDir = false; extensions = (with pkgs.vscode-extensions; [ bbenoist.nix dhall.dhall-lang dhall.vscode-dhall-lsp-server eamodio.gitlens github.copilot jnoortheen.nix-ide matklad.rust-analyzer ms-vscode.cpptools ms-vscode-remote.remote-ssh scala-lang.scala serayuzgur.crates tamasfe.even-better-toml redhat.vscode-yaml ritwickdey.liveserver vadimcn.vscode-lldb yzhang.markdown-all-in-one ]) ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ { name = "rust-doc-viewer"; publisher = "jscearcy"; version = "2.0.1"; sha256 = "sha256-bVWM3RlcXY0+fACKrOtq63dHo0neyaw/TuhUxwCxeYs="; } { name = "cargo"; publisher = "panicbit"; version = "0.2.3"; sha256 = "sha256-B0oLZE8wtygTaUX9/qOBg9lJAjUUg2i7B2rfSWJerEU="; } { name = "vscode-rust-test-adapter"; publisher = "swellaby"; version = "0.11.0"; sha256 = "sha256-IgfcIRF54JXm9l2vVjf7lFJOVSI0CDgDjQT+Hw6FO4Q="; } { name = "discord-vscode"; publisher = "icrawl"; version = "5.8.0"; sha256 = "sha256-IU/looiu6tluAp8u6MeSNCd7B8SSMZ6CEZ64mMsTNmU="; } { name = "vscode-test-explorer"; publisher = "hbenl"; version = "2.21.1"; sha256 = "sha256-fHyePd8fYPt7zPHBGiVmd8fRx+IM3/cSBCyiI/C0VAg="; } { name = "test-adapter-converter"; publisher = "ms-vscode"; version = "0.1.5"; sha256 = "sha256-nli4WJ96lL3JssNuwLCsthvphI7saFT2ktWQ46VNooc="; } { name = "material-icon-theme"; publisher = "PKief"; version = "4.14.1"; sha256 = "sha256-OHXi0EfeyKMeFiMU5yg0aDoWds4ED0lb+l6T12XZ3LQ="; } { name = "vscode-direnv"; publisher = "cab404"; version = "1.0.0"; sha256 = "sha256-+nLH+T9v6TQCqKZw6HPN/ZevQ65FVm2SAo2V9RecM3Y="; } { name = "veriloghdl"; publisher = "mshr-h"; version = "1.5.3"; sha256 = "sha256-4BXSG/YllhpXa0z7TqytKyqAKLJvSEsOLt1i6gA+WcE="; } { name = "cmake-tools"; publisher = "ms-vscode"; version = "1.10.5"; sha256 = "sha256-T57uCK1rGe3dBnYbK7QhN2NG3NwTEZm0/EY8S1Pyf7I="; } { name = "cmake"; publisher = "twxs"; version = "0.0.17"; sha256 = "sha256-CFiva1AO/oHpszbpd7lLtDzbv1Yi55yQOQPP/kCTH4Y="; } { name = "better-cpp-syntax"; publisher = "jeff-hykin"; version = "1.15.13"; sha256 = "sha256-ugn7nERz/IZ37mD/WWOWHcaB7nMLkeN+cCTCGCUHpOo="; } { name = "cpptools-themes"; publisher = "ms-vscode"; version = "1.0.0"; sha256 = "sha256-E0cLGPpCwqnisgsDt6OGVlrO02mL/vuwe87qn/oCulk="; } { name = "doxdocgen"; publisher = "cschlosser"; version = "1.4.0"; sha256 = "sha256-InEfF1X7AgtsV47h8WWq5DZh6k/wxYhl2r/pLZz9JbU="; } { name = "clang-tidy"; publisher = "notskm"; version = "0.5.1"; sha256 = "sha256-neAvG8bk8yzpbuSzvVVi8Z3lCr29FBncXx3Sv/KChHw="; } { publisher = "42crunch"; name = "vscode-openapi"; version = "4.9.4"; sha256 = "sha256-rY4sBGXEtMX2VsJ7LArCKPfqi0NVdg0ReKCAPUbCe0Q="; } ]; userSettings = { "diffEditor.codeLens" = true; "editor.bracketPairColorization.enabled" = true; "editor.cursorSmoothCaretAnimation" = true; "editor.cursorSurroundingLines" = 3; "editor.foldingImportsByDefault" = true; "editor.fontFamily" = "'FiraCode Nerd Font Mono', 'Noto Sans Mono CJK', monospace"; "editor.formatOnPaste" = true; "editor.formatOnSave" = true; "editor.formatOnType" = true; "editor.guides.bracketPairs" = true; "editor.inlineSuggest.enabled" = true; "editor.renderWhitespace" = "all"; "editor.smoothScrolling" = true; "editor.suggest.localityBonus" = true; "editor.suggest.preview" = true; "editor.suggest.shareSuggestSelections" = true; "editor.tabCompletion" = "on"; "editor.tabSize" = 2; "editor.multiCursorModifier" = "ctrlCmd"; # Multi-Cursor won’t work otherwise "explorer.experimental.fileNesting.enabled" = true; "files.insertFinalNewline" = true; "files.trimFinalNewlines" = true; "files.trimTrailingWhitespace" = true; "git.autoStash" = true; "git.autofetch" = true; "git.enableCommitSigning" = true; "git.enableSmartCommit" = true; "git.fetchOnPull" = true; "git.rebaseWhenSync" = true; "nix.enableLanguageServer" = true; "nix.serverPath" = "${pkgs.rnix-lsp}/bin/rnix-lsp"; "search.smartCase" = true; "telemetry.telemetryLevel" = "off"; "update.mode" = "none"; "workbench.colorTheme" = "Monokai"; "workbench.commandPalette.preserveInput" = true; "workbench.iconTheme" = "material-icon-theme"; "workbench.list.smoothScrolling" = true; "C_Cpp.intelliSenseEngine" = "Disabled"; "C_Cpp.autocomplete" = "Disabled"; "C_Cpp.errorSquiggles" = "Disabled"; "clang-tidy.executable" = "${pkgs.llvmPackages_latest.clang-unwrapped}/bin/clang-tidy"; "cmake.cmakePath" = "${pkgs.cmake}/bin/cmake"; "github.copilot.enable" = { "*" = true; }; "crates.listPreReleases" = true; "css.format.spaceAroundSelectorSeparator" = true; "less.format.spaceAroundSelectorSeparator" = true; "scss.format.spaceAroundSelectorSeparator" = true; "vscode-dhall-lsp-server.executable" = "${pkgs.dhall-lsp-server}/bin/dhall-lsp-server"; "doxdocgen.generic.useGitUserEmail" = true; "doxdocgen.generic.useGitUserName" = true; "git.confirmSync" = false; "clangd.path" = "${pkgs.llvmPackages_latest.clang-unwrapped}/bin/clangd"; "verilog.ctags.path" = "${pkgs.ctags}/bin/ctags"; "verilog.languageServer" = "${pkgs.svls}/bin/svls"; "verilog.linting.linter" = "${pkgs.verilator}/bin/verilator"; "redhat.telemetry.enabled" = false; # FUCK OFF }; }; }