moved emacs from home-manager packages to system packages updated config to use tree-sitter and lsp-mode
65 lines
2.2 KiB
Nix
65 lines
2.2 KiB
Nix
{ pkgs, config, ... }:
|
|
{
|
|
programs.emacs = {
|
|
enable = false;
|
|
extraPackages = epkgs: with epkgs; [
|
|
elcord
|
|
gruvbox-theme
|
|
ivy
|
|
rainbow-delimiters
|
|
evil
|
|
evil-colemak-basics
|
|
treemacs
|
|
treemacs-evil
|
|
lsp-mode
|
|
lsp-treemacs
|
|
lsp-ui
|
|
tree-sitter
|
|
tree-sitter-langs
|
|
tsc
|
|
];
|
|
overrides = self: super : {
|
|
tsc = super.tsc.overrideAttrs(oa:
|
|
let
|
|
tsc-dyn = version: pkgs.fetchurl {
|
|
url = "https://github.com/emacs-tree-sitter/elisp-tree-sitter/releases/download/${version}/tsc-dyn.so";
|
|
sha256 = "sha256-oOq/TAooHRUo7JypCblrB/ztABowAHv2LRhFL/ZmVrg=";
|
|
};
|
|
in { postInstall = oa.postInstall or "" + "cp ${tsc-dyn "0.15.2"} $out/share/emacs/site-lisp/elpa/tsc-${super.tsc.version}/tsc-dyn.so" ;});
|
|
tree-sitter-langs = pkgs.symlinkJoin rec {
|
|
name = "tree-sitter-langs";
|
|
paths =
|
|
let
|
|
tree-sitter-grammars = pkgs.stdenv.mkDerivation rec {
|
|
name = "tree-sitter-grammars";
|
|
version = "0.10.4";
|
|
src = pkgs.fetchzip {
|
|
url = "https://github.com/emacs-tree-sitter/tree-sitter-langs/releases/download/${version}/tree-sitter-grammars-linux-${version}.tar.gz";
|
|
sha256 = "sha256-Z+JtuGLTCVhCJBR60cbcDgWtdKcoYGWoeI5u9GcfvUQ=";
|
|
stripRoot = false;
|
|
};
|
|
installPhase = ''
|
|
install -d $out/langs/bin
|
|
install -m444 * $out/langs/bin
|
|
echo -n $version > $out/langs/bin/BUNDLE-VERSION
|
|
'';
|
|
};
|
|
in
|
|
[
|
|
(super.tree-sitter-langs.overrideAttrs (oldAttrs: {
|
|
postPatch = oldAttrs.postPatch or "" + ''
|
|
substituteInPlace ./tree-sitter-langs-build.el \
|
|
--replace "tree-sitter-langs-grammar-dir tree-sitter-langs--dir" "tree-sitter-langs-grammar-dir \"${tree-sitter-grammars}/langs\""
|
|
'';
|
|
}))
|
|
tree-sitter-grammars
|
|
];
|
|
};
|
|
};
|
|
};
|
|
home.file.emacs = {
|
|
source = ../../config/emacs/init.el;
|
|
target = "${config.home.homeDirectory}/.emacs.d/init.el";
|
|
};
|
|
}
|