{
  pkgs,
  inputs,
  ...
}: {
  home.packages = [pkgs.python3];
  programs.vscode = {
    enable = true;
    userSettings = {
      editor.fontFamily = "'Berkeley Mono', 'Droid Sans Mono', 'monospace', monospace";
      editor.formatOnType = true;
      editor.fontSize = 16;
      files.autoSave = "onFocusChange";
      rust-analyzer.checkOnSave.command = "clippy";
      platformio-ide = {
        useBuiltinPIOCore = true;
        useBuiltinPython = true;
      };
    };
    extensions = with pkgs.vscode-extensions;
      [
        inputs.nixpkgs-rust-analyzer.legacyPackages.x86_64-linux.vscode-extensions.rust-lang.rust-analyzer
        (pkgs.vscode-utils.buildVscodeExtension {
          vscodeExtUniqueId = "vadimcn.vscode-lldb";
          vscodeExtPublisher = "vadimcn";
          vscodeExtName = "vscode-lldb";
          version = "1.6.10";
          name = "vadimcn.vscode-lldb-1.6.10";
          src = pkgs.fetchurl {
            name = "vadimcn.vscode-lldb.zip";
            url = "https://github.com/vadimcn/vscode-lldb/releases/download/v1.6.10/codelldb-${pkgs.system}.vsix";
            sha256 = "sha256-QWbpe6ofacjrTCyWSKljwHDWWeHGmKNqi7cpw8Qy5Tw=";
          };
          buildInputs = with pkgs; [llvm lldb python39 autoPatchelfHook];
        })
      ]
      ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
        {
          publisher = "vscodevim";
          name = "vim";
          version = "1.25.2";
          sha256 = "sha256-hy2Ks6oRc9io6vfgql9aFGjUiRzBCS4mGdDO3NqIFEg=";
        }
        {
          publisher = "bierner";
          name = "markdown-mermaid";
          version = "1.18.1";
          sha256 = "sha256-JWeSs7V/LZ345vGWOLeUgGi68Fot/eA2k+CzWL/Wp4w=";
        }
        {
          publisher = "arrterian";
          name = "nix-env-selector";
          version = "1.0.9";
          sha256 = "sha256-TkxqWZ8X+PAonzeXQ+sI9WI+XlqUHll7YyM7N9uErk0=";
        }
        {
          publisher = "bbenoist";
          name = "nix";
          version = "1.0.1";
          sha256 = "sha256-qwxqOGublQeVP2qrLF94ndX/Be9oZOn+ZMCFX1yyoH0=";
        }
        {
          publisher = "hashicorp";
          name = "terraform";
          version = "2.19.0";
          sha256 = "sha256-k/fcEJuELz0xkwivSrP6Nxtz861BLq1wR2ZDMXVrvkY=";
        }
        {
          publisher = "be5invis";
          name = "toml";
          version = "0.6.0";
          sha256 = "sha256-yk7buEyQIw6aiUizAm+sgalWxUibIuP9crhyBaOjC2E=";
        }
        {
          publisher = "tiehuis";
          name = "zig";
          version = "0.2.5";
          sha256 = "sha256-P8Sep0OtdchTfnudxFNvIK+SW++TyibGVI9zd+B5tu4=";
        }
        {
          publisher = "sjhuangx";
          name = "vscode-scheme";
          version = "0.4.0";
          sha256 = "07vjfymvfv98s5r5a4b5iqhgfz1wpgq2l8h3wlq1bnhhhvmq5pq4";
        }
        {
          publisher = "shaunlebron";
          name = "vscode-parinfer";
          version = "0.6.2";
          sha256 = "0h4v4rnximy6rbh83y4s2qj1cqbj66g9wld39mzd0zwgi6ig9syd";
        }
        {
          publisher = "swyphcosmo";
          name = "spellchecker";
          version = "1.2.13";
          sha256 = "1lr33lf01afgi74c1a9gylk92li4hyq24l8bki4l6ggl4z4c2h3w";
        }
        {
          publisher = "asabil";
          name = "meson";
          version = "1.1.1";
          sha256 = "00cc28a2nb325f54bx51wf5q15x1pmsn0j9z6rnxxqxwii1dm5cl";
        }
        {
          publisher = "codezombiech";
          name = "gitignore";
          version = "0.6.0";
          sha256 = "0gnc0691pwkd9s8ldqabmpfvj0236rw7bxvkf0bvmww32kv1ia0b";
        }
        {
          publisher = "DavidAnson";
          name = "vscode-markdownlint";
          version = "0.26.0";
          sha256 = "0g4pssvajn7d8p2547v7313gjyqx4pzs7cbjws2s3v2fk1sw7vbj";
        }
        {
          publisher = "esbenp";
          name = "prettier-vscode";
          version = "1.8.1";
          sha256 = "0qcm2784n9qc4p77my1kwqrswpji7bp895ay17yzs5g84cj010ln";
        }
        {
          publisher = "hbenl";
          name = "vscode-test-explorer";
          version = "2.9.3";
          sha256 = "1yf85hgvganxq5n5jff9ckn3smxd6xi79cgn6k53qi5w1r5rahy0";
        }
        {
          publisher = "lostintangent";
          name = "vsls-pomodoro";
          version = "0.1.0";
          sha256 = "1b73zbkhlhacvi18cx4g3n6randy3hw9cab1gkw5gzb3375w7w3p";
        }
        {
          publisher = "lostintangent";
          name = "vsls-whiteboard";
          version = "0.0.8";
          sha256 = "13fcay9bs861msb5y694casbw66dmhl504xm5cvprssx1qka186p";
        }
        {
          publisher = "mechatroner";
          name = "rainbow-csv";
          version = "1.0.0";
          sha256 = "1fyamgm7zq31r3c00cn6pcb66rrkfhwfmp72qnhrajydmnvcnbg6";
        }
        {
          publisher = "ronnidc";
          name = "nunjucks";
          version = "0.2.3";
          sha256 = "119xgyn1dggw2rcqkn2mnz364iw5jlrxg7pcydbijsqj5d3zdfsf";
        }
        {
          publisher = "serayuzgur";
          name = "crates";
          version = "0.4.2";
          sha256 = "1knspsc98cfw4mhc0yaz0f2185sxdf9kn9qsysfs6c82g9wjaqcj";
        }
      ];
  };
}
