{ pkgs, ... }:

let
  actualPkgs = pkgs.unstablePkgs;
  lib = actualPkgs.lib;
  
  nodePkgs = with actualPkgs.nodePackages; [
    vscode-langservers-extracted
    typescript
    svelte-language-server
    yaml-language-server
    typescript-language-server
    bash-language-server
  ];

  py3 = actualPkgs.python3.withPackages (ps: with ps; [
    python-lsp-server
    python-lsp-ruff
    pylsp-rope
    rope
    mypy
    pylsp-mypy
  ]);
in
{
  home = {
    packages = with actualPkgs; [
      black
      helix
      clang-tools
      rust-analyzer
      nixd
      texlab
      nixpkgs-fmt
      shellcheck
      shfmt
      gopls
      golangci-lint
      golangci-lint-langserver
      py3
      ruff
      gh
      gofumpt
    ] ++ nodePkgs;

    sessionVariables = {
      EDITOR = "hx";
      VISUAL = "hx";
    };

    file = {
      ".config/helix/config.toml".text = lib.readFile ./helix/config.toml;
      ".config/helix/languages.toml".text = lib.readFile ./helix/languages.toml;
    };
  };
}