emacs update

moved emacs from home-manager packages to system packages
updated config to use tree-sitter and lsp-mode
This commit is contained in:
2021-09-13 06:55:25 +05:30
parent d49f0b473c
commit ddd2ae4efc
11 changed files with 238 additions and 85 deletions

View File

@@ -1,18 +1,60 @@
{ pkgs, config, ... }:
{
#i dont really use emacs but eh
programs.emacs = {
enable = true;
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: {
gruvbox-theme = self.melpaPackages.gruvbox-theme.overrideAttrs(_: {
patches = [ ../../config/emacs/gruvbox-el.patch ];
});
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 = {