summaryrefslogtreecommitdiff
path: root/fedora/.config/yazi/plugins/jump-to-char.yazi/main.lua
diff options
context:
space:
mode:
authorTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2025-12-11 11:46:09 +0900
committerTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2025-12-11 11:46:09 +0900
commit8c0fe8d0d0dd4bbd16c1095e25b2e3ffa1fdb0d3 (patch)
tree597b8dfd730eda9b410fb6082b0bee7fcc7e70e2 /fedora/.config/yazi/plugins/jump-to-char.yazi/main.lua
parent74713d79880967f5f0f8652c6741bc5fa63a8794 (diff)
updates
Diffstat (limited to 'fedora/.config/yazi/plugins/jump-to-char.yazi/main.lua')
-rw-r--r--fedora/.config/yazi/plugins/jump-to-char.yazi/main.lua32
1 files changed, 32 insertions, 0 deletions
diff --git a/fedora/.config/yazi/plugins/jump-to-char.yazi/main.lua b/fedora/.config/yazi/plugins/jump-to-char.yazi/main.lua
new file mode 100644
index 0000000..8a434f1
--- /dev/null
+++ b/fedora/.config/yazi/plugins/jump-to-char.yazi/main.lua
@@ -0,0 +1,32 @@
+--- @since 25.5.31
+
+local AVAILABLE_CHARS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789."
+
+local changed = ya.sync(function(st, new)
+ local b = st.last ~= new
+ st.last = new
+ return b or not cx.active.finder
+end)
+
+local escape = function(s) return s == "." and "\\." or s end
+
+return {
+ entry = function()
+ local cands = {}
+ for i = 1, #AVAILABLE_CHARS do
+ cands[#cands + 1] = { on = AVAILABLE_CHARS:sub(i, i) }
+ end
+
+ local idx = ya.which { cands = cands, silent = true }
+ if not idx then
+ return
+ end
+
+ local kw = escape(cands[idx].on)
+ if changed(kw) then
+ ya.emit("find_do", { "^" .. kw })
+ else
+ ya.emit("find_arrow", {})
+ end
+ end,
+}