chore(emacs): Remove manually upgraded packages that are in 18.09

Removes a whole bunch of manually pinned packages that were moved into
stable in 18.09.

However, it should be noted that `sly` is again broken in stable.
This commit is contained in:
Vincent Ambo 2018-10-10 11:21:15 +02:00
parent d3058c0d0b
commit c7e60c1de4

183
emacs.nix
View file

@ -1,163 +1,22 @@
# Derivation for Emacs pre-configured with packages that I need. # Derivation for Emacs pre-configured with packages that I need.
#
# TODO: Fix sly (again)
{ pkgs }: { pkgs }:
with pkgs.unstable; with emacsPackagesNg; with pkgs; with emacsPackagesNg;
let emacsWithPackages = (emacsPackagesNgGen emacs).emacsWithPackages; let emacsWithPackages = (emacsPackagesNgGen emacs).emacsWithPackages;
# The nix-mode in the official repositories is old and annoying to
# work with, pin it to something newer instead:
nix-mode = emacsPackagesNg.melpaBuild {
pname = "nix-mode";
version = "20180306";
src = fetchFromGitHub {
owner = "NixOS";
repo = "nix-mode";
rev = "0ac0271f6c8acdbfddfdbb1211a1972ae562ec17";
sha256 = "157vy4xkvaqd76km47sh41wykbjmfrzvg40jxgppnalq9pjxfinp";
};
recipeFile = writeText "nix-mode-recipe" ''
(nix-mode :repo "NixOS/nix-mode" :fetcher github
:files (:defaults (:exclude "nix-mode-mmm.el")))
'';
};
jsonrpc = emacsPackagesNg.elpaBuild rec {
pname = "jsonrpc";
version = "1.0.0";
src = fetchurl {
url = "https://elpa.gnu.org/packages/jsonrpc-${version}.el";
sha256 = "06lmmn7j2ilkvwibbpgnd8p6d63fjjnxd2ma8f4jw6vrz1f7lwvs";
};
};
eglot = emacsPackagesNg.melpaBuild rec {
pname = "eglot";
version = "1.1";
src = fetchurl {
url = "https://elpa.gnu.org/packages/eglot-${version}.tar";
sha256 = "01h4wh87lrd9l50y20gjjkgg760v8ixvbcb3q8jykl29989zw62y";
};
packageRequires = [ jsonrpc ];
};
# ivy has not been updated in unstable for a while:
ivySource = fetchFromGitHub {
owner = "abo-abo";
repo = "swiper";
rev = "6f2939485d33e9b28022d3b6912a50669dcdd596";
sha256 = "1f2i6hkcbiqdw7fr9vabsm32a0gy647llzki6b97yv8vwa0klh2q";
};
withIvySources = pname: recipe: emacsPackagesNg.melpaBuild {
inherit pname;
version = "20180616";
recipeFile = builtins.toFile "${pname}-recipe" recipe;
src = ivySource;
};
newIvy.ivy = withIvySources "ivy" ''
(ivy :files (:defaults
(:exclude "swiper.el" "counsel.el" "ivy-hydra.el")
"doc/ivy-help.org"))
'';
newIvy.counsel = withIvySources "counsel" ''
(counsel :files ("counsel.el"))
'';
newIvy.swiper = withIvySources "swiper" ''
(swiper :files ("swiper.el"))
'';
newIvy.ivy-pass = melpaBuild {
pname = "ivy-pass";
version = "20170812";
src = fetchFromGitHub {
owner = "ecraven";
repo = "ivy-pass";
rev = "5b523de1151f2109fdd6a8114d0af12eef83d3c5";
sha256 = "18crb4zh2pjf0cmv3b913m9vfng27girjwfqc3mk7vqd1r5a49yk";
};
};
counsel-notmuch = melpaBuild {
pname = "counsel-notmuch";
version = "20171223";
packageRequires = [
newIvy.ivy
pkgs.notmuch
];
src = fetchFromGitHub {
owner = "fuxialexander";
repo = "counsel-notmuch";
rev = "ac1aaead81c6860d7b8324cc1c00bcd52de5e9ca";
sha256 = "19frcrz6bx7d7v1hkg0xv7zmbk2sydlsdzn1s96cqzjk1illchkz";
};
};
# prescient & ivy-prescient provide better filtering in ivy/counsel,
# but they are not in nixpkgs yet:
prescientSource = fetchFromGitHub {
owner = "raxod502";
repo = "prescient.el";
rev = "27c94636489d5b062970a0f7e9041ca186b6b659";
sha256 = "05jk8cms48dhpbaimmx3akmnq32fgbc0q4dja7lvpvssmq398cn7";
};
prescient = emacsPackagesNg.melpaBuild {
pname = "prescient";
version = "1.0";
src = prescientSource;
recipeFile = writeText "prescient-recipe" ''
(prescient :files ("prescient.el"))
'';
};
ivy-prescient = emacsPackagesNg.melpaBuild {
pname = "ivy-prescient";
version = "1.0";
src = prescientSource;
packageRequires = [ prescient newIvy.ivy ];
recipeFile = writeText "ivy-prescient-recipe" ''
(ivy-prescient :files ("ivy-prescient.el"))
'';
};
sly = emacsPackagesNg.melpaBuild {
pname = "sly";
version = "20180613";
packageRequires = [ elpaPackages.company ];
src = fetchFromGitHub {
owner = "joaotavora";
repo = "sly";
rev = "a05b45f1564a86a9d49707c9c570da6c3a56b6e5";
sha256 = "1c9xzppxlnak1px0dv0ljpp4izfj4377lncvrcb1jaiyh8z8ry48";
};
recipeFile = writeText "sly-recipe" ''
(sly :files ("*.el"
("lib" "lib/*")
("contrib" "contrib/*")))
'';
};
# As the EXWM-README points out, XELB should be built from source if # As the EXWM-README points out, XELB should be built from source if
# EXWM is. # EXWM is.
xelb = melpaBuild { xelb = melpaBuild {
pname = "xelb"; pname = "xelb";
ename = "xelb"; ename = "xelb";
version = "0.15"; version = "0.15";
recipe = builtins.toFile "recipe" ''
(xelb :fetcher github
:repo "ch11ng/xelb")
'';
packageRequires = [ cl-generic emacs ]; packageRequires = [ cl-generic emacs ];
@ -175,6 +34,10 @@ exwm = melpaBuild {
pname = "exwm"; pname = "exwm";
ename = "exwm"; ename = "exwm";
version = "0.19"; version = "0.19";
recipe = builtins.toFile "recipe" ''
(exwm :fetcher github
:repo "ch11ng/exwm")
'';
packageRequires = [ xelb ]; packageRequires = [ xelb ];
@ -201,21 +64,28 @@ in emacsWithPackages(epkgs:
# MELPA packages: # MELPA packages:
(with epkgs.melpaPackages; [ (with epkgs.melpaPackages; [
alchemist
browse-kill-ring browse-kill-ring
cargo cargo
counsel
counsel-notmuch
dash dash
dash-functional dash-functional
dockerfile-mode dockerfile-mode
edit-server edit-server
eglot
elixir-mode elixir-mode
erlang erlang
exwm
go-mode go-mode
gruber-darker-theme gruber-darker-theme
haskell-mode haskell-mode
ht ht
hydra hydra
idle-highlight-mode idle-highlight-mode
intero
ivy
ivy-pass
ivy-prescient
jq-mode jq-mode
kotlin-mode kotlin-mode
magit magit
@ -224,15 +94,20 @@ in emacsWithPackages(epkgs:
multi-term multi-term
multiple-cursors multiple-cursors
nginx-mode nginx-mode
nix-mode
paredit paredit
password-store password-store
pg pg
pkgs.notmuch
prescient
rainbow-delimiters rainbow-delimiters
restclient restclient
rust-mode rust-mode
s s
# sly
smartparens smartparens
string-edit string-edit
swiper
telephone-line telephone-line
terraform-mode terraform-mode
toml-mode toml-mode
@ -243,14 +118,6 @@ in emacsWithPackages(epkgs:
yaml-mode yaml-mode
]) ++ ]) ++
# Stable packages
(with epkgs.melpaStablePackages; [
intero
]) ++
# Use custom updated ivy packages
(lib.attrValues newIvy) ++
# Custom packaged Emacs packages: # Custom packaged Emacs packages:
[ nix-mode eglot prescient ivy-prescient counsel-notmuch pkgs.notmuch sly exwm ] [ xelb exwm ]
) )