{
  lib,
  config,
  pkgs,
  ...
}: let
  cfg = config.marleyos.programs.phpstorm;
in {
  options.marleyos.programs.phpstorm.enable = lib.mkEnableOption "phpstorm";

  config = lib.mkIf cfg.enable {
    # JetBrains products are unfree.
    nixpkgs.config.allowUnfree = lib.mkForce true;

    home.packages = with pkgs; [
      # jetbrains.phpstorm
      marleyos.phpstorm-with-node
    ];

    home.file.".ideavimrc".source = ./.ideavimrc;
  };
}