{
  pkgs,
  lib,
  flake,
  config,
  ...
}:
{
  programs = {
    vscode =
      let
        configPath = ./config;
        keybindingsPath = import (configPath + /keybindings.nix);
        extensionsPath = import (configPath + /extensions.nix) {
          inherit
            pkgs
            ;
        };
        userSettingsPath = import (configPath + /userSettings.nix) {
          inherit
            pkgs
            lib
            flake
            config
            ;
        };
      in
      {
        enable = true;
        package = pkgs.vscode;
        # haskell.enable = true;
        # hie.enable = true;
        profiles.default = {
          keybindings = keybindingsPath;
          extensions = extensionsPath;
          userSettings = userSettingsPath;
        };
      };
  };
}
