{
  pkgs,
  lib,
  config,
  ...
}:
with lib;
let
  cfg = config.home.jetbrains;
in
{
  options.home.jetbrains = {
    enable = mkEnableOption "jetbrains text editor";
    idea = mkEnableOption "intellij idea";
    clion = mkEnableOption "clion ide";
    goland = mkEnableOption "goland ide" // {
      default = true;
    };
  };

  config = {
    users.homeModules = [
      # this module passes jetbrains configuration to home-manager
      { passthrough.jetbrains = cfg; }
    ];

    users.home.persist.directories = mkIf cfg.enable [
      "go"
      ".java/.userPrefs"
      ".config/JetBrains"
      ".local/share/JetBrains"
    ];
  };
}