about summary refs log tree commit diff
path: root/parse.nix
diff options
context:
space:
mode:
authortalyz <kim.lindberger@gmail.com>2020-08-07 15:24:28 +0200
committertalyz <kim.lindberger@gmail.com>2020-08-07 15:24:28 +0200
commit7fd146158ef3d30304560445e277b50c4721cba1 (patch)
tree5cab5aff6b0d03d8a25e4c93f9b3f7f3e38437f8 /parse.nix
parent9d38d75d818c12c3d60262c4498dec33144e91fc (diff)
downloadnixlib-7fd146158ef3d30304560445e277b50c4721cba1.tar
nixlib-7fd146158ef3d30304560445e277b50c4721cba1.tar.gz
nixlib-7fd146158ef3d30304560445e277b50c4721cba1.tar.bz2
nixlib-7fd146158ef3d30304560445e277b50c4721cba1.tar.lz
nixlib-7fd146158ef3d30304560445e277b50c4721cba1.tar.xz
nixlib-7fd146158ef3d30304560445e277b50c4721cba1.tar.zst
nixlib-7fd146158ef3d30304560445e277b50c4721cba1.zip
Use the native Org mode parsing capabilities of fromElisp...
..for IFD free Org babel file support.
Diffstat (limited to 'parse.nix')
-rw-r--r--parse.nix16
1 files changed, 13 insertions, 3 deletions
diff --git a/parse.nix b/parse.nix
index 068d84428a42..7c1b53684835 100644
--- a/parse.nix
+++ b/parse.nix
@@ -1,7 +1,7 @@
 { pkgs, lib }:
 
 let
-  inherit (import ./repos/fromElisp { inherit pkgs; }) fromElisp;
+  inherit (import ./repos/fromElisp { inherit pkgs; }) fromElisp fromOrgModeBabelElisp;
 
   isStrEmpty = s: (builtins.replaceStrings [ " " ] [ "" ] s) == "";
 
@@ -69,8 +69,18 @@ let
   #     :hook (emacs-lisp-mode lisp-mode lisp-interaction-mode))
   # ''
   # => [ "direnv" "paredit" ]
-  parsePackagesFromUsePackage = config: alwaysEnsure:
+  parsePackagesFromUsePackage = {
+    configText,
+    alwaysEnsure ? false,
+    isOrgModeFile ? false
+  }:
     let
+      readFunction =
+        if isOrgModeFile then
+          fromOrgModeBabelElisp
+        else
+          fromElisp;
+
       find = item: list:
         if list == [] then [] else
           if builtins.head list == item then
@@ -133,7 +143,7 @@ let
         else
           [];
     in
-      lib.flatten (map recurse (fromElisp config));
+      lib.flatten (map recurse (readFunction configText));
 
 in
 {