{
  lib,
  config,
  pkgs,
  ...
}:
let
  cfg = config.krop.hm.programs.codium;
in
{
  options.krop.hm.programs.codium = {
    enable = lib.mkOption {
      type = lib.types.bool;
      default = true;
      example = false;
      description = "Enable my codium configuration";
    };
  };
  config = lib.mkIf cfg.enable {
    home.packages = with pkgs; [
      gopls
      nixd
    ];
    programs.vscode = {
      enable = true;
      package = pkgs.vscodium;
      profiles.default.extensions =
        with pkgs.vscode-extensions;
        [
          jnoortheen.nix-ide
          tamasfe.even-better-toml
          vscodevim.vim
          ms-azuretools.vscode-docker
          ms-kubernetes-tools.vscode-kubernetes-tools
          redhat.vscode-yaml
          ms-python.python
          ms-python.debugpy
          ms-python.vscode-pylance
          golang.go
          rust-lang.rust-analyzer
          hashicorp.terraform
          svelte.svelte-vscode
          github.copilot
        ]
        ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
          {
            name = "d2";
            publisher = "terrastruct";
            version = "0.8.8";
            sha256 = "nnljLG2VL7r8bu+xFOTBx5J2UBsdjOwtAzDDXKtK0os=";
          }
        ];
      mutableExtensionsDir = false;
    };
  };
}