{ pkgs, ... }: { home-manager.users.grape = { programs.vscode = { enable = true; package = pkgs.vscodium; #package = pkgs.vscode; extensions = with pkgs.vscode-extensions; [ # language suports pkgs.unstable.vscode-extensions.rust-lang.rust-analyzer pkgs.vscode-extensions.jnoortheen.nix-ide pkgs.vscode-extensions.redhat.java pkgs.vscode-extensions.zxh404.vscode-proto3 pkgs.vscode-extensions.redhat.vscode-yaml pkgs.vscode-extensions.ms-azuretools.vscode-docker pkgs.vscode-extensions.octref.vetur pkgs.vscode-extensions.bungcip.better-toml pkgs.vscode-extensions.mikestead.dotenv # linters pkgs.vscode-extensions.esbenp.prettier-vscode pkgs.vscode-extensions.naumovs.color-highlight # essentials, other pkgs.vscode-extensions.streetsidesoftware.code-spell-checker pkgs.vscode-extensions.vscodevim.vim pkgs.vscode-extensions.oderwat.indent-rainbow pkgs.vscode-extensions.usernamehw.errorlens pkgs.vscode-extensions.christian-kohler.path-intellisense pkgs.vscode-extensions.vscjava.vscode-spring-initializr pkgs.vscode-extensions.gruntfuggly.todo-tree pkgs.vscode-extensions.eamodio.gitlens #themes, icons pkgs.vscode-extensions.vscode-icons-team.vscode-icons pkgs.vscode-extensions.mechatroner.rainbow-csv # local ai pkgs.vscode-extensions.continue.continue ] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ { name = "shades-of-purple"; publisher = "ahmadawais"; version = "7.3.2"; sha256 = "10q5w9g7ghn2qvdc7h2b79x1vy8nzpnwz8dbg1h03074ikhvjx4v"; } { name = "aw-watcher-vscode"; publisher = "activitywatch"; version = "0.5.0"; sha256 = "0nvw8pp6xaqs6w2zz3dr0vlrrpd6wcgh6jc5bp5ld92p0f34idrs"; } ]; userSettings = { "terminal.integrated.defaultProfile.linux" = "zsh"; "editor.formatOnSave" = true; "editor.lineNumbers" = "relative"; "workbench.colorTheme" = "Shades of Purple (Super Dark)"; "editor.minimap.enabled" = false; "workbench.iconTheme" = "vscode-icons"; "vim.smartRelativeLine" = true; "redhat.telemetry.enabled" = false; "rust-analyzer.cargo.sysroot" = "discover"; "[typescriptreact]" = { "editor.defaultFormatter" = "esbenp.prettier-vscode"; }; # load build.rs from checks "rust-analyzer.cargo.loadOutDirsFromCheck" = true; "rust-analyzer.experimental.procAttrMacros" = false; "rust-analyzer.cargo.buildScripts.enable" = true; }; languageSnippets = { nix = { "Include RustSrc for vscode" = { body = [ "LIBCLANG_PATH = \"\${pkgs.llvmPackages_17.libclang.lib}/lib\";" "RUST_SRC_PATH = \"\${pkgs.rust.packages.stable.rustPlatform.rustLibSrc}\";" ]; description = "Include RUST_SRC_PATH and LIBCLANG_PATH for devshells"; prefix = [ "rust-src" ]; scope = "nix"; }; "Crane.dev workspace package into container" = { body = [ "$1-container = pkgs.dockerTools.buildLayeredImage" "{" " name = \"$1\";" " tag = \"latest\";" " contents = with pkgs; [" " cacert" " openssl" " pkg-config" " libiconv" " ];" "" " config = {" " WorkingDir = \"/app\";" " Volumes = {" " \"/app\" = { };" " };" " Entrypoint = [ \"\${$1}/bin/$2\" ];" " };" "}; " ]; prefix = [ "nix container" ]; scope = "nix"; }; pkginit = { body = [ "{pkgs, ...}: {" "$1" "}" ]; description = "Insert a nix pkg config"; prefix = [ "nix" ]; }; }; }; }; }; }