about summary refs log tree commit diff
path: root/emacs.nix
diff options
context:
space:
mode:
authorVincent Ambo <tazjin@gmail.com>2018-03-06T11·09+0100
committerVincent Ambo <tazjin@gmail.com>2018-03-06T11·09+0100
commit92ae9eed7a0a75a0e403227dbe2b436a20c231b3 (patch)
tree72702dff2dd7e724c0b0cb2524b30221993ce359 /emacs.nix
parentbcd317f23df6d076470879c706ca025659bfa722 (diff)
feat(emacs): Add custom nix-mode derivation
Adds a nix-mode derivation that uses the latest nix-mode from master.
Diffstat (limited to 'emacs.nix')
-rw-r--r--emacs.nix22
1 files changed, 19 insertions, 3 deletions
diff --git a/emacs.nix b/emacs.nix
index e192cebf91..dad2c106c1 100644
--- a/emacs.nix
+++ b/emacs.nix
@@ -39,7 +39,24 @@ sly-company = with pkgs; trivialBuildWithCompany {
   };
 };
 
-# Custom code for packages missing from the current Nix packages.
+# The nix-mode in the official repositories is old and annoying to
+# work with, pin it to something newer instead:
+nix-mode = with pkgs; 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")))
+  '';
+};
 
 in emacsWithPackages(epkgs:
   # Actual ELPA packages (the enlightened!)
@@ -75,7 +92,6 @@ in emacsWithPackages(epkgs:
     markdown-mode-plus
     multi-term
     multiple-cursors
-    nix-mode
     paredit
     password-store
     racer
@@ -98,5 +114,5 @@ in emacsWithPackages(epkgs:
   ]) ++
 
   # Custom packaged Emacs packages:
-  [ sly sly-company ]
+  [ sly sly-company nix-mode ]
 )