31 lines
674 B
Lua
31 lines
674 B
Lua
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.manager_emit("find_do", { "^" .. kw })
|
|
else
|
|
ya.manager_emit("find_arrow", {})
|
|
end
|
|
end,
|
|
}
|