feat: Add entry_index for entry_makers
cleanup
This commit is contained in:
@@ -281,7 +281,7 @@ git.branches = function(opts)
|
|||||||
entry.value = entry.name
|
entry.value = entry.name
|
||||||
entry.ordinal = entry.name
|
entry.ordinal = entry.name
|
||||||
entry.display = make_display
|
entry.display = make_display
|
||||||
return entry
|
return make_entry.set_default_entry_mt(entry, opts)
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
previewer = previewers.git_branch_log.new(opts),
|
previewer = previewers.git_branch_log.new(opts),
|
||||||
|
|||||||
@@ -70,13 +70,13 @@ internal.builtin = function(opts)
|
|||||||
finder = finders.new_table {
|
finder = finders.new_table {
|
||||||
results = objs,
|
results = objs,
|
||||||
entry_maker = function(entry)
|
entry_maker = function(entry)
|
||||||
return {
|
return make_entry.set_default_entry_mt({
|
||||||
value = entry,
|
value = entry,
|
||||||
text = entry.text,
|
text = entry.text,
|
||||||
display = entry.text,
|
display = entry.text,
|
||||||
ordinal = entry.text,
|
ordinal = entry.text,
|
||||||
filename = entry.filename,
|
filename = entry.filename,
|
||||||
}
|
}, opts)
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
previewer = previewers.builtin.new(opts),
|
previewer = previewers.builtin.new(opts),
|
||||||
@@ -221,11 +221,11 @@ internal.planets = function(opts)
|
|||||||
finder = finders.new_table {
|
finder = finders.new_table {
|
||||||
results = acceptable_files,
|
results = acceptable_files,
|
||||||
entry_maker = function(line)
|
entry_maker = function(line)
|
||||||
return {
|
return make_entry.set_default_entry_mt({
|
||||||
ordinal = line,
|
ordinal = line,
|
||||||
display = line,
|
display = line,
|
||||||
filename = base_directory .. "/data/memes/planets/" .. line,
|
filename = base_directory .. "/data/memes/planets/" .. line,
|
||||||
}
|
}, opts)
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
previewer = previewers.cat.new(opts),
|
previewer = previewers.cat.new(opts),
|
||||||
@@ -298,11 +298,11 @@ internal.symbols = function(opts)
|
|||||||
finder = finders.new_table {
|
finder = finders.new_table {
|
||||||
results = results,
|
results = results,
|
||||||
entry_maker = function(entry)
|
entry_maker = function(entry)
|
||||||
return {
|
return make_entry.set_default_entry_mt({
|
||||||
value = entry,
|
value = entry,
|
||||||
ordinal = entry[1] .. " " .. entry[2],
|
ordinal = entry[1] .. " " .. entry[2],
|
||||||
display = entry[1] .. " " .. entry[2],
|
display = entry[1] .. " " .. entry[2],
|
||||||
}
|
}, opts)
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
sorter = conf.generic_sorter(opts),
|
sorter = conf.generic_sorter(opts),
|
||||||
@@ -399,14 +399,14 @@ internal.quickfixhistory = function(opts)
|
|||||||
end
|
end
|
||||||
local entry_maker = opts.make_entry
|
local entry_maker = opts.make_entry
|
||||||
or function(entry)
|
or function(entry)
|
||||||
return {
|
return make_entry.set_default_entry_mt({
|
||||||
value = entry.title or "Untitled",
|
value = entry.title or "Untitled",
|
||||||
ordinal = entry.title or "Untitled",
|
ordinal = entry.title or "Untitled",
|
||||||
display = entry.title or "Untitled",
|
display = entry.title or "Untitled",
|
||||||
nr = entry.nr,
|
nr = entry.nr,
|
||||||
id = entry.id,
|
id = entry.id,
|
||||||
items = entry.items,
|
items = entry.items,
|
||||||
}
|
}, opts)
|
||||||
end
|
end
|
||||||
local qf_entry_maker = make_entry.gen_from_quickfix(opts)
|
local qf_entry_maker = make_entry.gen_from_quickfix(opts)
|
||||||
pickers.new(opts, {
|
pickers.new(opts, {
|
||||||
@@ -690,13 +690,13 @@ internal.help_tags = function(opts)
|
|||||||
finder = finders.new_table {
|
finder = finders.new_table {
|
||||||
results = tags,
|
results = tags,
|
||||||
entry_maker = function(entry)
|
entry_maker = function(entry)
|
||||||
return {
|
return make_entry.set_default_entry_mt({
|
||||||
value = entry.name .. "@" .. entry.lang,
|
value = entry.name .. "@" .. entry.lang,
|
||||||
display = entry.name,
|
display = entry.name,
|
||||||
ordinal = entry.name,
|
ordinal = entry.name,
|
||||||
filename = entry.filename,
|
filename = entry.filename,
|
||||||
cmd = entry.cmd,
|
cmd = entry.cmd,
|
||||||
}
|
}, opts)
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
previewer = previewers.help.new(opts),
|
previewer = previewers.help.new(opts),
|
||||||
@@ -1189,10 +1189,8 @@ internal.autocommands = function(opts)
|
|||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
local val = selection.value
|
local val = selection.value
|
||||||
local output = vim.fn.execute(
|
local group_name = val.group_name ~= "<anonymous>" or ""
|
||||||
"verb autocmd " .. val.group_name .. " " .. val.event .. " " .. val.pattern,
|
local output = vim.fn.execute("verb autocmd " .. group_name .. " " .. val.event .. " " .. val.pattern, "silent")
|
||||||
"silent"
|
|
||||||
)
|
|
||||||
for line in output:gmatch "[^\r\n]+" do
|
for line in output:gmatch "[^\r\n]+" do
|
||||||
local source_file = line:match "Last set from (.*) line %d*$" or line:match "Last set from (.*)$"
|
local source_file = line:match "Last set from (.*) line %d*$" or line:match "Last set from (.*)$"
|
||||||
if source_file and source_file ~= "Lua" then
|
if source_file and source_file ~= "Lua" then
|
||||||
|
|||||||
@@ -41,8 +41,40 @@ local get_filename_fn = function()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local handle_entry_index = function(opts, t, k)
|
||||||
|
local override = ((opts or {}).entry_index or {})[k]
|
||||||
|
if not override then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local val, save = override(t, opts)
|
||||||
|
if save then
|
||||||
|
rawset(t, k, val)
|
||||||
|
end
|
||||||
|
return val
|
||||||
|
end
|
||||||
|
|
||||||
local make_entry = {}
|
local make_entry = {}
|
||||||
|
|
||||||
|
make_entry.set_default_entry_mt = function(tbl, opts)
|
||||||
|
return setmetatable({}, {
|
||||||
|
__index = function(t, k)
|
||||||
|
local override = handle_entry_index(opts, t, k)
|
||||||
|
if override then
|
||||||
|
return override
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Only hit tbl once
|
||||||
|
local val = tbl[k]
|
||||||
|
if val then
|
||||||
|
rawset(t, k, val)
|
||||||
|
end
|
||||||
|
|
||||||
|
return val
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
do
|
do
|
||||||
local lookup_keys = {
|
local lookup_keys = {
|
||||||
display = 1,
|
display = 1,
|
||||||
@@ -50,13 +82,18 @@ do
|
|||||||
value = 1,
|
value = 1,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function make_entry.gen_from_string(opts)
|
||||||
local mt_string_entry = {
|
local mt_string_entry = {
|
||||||
__index = function(t, k)
|
__index = function(t, k)
|
||||||
|
local override = handle_entry_index(opts, t, k)
|
||||||
|
if override then
|
||||||
|
return override
|
||||||
|
end
|
||||||
|
|
||||||
return rawget(t, rawget(lookup_keys, k))
|
return rawget(t, rawget(lookup_keys, k))
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
function make_entry.gen_from_string()
|
|
||||||
return function(line)
|
return function(line)
|
||||||
return setmetatable({
|
return setmetatable({
|
||||||
line,
|
line,
|
||||||
@@ -97,6 +134,11 @@ do
|
|||||||
end
|
end
|
||||||
|
|
||||||
mt_file_entry.__index = function(t, k)
|
mt_file_entry.__index = function(t, k)
|
||||||
|
local override = handle_entry_index(opts, t, k)
|
||||||
|
if override then
|
||||||
|
return override
|
||||||
|
end
|
||||||
|
|
||||||
local raw = rawget(mt_file_entry, k)
|
local raw = rawget(mt_file_entry, k)
|
||||||
if raw then
|
if raw then
|
||||||
return raw
|
return raw
|
||||||
@@ -220,6 +262,11 @@ do
|
|||||||
end,
|
end,
|
||||||
|
|
||||||
__index = function(t, k)
|
__index = function(t, k)
|
||||||
|
local override = handle_entry_index(opts, t, k)
|
||||||
|
if override then
|
||||||
|
return override
|
||||||
|
end
|
||||||
|
|
||||||
local raw = rawget(mt_vimgrep_entry, k)
|
local raw = rawget(mt_vimgrep_entry, k)
|
||||||
if raw then
|
if raw then
|
||||||
return raw
|
return raw
|
||||||
@@ -272,13 +319,13 @@ function make_entry.gen_from_git_stash(opts)
|
|||||||
local _, branch_name = string.match(splitted[2], "^([WIP on|On]+) (.+)")
|
local _, branch_name = string.match(splitted[2], "^([WIP on|On]+) (.+)")
|
||||||
local commit_info = splitted[3]
|
local commit_info = splitted[3]
|
||||||
|
|
||||||
return {
|
return make_entry.set_default_entry_mt({
|
||||||
value = stash_idx,
|
value = stash_idx,
|
||||||
ordinal = commit_info,
|
ordinal = commit_info,
|
||||||
branch_name = branch_name,
|
branch_name = branch_name,
|
||||||
commit_info = commit_info,
|
commit_info = commit_info,
|
||||||
display = make_display,
|
display = make_display,
|
||||||
}
|
}, opts)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -312,13 +359,13 @@ function make_entry.gen_from_git_commits(opts)
|
|||||||
msg = "<empty commit message>"
|
msg = "<empty commit message>"
|
||||||
end
|
end
|
||||||
|
|
||||||
return {
|
return make_entry.set_default_entry_mt({
|
||||||
value = sha,
|
value = sha,
|
||||||
ordinal = sha .. " " .. msg,
|
ordinal = sha .. " " .. msg,
|
||||||
msg = msg,
|
msg = msg,
|
||||||
display = make_display,
|
display = make_display,
|
||||||
current_file = opts.current_file,
|
current_file = opts.current_file,
|
||||||
}
|
}, opts)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -364,7 +411,7 @@ function make_entry.gen_from_quickfix(opts)
|
|||||||
return function(entry)
|
return function(entry)
|
||||||
local filename = vim.F.if_nil(entry.filename, get_filename(entry.bufnr))
|
local filename = vim.F.if_nil(entry.filename, get_filename(entry.bufnr))
|
||||||
|
|
||||||
return {
|
return make_entry.set_default_entry_mt({
|
||||||
value = entry,
|
value = entry,
|
||||||
ordinal = (not hidden and filename or "") .. " " .. entry.text,
|
ordinal = (not hidden and filename or "") .. " " .. entry.text,
|
||||||
display = make_display,
|
display = make_display,
|
||||||
@@ -376,7 +423,7 @@ function make_entry.gen_from_quickfix(opts)
|
|||||||
text = entry.text,
|
text = entry.text,
|
||||||
start = entry.start,
|
start = entry.start,
|
||||||
finish = entry.finish,
|
finish = entry.finish,
|
||||||
}
|
}, opts)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -443,8 +490,7 @@ function make_entry.gen_from_lsp_symbols(opts)
|
|||||||
ordinal = filename .. " "
|
ordinal = filename .. " "
|
||||||
end
|
end
|
||||||
ordinal = ordinal .. symbol_name .. " " .. (symbol_type or "unknown")
|
ordinal = ordinal .. symbol_name .. " " .. (symbol_type or "unknown")
|
||||||
|
return make_entry.set_default_entry_mt({
|
||||||
return {
|
|
||||||
value = entry,
|
value = entry,
|
||||||
ordinal = ordinal,
|
ordinal = ordinal,
|
||||||
display = make_display,
|
display = make_display,
|
||||||
@@ -456,7 +502,7 @@ function make_entry.gen_from_lsp_symbols(opts)
|
|||||||
symbol_type = symbol_type,
|
symbol_type = symbol_type,
|
||||||
start = entry.start,
|
start = entry.start,
|
||||||
finish = entry.finish,
|
finish = entry.finish,
|
||||||
}
|
}, opts)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -508,7 +554,7 @@ function make_entry.gen_from_buffer(opts)
|
|||||||
local indicator = entry.flag .. hidden .. readonly .. changed
|
local indicator = entry.flag .. hidden .. readonly .. changed
|
||||||
local line_count = vim.api.nvim_buf_line_count(entry.bufnr)
|
local line_count = vim.api.nvim_buf_line_count(entry.bufnr)
|
||||||
|
|
||||||
return {
|
return make_entry.set_default_entry_mt({
|
||||||
value = bufname,
|
value = bufname,
|
||||||
ordinal = entry.bufnr .. " : " .. bufname,
|
ordinal = entry.bufnr .. " : " .. bufname,
|
||||||
display = make_display,
|
display = make_display,
|
||||||
@@ -518,7 +564,7 @@ function make_entry.gen_from_buffer(opts)
|
|||||||
-- account for potentially stale lnum as getbufinfo might not be updated or from resuming buffers picker
|
-- account for potentially stale lnum as getbufinfo might not be updated or from resuming buffers picker
|
||||||
lnum = entry.info.lnum ~= 0 and math.max(math.min(entry.info.lnum, line_count), 1) or 1,
|
lnum = entry.info.lnum ~= 0 and math.max(math.min(entry.info.lnum, line_count), 1) or 1,
|
||||||
indicator = indicator,
|
indicator = indicator,
|
||||||
}
|
}, opts)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -565,7 +611,7 @@ function make_entry.gen_from_treesitter(opts)
|
|||||||
local ts_utils = require "nvim-treesitter.ts_utils"
|
local ts_utils = require "nvim-treesitter.ts_utils"
|
||||||
local start_row, start_col, end_row, _ = ts_utils.get_node_range(entry.node)
|
local start_row, start_col, end_row, _ = ts_utils.get_node_range(entry.node)
|
||||||
local node_text = vim.treesitter.get_node_text(entry.node, bufnr)
|
local node_text = vim.treesitter.get_node_text(entry.node, bufnr)
|
||||||
return {
|
return make_entry.set_default_entry_mt({
|
||||||
value = entry.node,
|
value = entry.node,
|
||||||
kind = entry.kind,
|
kind = entry.kind,
|
||||||
ordinal = node_text .. " " .. (entry.kind or "unknown"),
|
ordinal = node_text .. " " .. (entry.kind or "unknown"),
|
||||||
@@ -580,7 +626,7 @@ function make_entry.gen_from_treesitter(opts)
|
|||||||
text = node_text,
|
text = node_text,
|
||||||
start = start_row,
|
start = start_row,
|
||||||
finish = end_row,
|
finish = end_row,
|
||||||
}
|
}, opts)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -595,14 +641,12 @@ function make_entry.gen_from_packages(opts)
|
|||||||
end
|
end
|
||||||
|
|
||||||
return function(module_name)
|
return function(module_name)
|
||||||
local entry = {
|
return make_entry.set_default_entry_mt({
|
||||||
valid = module_name ~= "",
|
valid = module_name ~= "",
|
||||||
value = module_name,
|
value = module_name,
|
||||||
ordinal = module_name,
|
ordinal = module_name,
|
||||||
}
|
display = make_display(module_name),
|
||||||
entry.display = make_display(module_name)
|
}, opts)
|
||||||
|
|
||||||
return entry
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -644,21 +688,21 @@ function make_entry.gen_from_apropos(opts)
|
|||||||
cmd = vim.split(cmd, ",")[1]
|
cmd = vim.split(cmd, ",")[1]
|
||||||
return keyword
|
return keyword
|
||||||
and sections[section]
|
and sections[section]
|
||||||
and {
|
and make_entry.set_default_entry_mt({
|
||||||
value = cmd,
|
value = cmd,
|
||||||
description = desc,
|
description = desc,
|
||||||
ordinal = cmd,
|
ordinal = cmd,
|
||||||
display = make_display,
|
display = make_display,
|
||||||
section = section,
|
section = section,
|
||||||
keyword = keyword,
|
keyword = keyword,
|
||||||
}
|
}, opts)
|
||||||
or nil
|
or nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function make_entry.gen_from_marks(_)
|
function make_entry.gen_from_marks(opts)
|
||||||
return function(item)
|
return function(item)
|
||||||
return {
|
return make_entry.set_default_entry_mt({
|
||||||
value = item.line,
|
value = item.line,
|
||||||
ordinal = item.line,
|
ordinal = item.line,
|
||||||
display = item.line,
|
display = item.line,
|
||||||
@@ -666,11 +710,11 @@ function make_entry.gen_from_marks(_)
|
|||||||
col = item.col,
|
col = item.col,
|
||||||
start = item.lnum,
|
start = item.lnum,
|
||||||
filename = item.filename,
|
filename = item.filename,
|
||||||
}
|
}, opts)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function make_entry.gen_from_registers(_)
|
function make_entry.gen_from_registers(opts)
|
||||||
local displayer = entry_display.create {
|
local displayer = entry_display.create {
|
||||||
separator = " ",
|
separator = " ",
|
||||||
hl_chars = { ["["] = "TelescopeBorder", ["]"] = "TelescopeBorder" },
|
hl_chars = { ["["] = "TelescopeBorder", ["]"] = "TelescopeBorder" },
|
||||||
@@ -689,12 +733,12 @@ function make_entry.gen_from_registers(_)
|
|||||||
end
|
end
|
||||||
|
|
||||||
return function(entry)
|
return function(entry)
|
||||||
return {
|
return make_entry.set_default_entry_mt({
|
||||||
value = entry,
|
value = entry,
|
||||||
ordinal = entry,
|
ordinal = entry,
|
||||||
content = vim.fn.getreg(entry),
|
content = vim.fn.getreg(entry),
|
||||||
display = make_display,
|
display = make_display,
|
||||||
}
|
}, opts)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -727,7 +771,7 @@ function make_entry.gen_from_keymaps(opts)
|
|||||||
end
|
end
|
||||||
|
|
||||||
return function(entry)
|
return function(entry)
|
||||||
return {
|
return make_entry.set_default_entry_mt({
|
||||||
mode = entry.mode,
|
mode = entry.mode,
|
||||||
lhs = get_lhs(entry),
|
lhs = get_lhs(entry),
|
||||||
desc = get_desc(entry),
|
desc = get_desc(entry),
|
||||||
@@ -736,22 +780,22 @@ function make_entry.gen_from_keymaps(opts)
|
|||||||
value = entry,
|
value = entry,
|
||||||
ordinal = entry.mode .. " " .. get_lhs(entry) .. " " .. get_desc(entry),
|
ordinal = entry.mode .. " " .. get_lhs(entry) .. " " .. get_desc(entry),
|
||||||
display = make_display,
|
display = make_display,
|
||||||
}
|
}, opts)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function make_entry.gen_from_highlights()
|
function make_entry.gen_from_highlights(opts)
|
||||||
local make_display = function(entry)
|
local make_display = function(entry)
|
||||||
local display = entry.value
|
local display = entry.value
|
||||||
return display, { { { 0, #display }, display } }
|
return display, { { { 0, #display }, display } }
|
||||||
end
|
end
|
||||||
|
|
||||||
return function(entry)
|
return function(entry)
|
||||||
return {
|
return make_entry.set_default_entry_mt({
|
||||||
value = entry,
|
value = entry,
|
||||||
display = make_display,
|
display = make_display,
|
||||||
ordinal = entry,
|
ordinal = entry,
|
||||||
}
|
}, opts)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -772,12 +816,12 @@ function make_entry.gen_from_picker(opts)
|
|||||||
end
|
end
|
||||||
|
|
||||||
return function(entry)
|
return function(entry)
|
||||||
return {
|
return make_entry.set_default_entry_mt({
|
||||||
value = entry,
|
value = entry,
|
||||||
text = entry.prompt_title,
|
text = entry.prompt_title,
|
||||||
ordinal = string.format("%s %s", entry.prompt_title, vim.F.if_nil(entry.default_text, "")),
|
ordinal = string.format("%s %s", entry.prompt_title, vim.F.if_nil(entry.default_text, "")),
|
||||||
display = make_display,
|
display = make_display,
|
||||||
}
|
}, opts)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -820,17 +864,17 @@ function make_entry.gen_from_buffer_lines(opts)
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
return {
|
return make_entry.set_default_entry_mt({
|
||||||
ordinal = entry.text,
|
ordinal = entry.text,
|
||||||
display = make_display,
|
display = make_display,
|
||||||
filename = entry.filename,
|
filename = entry.filename,
|
||||||
lnum = entry.lnum,
|
lnum = entry.lnum,
|
||||||
text = entry.text,
|
text = entry.text,
|
||||||
}
|
}, opts)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function make_entry.gen_from_vimoptions()
|
function make_entry.gen_from_vimoptions(opts)
|
||||||
local displayer = entry_display.create {
|
local displayer = entry_display.create {
|
||||||
separator = "",
|
separator = "",
|
||||||
hl_chars = { ["["] = "TelescopeBorder", ["]"] = "TelescopeBorder" },
|
hl_chars = { ["["] = "TelescopeBorder", ["]"] = "TelescopeBorder" },
|
||||||
@@ -871,7 +915,7 @@ function make_entry.gen_from_vimoptions()
|
|||||||
entry.ordinal = entry.ordinal .. " " .. utils.display_termcodes(tostring(o.default))
|
entry.ordinal = entry.ordinal .. " " .. utils.display_termcodes(tostring(o.default))
|
||||||
end
|
end
|
||||||
|
|
||||||
return entry
|
return make_entry.set_default_entry_mt(entry, opts)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -927,6 +971,11 @@ function make_entry.gen_from_ctags(opts)
|
|||||||
|
|
||||||
local mt = {}
|
local mt = {}
|
||||||
mt.__index = function(t, k)
|
mt.__index = function(t, k)
|
||||||
|
local override = handle_entry_index(opts, t, k)
|
||||||
|
if override then
|
||||||
|
return override
|
||||||
|
end
|
||||||
|
|
||||||
if k == "path" then
|
if k == "path" then
|
||||||
local retpath = Path:new({ t.filename }):absolute()
|
local retpath = Path:new({ t.filename }):absolute()
|
||||||
if not vim.loop.fs_access(retpath, "R", nil) then
|
if not vim.loop.fs_access(retpath, "R", nil) then
|
||||||
@@ -1036,7 +1085,7 @@ function make_entry.gen_from_diagnostics(opts)
|
|||||||
end
|
end
|
||||||
|
|
||||||
return function(entry)
|
return function(entry)
|
||||||
return {
|
return make_entry.set_default_entry_mt({
|
||||||
value = entry,
|
value = entry,
|
||||||
ordinal = ("%s %s"):format(not hidden and entry.filename or "", entry.text),
|
ordinal = ("%s %s"):format(not hidden and entry.filename or "", entry.text),
|
||||||
display = make_display,
|
display = make_display,
|
||||||
@@ -1045,11 +1094,11 @@ function make_entry.gen_from_diagnostics(opts)
|
|||||||
lnum = entry.lnum,
|
lnum = entry.lnum,
|
||||||
col = entry.col,
|
col = entry.col,
|
||||||
text = entry.text,
|
text = entry.text,
|
||||||
}
|
}, opts)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function make_entry.gen_from_autocommands(_)
|
function make_entry.gen_from_autocommands(opts)
|
||||||
local displayer = entry_display.create {
|
local displayer = entry_display.create {
|
||||||
separator = "▏",
|
separator = "▏",
|
||||||
items = {
|
items = {
|
||||||
@@ -1071,7 +1120,7 @@ function make_entry.gen_from_autocommands(_)
|
|||||||
|
|
||||||
return function(entry)
|
return function(entry)
|
||||||
local group_name = vim.F.if_nil(entry.group_name, "<anonymous>")
|
local group_name = vim.F.if_nil(entry.group_name, "<anonymous>")
|
||||||
return {
|
return make_entry.set_default_entry_mt({
|
||||||
value = {
|
value = {
|
||||||
event = entry.event,
|
event = entry.event,
|
||||||
group_name = group_name,
|
group_name = group_name,
|
||||||
@@ -1081,11 +1130,11 @@ function make_entry.gen_from_autocommands(_)
|
|||||||
--
|
--
|
||||||
ordinal = entry.event .. " " .. group_name .. " " .. entry.pattern .. " " .. entry.command,
|
ordinal = entry.event .. " " .. group_name .. " " .. entry.pattern .. " " .. entry.command,
|
||||||
display = make_display,
|
display = make_display,
|
||||||
}
|
}, opts)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function make_entry.gen_from_commands(_)
|
function make_entry.gen_from_commands(opts)
|
||||||
local displayer = entry_display.create {
|
local displayer = entry_display.create {
|
||||||
separator = "▏",
|
separator = "▏",
|
||||||
items = {
|
items = {
|
||||||
@@ -1118,7 +1167,7 @@ function make_entry.gen_from_commands(_)
|
|||||||
end
|
end
|
||||||
|
|
||||||
return function(entry)
|
return function(entry)
|
||||||
return {
|
return make_entry.set_default_entry_mt({
|
||||||
name = entry.name,
|
name = entry.name,
|
||||||
bang = entry.bang,
|
bang = entry.bang,
|
||||||
nargs = entry.nargs,
|
nargs = entry.nargs,
|
||||||
@@ -1128,7 +1177,7 @@ function make_entry.gen_from_commands(_)
|
|||||||
value = entry,
|
value = entry,
|
||||||
ordinal = entry.name,
|
ordinal = entry.name,
|
||||||
display = make_display,
|
display = make_display,
|
||||||
}
|
}, opts)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -1187,13 +1236,13 @@ function make_entry.gen_from_git_status(opts)
|
|||||||
end
|
end
|
||||||
local mod, file = string.match(entry, "(..).*%s[->%s]?(.+)")
|
local mod, file = string.match(entry, "(..).*%s[->%s]?(.+)")
|
||||||
|
|
||||||
return {
|
return setmetatable({
|
||||||
value = file,
|
value = file,
|
||||||
status = mod,
|
status = mod,
|
||||||
ordinal = entry,
|
ordinal = entry,
|
||||||
display = make_display,
|
display = make_display,
|
||||||
path = Path:new({ opts.cwd, file }):absolute(),
|
path = Path:new({ opts.cwd, file }):absolute(),
|
||||||
}
|
}, opts)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user