{ config, pkgs, lib, ... }: { home.file.".emacs.d/early-init.el".source = ./config/early-init.el; home.file.".emacs.d/tree-sitter/libtree-sitter-swift.dylib".source = ./config/tree-sitter/libtree-sitter-swift.dylib; home.file.".emacs.d/snippets".source = ./config/snippets; programs.emacs = { enable = true; extraConfig = builtins.readFile ./config/init.el + builtins.readFile ./config/lisp/utils.el; extraPackages = epkgs: (with epkgs; [ ace-window apheleia avy cape cider clojure-mode consult (trivialBuild { pname = "copilot"; version = "master-12-28-2024"; src = pkgs.fetchFromGitHub { owner = "copilot-emacs"; repo = "copilot.el"; rev = "c5dfa99f05878db5e6a6a378dc7ed09f11e803d4"; hash = "sha256-FzI08AW7a7AleEM7kSQ8LsWsDYID8SW1SmSN6/mIB/A="; }; packageRequires = [ editorconfig dash f jsonrpc ]; }) corfu diff-hl dockerfile-mode ef-themes eglot envrc exec-path-from-shell flycheck flycheck-clj-kondo flycheck-swiftlint (trivialBuild { pname = "gptel"; version = "master-09-29-2024"; src = pkgs.fetchFromGitHub { owner = "karthink"; repo = "gptel"; rev = "2b9398a7b3bb2a66f52a8d0b1fdc3f311b2c1a3d"; hash = "sha256-+CxSA9QmyKigbk8kB5N6kKZ/a5Tw0X4ym57AOoqYA4Y="; }; }) graphql-mode helpful htmlize jinx js2-mode json-mode ligature minions multiple-cursors nerd-icons nerd-icons-completion nerd-icons-corfu nerd-icons-dired nerd-icons-ibuffer ob-restclient ob-swift olivetti orderless org org-modern ox-gfm ox-reveal pulsar rainbow-delimiters rainbow-mode restclient smartparens swift-mode (trivialBuild { pname = "swift-ts-mode"; version = "main-07-05-2024"; src = pkgs.fetchFromGitHub { owner = "rechsteiner"; repo = "swift-ts-mode"; rev = "5e198d306bd4d49e4dddab39195fe99e1caf8892"; hash = "sha256-c7AAFuaDbufMpzJtJ2PbRRXFJmo1y4L50T0idzxrvao="; }; }) super-save treesit-auto ob-typescript yaml-mode vterm fontaine magit magit-todos marginalia modus-themes nix-mode vertico yasnippet ]); }; }