{ pkgs, inputs, system, ... }: { programs.vscode = { enable = true; package = pkgs.vscodium; enableUpdateCheck = false; enableExtensionUpdateCheck = false; mutableExtensionsDir = false; extensions = with inputs.vscode-extensions.extensions."${system}".open-vsx; [ # Language support rust-lang.rust-analyzer # Rust llvm-vs-code-extensions.vscode-clangd # C++ vadimcn.vscode-lldb # C++ Debugging jnoortheen.nix-ide # Nix tamasfe.even-better-toml # TOML yzhang.markdown-all-in-one # Markdown # Theming pkief.material-icon-theme # Material icons # Utilities streetsidesoftware.code-spell-checker # Spellchecking ]; userSettings = { # Editor "editor.fontFamily" = "'FiraCode Nerd Font Mono', 'Droid Sans Mono', 'monospace', monospace"; "editor.indentSize" = "tabSize"; "editor.tabSize" = 4; # JJ "files.watcherExclude" = { "**/.git/objects/**" = true; "**/.git/subtree-cache/**" = true; "**/.hg/store/**" = true; "**/.jj" = true; }; "files.exclude" = { "**/.git" = true; "**/.jj" = true; "**/.svn" = true; "**/.hg" = true; "**/CVS" = true; "**/.DS_Store" = true; "**/Thumbs.db" = true; }; # Nix "nix.enableLanguageServer" = true; "nix.serverPath" = "nixd"; "nix.serverSettings" = { nixd = { formatting = { command = [ "nixfmt" ]; }; nixpkgs = { expr = ''import (builtins.getFlake "/etc/nixos").inputs.nixpkgs { }''; }; options = { nixos = { expr = ''(builtins.getFlake "/etc/nixos").nixosConfigurations.ty-nixos.options''; }; home-manager = { expr = ''(builtins.getFlake "/etc/nixos").homeConfigurations."ty".options''; }; }; }; }; }; }; }