summary refs log tree commit diff
path: root/pkgs/top-level/emacs-packages.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/top-level/emacs-packages.nix')
-rw-r--r--pkgs/top-level/emacs-packages.nix79
1 files changed, 57 insertions, 22 deletions
diff --git a/pkgs/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix
index c4c264c811ad..f6c992d5bd5f 100644
--- a/pkgs/top-level/emacs-packages.nix
+++ b/pkgs/top-level/emacs-packages.nix
@@ -32,7 +32,7 @@
 #   `meta` with `platforms` and `homepage` set to something you are
 #   unlikely to want to override for most packages
 
-{ lib, newScope, stdenv, fetchurl, fetchgit, fetchFromGitHub, fetchhg, fetchpatch, runCommand
+{ lib, newScope, stdenv, fetchurl, fetchgit, fetchFromGitHub, fetchhg, fetchpatch, runCommand, writeText
 
 , emacs, texinfo, lndir, makeWrapper
 , trivialBuild
@@ -50,7 +50,7 @@ let
   };
 
   melpaStablePackages = import ../applications/editors/emacs-modes/melpa-stable-packages.nix {
-    inherit lib;
+    inherit external lib;
   };
 
   melpaPackages = import ../applications/editors/emacs-modes/melpa-packages.nix {
@@ -99,7 +99,11 @@ let
     nativeBuildInputs = [ external.pkgconfig ];
     buildInputs = with external; [ autoconf automake libpng zlib poppler ];
     preBuild = "make server/epdfinfo";
-    fileSpecs = [ "lisp/pdf-*.el" "server/epdfinfo" ];
+    recipe = writeText "recipe" ''
+      (pdf-tools
+       :repo "politza/pdf-tools" :fetcher github
+       :files ("lisp/pdf-*.el" "server/epdfinfo"))
+    '';
     packageRequires = [ tablist let-alist ];
     meta = {
       description = "Emacs support library for PDF files";
@@ -118,7 +122,12 @@ let
     };
     buildInputs = [ external.libffi ];
     preBuild = "make";
-    files = [ "ffi-glue" "ffi.el" ];
+    recipe = writeText "recipe" ''
+      (elisp-ffi
+      :repo "skeeto/elisp-ffi"
+      :fetcher github
+      :files ("ffi-glue" "ffi.el"))
+    '';
     meta = {
       description = "Emacs Lisp Foreign Function Interface";
       longDescription = ''
@@ -163,6 +172,9 @@ let
       rev    = "39ea47c73f040ce8dcc1c2d2639ebc0eb57ab8c8";
       sha256 = "0q3av1qv4m6aj4bil608f688hjpr5px8zqnnrdqx784nz98rpjrs";
     };
+    recipe = writeText "recipe" ''
+      (elpy :repo "jorgenschaefer/elpy" :fetcher github)
+    '';
 
     patchPhase = ''
       for file in elpy.el elpy-pkg.el; do
@@ -203,6 +215,9 @@ let
       rev    = "fcadf2d93aaea3ba88a2ae63a860b9c1f0568167";
       sha256 = "0axx6cc9z9c1wh7qgm6ya54dsp3bn82bnb0cwj1rpv509qqmwgsj";
     };
+    recipe = writeText "recipe" ''
+      (evil-jumper :repo "bling/evil-jumper" :fetcher github)
+    '';
     packageRequires = [ evil ];
     meta = {
       description = "Jump across buffer boundaries and revive dead buffers if necessary";
@@ -222,6 +237,11 @@ let
       rev    = "53a8d8174f915d9dcf5ac6954b1c0cae61266177";
       sha256 = "0wky8vqg08iw34prbz04bqmhfhj82y93swb8zkz6la2vf9da0gmd";
     };
+    recipe = writeText "recipe" ''
+      (find-file-in-project
+       :repo "technomancy/find-file-in-project"
+       :fetcher github)
+    '';
     meta = {
       description = "Quick access to project files in Emacs";
       longDescription = ''
@@ -243,6 +263,9 @@ let
     src = external.ghc-mod.src;
     packageRequires = [ haskell-mode ];
     propagatedUserEnvPkgs = [ external.ghc-mod ];
+    recipe = writeText "recipe" ''
+      (ghc-mod :repo "DanielG/ghc-mod" :fetcher github :files ("elisp/*.el"))
+    '';
     fileSpecs = [ "elisp/*.el" ];
     meta = {
       description = "An extension of haskell-mode that provides completion of symbols and documentation browsing";
@@ -259,6 +282,11 @@ let
       rev = "d8d168148c187ed19350bb7a1a190217c2915a63";
       sha256 = "09b7bg2s9aa4s8f2kdqs4xps3jxkq5wsvbi87ih8b6id38blhf78";
     };
+    recipe = writeText "recipe" ''
+      (haskell-unicode-input-method
+       :repo "roelvandijk/emacs-haskell-unicode-input-method"
+       :fetcher github)
+    '';
     packageRequires = [];
     meta = {
       homepage = "https://melpa.org/#haskell-unicode-input-method/";
@@ -278,7 +306,11 @@ let
     src = external.hindent.src;
     packageRequires = [ haskell-mode ];
     propagatedUserEnvPkgs = [ external.hindent ];
-    fileSpecs = [ "elisp/*.el" ];
+    recipe = writeText "recipe" ''
+      (hindent
+       :repo "commercialhaskell/hindent" :fetcher github
+       :files ("elisp/*.el"))
+    '';
     meta = {
       description = "Indent haskell code using the \"hindent\" program";
       license = bsd3;
@@ -297,7 +329,11 @@ let
     configurePhase = ":";
 
     propagatedUserEnvPkgs = [ external.rtags ];
-    fileSpecs = [ "src/*.el" ];
+    recipe = writeText "recipe" ''
+      (rtags
+       :repo "andersbakken/rtags" :fetcher github
+       :files ("src/*.el"))
+    '';
     inherit (external.rtags) meta;
   };
 
@@ -305,7 +341,9 @@ let
     pname   = "lcs";
     version = circe.version;
     src     = circe.src;
-    fileSpecs = [ "lcs.el" ];
+    recipe  = writeText "recipe" ''
+      (lcs :repo "jorgenschaefer/circe" :fetcher github :files ("lcs.el"))
+    '';
     meta = {
       description = "Longest Common Sequence (LCS) library for Emacs";
       license = gpl3Plus;
@@ -320,7 +358,9 @@ let
     version = circe.version;
     src     = circe.src;
     packageRequires = [ tracking ];
-    fileSpecs = [ "lui*.el" ];
+    recipe  = writeText "recipe" ''
+      (lcs :repo "jorgenschaefer/circe" :fetcher github :files ("lui*.el"))
+    '';
     meta = {
       description = "User interface library for Emacs";
       license = gpl3Plus;
@@ -345,7 +385,9 @@ let
     pname   = "shorten";
     version = circe.version;
     src     = circe.src;
-    fileSpecs = [ "shorten.el" ];
+    recipe  = writeText "recipe" ''
+      (shorten :repo "jorgenschaefer/circe" :fetcher github :files ("shorten.el"))
+    '';
     meta = {
       description = "String shortening to unique prefix library for Emacs";
       license = gpl3Plus;
@@ -354,20 +396,10 @@ let
 
   stgit = callPackage ../applications/editors/emacs-modes/stgit { };
 
-  structured-haskell-mode = melpaBuild rec {
-    pname = "shm";
-    version = external.structured-haskell-mode.version;
-    src = external.structured-haskell-mode.src;
-    packageRequires = [ haskell-mode ];
-    fileSpecs = [ "elisp/*.el" ];
+  structured-haskell-mode = self.shm;
+  shm = (melpaPackages self).shm.overrideAttrs (attrs: {
     propagatedUserEnvPkgs = [ external.structured-haskell-mode ];
-
-    meta = {
-      description = "Structured editing Emacs mode for Haskell";
-      license = bsd3;
-      platforms = external.structured-haskell-mode.meta.platforms;
-    };
-  };
+  });
 
   thingatpt-plus = callPackage ../applications/editors/emacs-modes/thingatpt-plus { };
 
@@ -386,6 +418,9 @@ let
       rm weechat-sauron.el weechat-secrets.el
     '';
     packageRequires = [ s ];
+    recipe = writeText "recipe" ''
+      (weechat :repo "the-kenny/weechat" :fetcher github)
+    '';
     meta = {
       description = "A weechat IRC client frontend for Emacs";
       license = gpl3Plus;