dotfiles/flakes/emacs/home.nix
2026-03-31 09:25:55 +02:00

94 lines
2 KiB
Nix

{ pkgs, lib, ... }:
let
swiftTreeSitterGrammar = pkgs.tree-sitter-grammars.tree-sitter-swift;
swiftTreeSitterLibraryName =
if pkgs.stdenv.hostPlatform.isDarwin then
"libtree-sitter-swift.dylib"
else
"libtree-sitter-swift.so";
in
{
home.file.".emacs.d/early-init.el".source = ./config/early-init.el;
home.file.".emacs.d/tree-sitter/${swiftTreeSitterLibraryName}".source =
"${swiftTreeSitterGrammar}/parser";
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:
let
myEpkgs = epkgs.overrideScope (import ./pkgs { inherit pkgs; });
in
with myEpkgs; [
agent-shell
apheleia
avy
cape
cider
clojure-mode
consult
consult-denote
copilot
corfu
denote
diff-hl
dockerfile-mode
ef-themes
eglot
envrc
exec-path-from-shell
flycheck
flycheck-clj-kondo
flycheck-swiftlint
flymake-collection
graphql-mode
helpful
htmlize
jinx
js2-mode
json-mode
ledger-mode
ligature
markdown-mode
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
swift-ts-mode
super-save
terraform-mode
treesit-auto
ob-typescript
yaml-mode
vterm
fontaine
magit
magit-todos
marginalia
modus-themes
nix-mode
vertico
winpulse
yasnippet
];
};
}