{ pkgs, config, ... }: let in { home.packages = with pkgs; [ emacs-lsp-booster tree-sitter fd ripgrep typescript-language-server typescript vscode-langservers-extracted tailwindcss-language-server rust-analyzer nodejs nixd haskell-language-server cmake libtool glibtool graphviz mu ]; home.sessionVariables = { LSP_USE_PLISTS = "true"; }; programs.emacs = { enable = true; package = pkgs.emacsWithPackagesFromUsePackage { config = ./init.el; package = pkgs.emacs-pgtk; defaultInitFile = false; extraEmacsPackages = epkgs: with epkgs; [ mu4e pdf-tools vterm treesit-grammars.with-all-grammars ]; override = final: prev: { lsp-mode = prev.lsp-mode.overrideAttrs (old: { buildPhase = '' export LSP_USE_PLISTS=true '' + (old.buildPhase or ""); }); }; }; }; services.emacs.enable = true; home.file.".config/emacs/init.el" = { source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/dev/personal/nixos/modules/home-manager/emacs/init.el"; }; }