From dc2cfe78cd555eb8c124a0513c3aba1b302c307a Mon Sep 17 00:00:00 2001
From: happy wang <shuizhongyueming@gmail.com>
Date: Thu, 30 Jun 2022 11:22:36 +0800
Subject: [PATCH] add z.lua to autojump

---
 plugins/README.md |  2 +-
 plugins/autojump  | 13 +++++++++++++
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/plugins/README.md b/plugins/README.md
index 0f07309f..cab38504 100644
--- a/plugins/README.md
+++ b/plugins/README.md
@@ -13,7 +13,7 @@ Plugins extend the capabilities of `nnn`. They are _executable_ scripts (or bina
 
 | Plugin (a-z) | Description [Clears selection<sup>1</sup>] | Lang | Dependencies |
 | --- | --- | --- | --- |
-| [autojump](autojump) | Navigate to dir/path | sh | [jump](https://github.com/gsamokovarov/jump)/autojump/<br>zoxide/z (needs fzf) |
+| [autojump](autojump) | Navigate to dir/path | sh | [jump](https://github.com/gsamokovarov/jump)/autojump/<br>zoxide/z/[z.lua](https://github.com/skywind3000/z.lua) |
 | [boom](boom) | Play random music from dir | sh | [moc](http://moc.daper.net/) |
 | [bulknew](bulknew) | Create multiple files/dirs at once | bash | sed, xargs, mktemp |
 | [cdpath](cdpath) | `cd` to the directory from `CDPATH` | sh | fzf |
diff --git a/plugins/autojump b/plugins/autojump
index 21a28ea8..6a24a52f 100755
--- a/plugins/autojump
+++ b/plugins/autojump
@@ -8,9 +8,12 @@
 #   - OR zoxide - https://github.com/ajeetdsouza/zoxide
 #   - OR z - https://github.com/rupa/z (z requires fzf)
 #   - OR z (fish) - https://github.com/jethrokuan/z (z requires fzf)
+#   - OR z.lua - https://github.com/skywind3000/z.lua (z.lua can enhanced with fzf)
 #
 # Note: The dependencies STORE NAVIGATION PATTERNS
 #
+# to make z.lua work, you need to set $NNN_ZLUA to the path of script z.lua
+#
 # Shell: POSIX compliant
 # Authors: Marty Buchaus, Dave Snider, Tim Adler, Nick Waywood
 
@@ -41,6 +44,16 @@ elif type zoxide >/dev/null 2>&1; then
     	odir="$(zoxide query -- "$dir")"
     	printf "%s" "0c$odir" > "$NNN_PIPE"
     fi
+elif type lua >/dev/null 2>&1 && [ -n "$NNN_ZLUA" ]; then
+    printf "jump to : "
+    read -r line
+    if type fzf >/dev/null 2>&1; then
+        odir="$(lua "$NNN_ZLUA" -l "$line" | fzf --nth 2.. --reverse --inline-info --tac +s -e --height 35%)"
+        printf "%s" "0c$(echo "$odir" | awk '{print $2}')" > "$NNN_PIPE"
+    else
+        odir="$(lua "$NNN_ZLUA" -e "$line")"
+        printf "%s" "0c$odir" > "$NNN_PIPE"
+    fi
 else
     # rupa/z uses $_Z_DATA, jethrokuan/z (=port of z for fish) uses $Z_DATA
     datafile="${_Z_DATA:-${Z_DATA:-$HOME/.z}}"
-- 
2.51.0