{ pkgs, lib, ... }: let plugins = (import ./extensions.lock) { pkgs = pkgs; lib = lib; }; in { imports = [ ./javascript.nix ./latex.nix ./markdown.nix ./nix.nix ./rust.nix ]; programs.vscode = { enable = true; package = pkgs.symlinkJoin { name = pkgs.vscodium.name; paths = [pkgs.vscodium]; buildInputs = [pkgs.vscodium pkgs.makeWrapper]; postBuild = '' wrapProgram $out/bin/codium \ --add-flags "--enable-features=UseOzonePlatform" \ --add-flags "--enable-features=WaylandWindowDecorations" \ --add-flags "--ozone-platform=wayland" ''; pname = pkgs.vscodium.pname; version = pkgs.vscodium.version; meta = pkgs.vscodium.meta; }; enableUpdateCheck = false; enableExtensionUpdateCheck = false; extensions = with plugins; [ # General extensions ## Code Completion # github.copilot # github.copilot-chat continue.continue ## Development Environment ms-toolsai.jupyter ms-vscode-remote.remote-containers ## Error Checking usernamehw.errorlens ## Export and Visualisation ibm.output-colorizer nobuhito.printcode pnp.polacode ## Git lamartire.git-indicators mhutchie.git-graph ## Miscelaneous britesnow.vscode-toggle-quotes mrmlnc.vscode-duplicate qcz.text-power-tools # Language extensions ## CSV mechatroner.rainbow-csv ## Python ms-python.python ## Rust language extensions serayuzgur.crates tamasfe.even-better-toml vadimcn.vscode-lldb ## SVG jock.svg ]; userSettings = { "editor.linkedEditing" = true; "window.menuBarVisibility" = "toggle"; "github.copilot.editor.enableAutoCompletions" = true; }; }; }