diff options
Diffstat (limited to 'elisp.nix')
-rw-r--r-- | elisp.nix | 25 |
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 |