about summary refs log tree commit diff
path: root/elisp.nix
diff options
context:
space:
mode:
Diffstat (limited to 'elisp.nix')
-rw-r--r--elisp.nix25
1 files changed, 2 insertions, 23 deletions
diff --git a/elisp.nix b/elisp.nix
index 23a7e5a36bf4..d1edb2699f4d 100644
--- a/elisp.nix
+++ b/elisp.nix
@@ -6,35 +6,14 @@ use-package declarations.
 { pkgs }:
 
 let
-  isStrEmpty = s: (builtins.replaceStrings [" "] [""] s) == "";
-
-  splitString = _sep: _s: builtins.filter
-    (x: builtins.typeOf x == "string")
-    (builtins.split _sep _s);
-
-  stripComments = dotEmacs: let
-    lines = splitString "\n" dotEmacs;
-    stripped = builtins.map (l:
-      builtins.elemAt (splitString ";;" l) 0) lines;
-  in builtins.concatStringsSep " " stripped;
-
-  parsePackages = dotEmacs: let
-    strippedComments = stripComments dotEmacs;
-    tokens = builtins.filter (t: !(isStrEmpty t)) (builtins.map
-      (t: if builtins.typeOf t == "list" then builtins.elemAt t 0 else t)
-      (builtins.split "([\(\)])" strippedComments));
-    matches = builtins.map (t:
-      builtins.match "^use-package[[:space:]]+([A-Za-z0-9_-]+).*" t) tokens;
-  in builtins.map (m: builtins.elemAt m 0)
-      (builtins.filter (m: m != null) matches);
-
+  parse = pkgs.callPackage ./parse.nix {};
 in {
   config,
   extraEmacsPackages ? epkgs: [],
   package ? pkgs.emacs,
   override ? (epkgs: epkgs)
 }: let
-  packages = parsePackages config;
+  packages = parse.parsePackagesFromUsePackage config;
   emacsPackages = pkgs.emacsPackagesGen package;
   emacsWithPackages = emacsPackages.emacsWithPackages;
 in emacsWithPackages (epkgs: let