diff options
author | talyz <kim.lindberger@gmail.com> | 2020-08-07 15:24:28 +0200 |
---|---|---|
committer | talyz <kim.lindberger@gmail.com> | 2020-08-07 15:24:28 +0200 |
commit | 7fd146158ef3d30304560445e277b50c4721cba1 (patch) | |
tree | 5cab5aff6b0d03d8a25e4c93f9b3f7f3e38437f8 /parse.nix | |
parent | 9d38d75d818c12c3d60262c4498dec33144e91fc (diff) | |
download | nixlib-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.nix | 16 |
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 { |