1

Refresh generated neovim config

This commit is contained in:
2024-08-15 13:01:03 +02:00
parent 64b51cf53a
commit f5af8e2b28
1836 changed files with 38979 additions and 31094 deletions

View File

@ -933,7 +933,8 @@ builtin.find_files({opts}) *telescope.builtin.find_files()*
`find_command`
{follow} (boolean) if true, follows symlinks
(i.e. uses `-L` flag for the
`find` command)
`find` command) (default:
false)
{hidden} (boolean) determines whether to show
hidden files or not (default:
false)
@ -2230,6 +2231,9 @@ layout_strategies.horizontal() *telescope.layout.horizontal()*
- anchor:
- Which edge/corner to pin the picker to
- See |resolver.resolve_anchor_pos()|
- anchor_padding:
- Specifies an amount of additional padding around the anchor
- Values should be a positive integer
- height:
- How tall to make Telescope's entire layout
- See |resolver.resolve_height()|
@ -2283,6 +2287,9 @@ layout_strategies.center() *telescope.layout.center()*
- anchor:
- Which edge/corner to pin the picker to
- See |resolver.resolve_anchor_pos()|
- anchor_padding:
- Specifies an amount of additional padding around the anchor
- Values should be a positive integer
- height:
- How tall to make Telescope's entire layout
- See |resolver.resolve_height()|
@ -2361,6 +2368,9 @@ layout_strategies.vertical() *telescope.layout.vertical()*
- anchor:
- Which edge/corner to pin the picker to
- See |resolver.resolve_anchor_pos()|
- anchor_padding:
- Specifies an amount of additional padding around the anchor
- Values should be a positive integer
- height:
- How tall to make Telescope's entire layout
- See |resolver.resolve_height()|
@ -2391,6 +2401,9 @@ layout_strategies.flex() *telescope.layout.flex()*
- anchor:
- Which edge/corner to pin the picker to
- See |resolver.resolve_anchor_pos()|
- anchor_padding:
- Specifies an amount of additional padding around the anchor
- Values should be a positive integer
- height:
- How tall to make Telescope's entire layout
- See |resolver.resolve_height()|
@ -3842,13 +3855,16 @@ previewers.new_termopen_previewer() *telescope.previewers.new_termopen_previewer
- `title` a static title for example "File Preview"
- `dyn_title(self, entry)` a dynamic title function which gets called when
config value `dynamic_preview_title = true`
- `env` table: define environment variables to forward to the terminal
process. Example:
- `{ ['PAGER'] = '', ['MANWIDTH'] = 50 }`
It's an easy way to get your first previewer going and it integrates well
with `bat` and `less`. Providing out of the box scrolling if the command
uses less.
Furthermore, it will forward all `config.set_env` environment variables to
that terminal process.
Furthermore, if `env` is not set, it will forward all `config.set_env`
environment variables to that terminal process.

View File

@ -462,7 +462,6 @@ actions.edit_register = function(prompt_bufnr)
v.content = updated_value
end
end
-- print(vim.inspect(picker.finder.results))
end
--- Paste the selected register into the buffer
@ -489,7 +488,9 @@ end
actions.insert_symbol = function(prompt_bufnr)
local symbol = action_state.get_selected_entry().value[1]
actions.close(prompt_bufnr)
vim.api.nvim_put({ symbol }, "", true, true)
vim.schedule(function()
vim.api.nvim_put({ symbol }, "", true, true)
end)
end
--- Insert a symbol into the current buffer and keeping the insert mode.
@ -1184,13 +1185,28 @@ actions.delete_buffer = function(prompt_bufnr)
-- If the current buffer is deleted, switch to the previous buffer
-- according to bdelete behavior
if ok and selection.bufnr == current_picker.original_bufnr then
local jumplist = vim.fn.getjumplist(current_picker.original_win_id)[1]
for i = #jumplist, 1, -1 do
if jumplist[i].bufnr ~= selection.bufnr and vim.fn.bufloaded(jumplist[i].bufnr) == 1 then
vim.api.nvim_win_set_buf(current_picker.original_win_id, jumplist[i].bufnr)
break
if vim.api.nvim_win_is_valid(current_picker.original_win_id) then
local jumplist = vim.fn.getjumplist(current_picker.original_win_id)[1]
for i = #jumplist, 1, -1 do
if jumplist[i].bufnr ~= selection.bufnr and vim.fn.bufloaded(jumplist[i].bufnr) == 1 then
vim.api.nvim_win_set_buf(current_picker.original_win_id, jumplist[i].bufnr)
current_picker.original_bufnr = jumplist[i].bufnr
return ok
end
end
-- no more valid buffers in jumplist, create an empty buffer
local empty_buf = vim.api.nvim_create_buf(true, true)
vim.api.nvim_win_set_buf(current_picker.original_win_id, empty_buf)
current_picker.original_bufnr = empty_buf
vim.api.nvim_buf_delete(selection.bufnr, { force = true })
return ok
end
-- window of the selected buffer got wiped, switch to first valid window
local win_id = vim.fn.win_getid(1, current_picker.original_tabpage)
current_picker.original_win_id = win_id
current_picker.original_bufnr = vim.api.nvim_win_get_buf(win_id)
end
return ok
end)

View File

@ -220,6 +220,9 @@ action_set.edit = function(prompt_bufnr, command)
end
if row and col then
if vim.api.nvim_buf_get_name(0) == filename then
vim.cmd [[normal! m']]
end
local ok, err_msg = pcall(a.nvim_win_set_cursor, 0, { row, col })
if not ok then
log.debug("Failed to move to cursor:", err_msg, row, col)

View File

@ -180,6 +180,7 @@ files.live_grep = function(opts)
map("i", "<c-space>", actions.to_fuzzy_refine)
return true
end,
push_cursor_on_edit = true,
})
:find()
end
@ -257,6 +258,7 @@ files.grep_string = function(opts)
finder = finders.new_oneshot_job(args, opts),
previewer = conf.grep_previewer(opts),
sorter = conf.generic_sorter(opts),
push_cursor_on_edit = true,
})
:find()
end
@ -460,6 +462,7 @@ files.treesitter = function(opts)
tag = "kind",
sorter = conf.generic_sorter(opts),
},
push_cursor_on_edit = true,
})
:find()
end
@ -564,13 +567,13 @@ files.current_buffer_fuzzy_find = function(opts)
actions.close(prompt_bufnr)
vim.schedule(function()
vim.cmd "normal! m'"
vim.api.nvim_win_set_cursor(0, { selection.lnum, first_col })
end)
end)
return true
end,
push_cursor_on_edit = true,
})
:find()
end

View File

@ -109,16 +109,18 @@ internal.builtin = function(opts)
end
actions.close(prompt_bufnr)
if string.match(selection.text, " : ") then
-- Call appropriate function from extensions
local split_string = vim.split(selection.text, " : ")
local ext = split_string[1]
local func = split_string[2]
require("telescope").extensions[ext][func](picker_opts)
else
-- Call appropriate telescope builtin
require("telescope.builtin")[selection.text](picker_opts)
end
vim.schedule(function()
if string.match(selection.text, " : ") then
-- Call appropriate function from extensions
local split_string = vim.split(selection.text, " : ")
local ext = split_string[1]
local func = split_string[2]
require("telescope").extensions[ext][func](picker_opts)
else
-- Call appropriate telescope builtin
require("telescope.builtin")[selection.text](picker_opts)
end
end)
end)
return true
end,

View File

@ -148,6 +148,26 @@ local apply_action_handler = function(action, items, opts)
return items
end
---@param items vim.lsp.util.locations_to_items.ret[]
---@param opts table
---@return vim.lsp.util.locations_to_items.ret[]
local function filter_file_ignore_patters(items, opts)
local file_ignore_patterns = vim.F.if_nil(opts.file_ignore_patterns, conf.file_ignore_patterns)
file_ignore_patterns = file_ignore_patterns or {}
if vim.tbl_isempty(file_ignore_patterns) then
return items
end
return vim.tbl_filter(function(item)
for _, patt in ipairs(file_ignore_patterns) do
if string.match(item.filename, patt) then
return false
end
end
return true
end, items)
end
---@param action telescope.lsp.list_or_jump_action
---@param title string prompt title
---@param funname string: name of the calling function
@ -157,25 +177,42 @@ local function list_or_jump(action, title, funname, params, opts)
opts.reuse_win = vim.F.if_nil(opts.reuse_win, false)
opts.curr_filepath = vim.api.nvim_buf_get_name(opts.bufnr)
vim.lsp.buf_request(opts.bufnr, action, params, function(err, result, ctx, _)
if err then
vim.api.nvim_err_writeln("Error when executing " .. action .. " : " .. err.message)
return
vim.lsp.buf_request_all(opts.bufnr, action, params, function(results_per_client)
local items = {}
local first_encoding
local errors = {}
for client_id, result_or_error in pairs(results_per_client) do
local error, result = result_or_error.error, result_or_error.result
if error then
errors[client_id] = error
else
if result ~= nil then
local locations = {}
if not utils.islist(result) then
vim.list_extend(locations, { result })
else
vim.list_extend(locations, result)
end
local offset_encoding = vim.lsp.get_client_by_id(client_id).offset_encoding
if not vim.tbl_isempty(result) then
first_encoding = offset_encoding
end
vim.list_extend(items, vim.lsp.util.locations_to_items(locations, offset_encoding))
end
end
end
if result == nil then
return
for _, error in pairs(errors) do
vim.api.nvim_err_writeln("Error when executing " .. action .. " : " .. error.message)
end
local locations = {}
if not utils.islist(result) then
locations = { result }
end
vim.list_extend(locations, result)
local offset_encoding = vim.lsp.get_client_by_id(ctx.client_id).offset_encoding
local items = vim.lsp.util.locations_to_items(locations, offset_encoding)
items = apply_action_handler(action, items, opts)
items = filter_file_ignore_patters(items, opts)
if vim.tbl_isempty(items) then
utils.notify(funname, {
@ -204,8 +241,8 @@ local function list_or_jump(action, title, funname, params, opts)
end
end
local location = item_to_location(item, offset_encoding)
vim.lsp.util.jump_to_location(location, offset_encoding, opts.reuse_win)
local location = item_to_location(item, first_encoding)
vim.lsp.util.jump_to_location(location, first_encoding, opts.reuse_win)
else
pickers
.new(opts, {

View File

@ -77,7 +77,7 @@ builtin.grep_string = require_on_exported_call("telescope.builtin.__files").grep
---@field cwd string: root dir to search from (default: cwd, use utils.buffer_dir() to search relative to open buffer)
---@field find_command function|table: cmd to use for the search. Can be a fn(opts) -> tbl (default: autodetect)
---@field file_entry_encoding string: encoding of output of `find_command`
---@field follow boolean: if true, follows symlinks (i.e. uses `-L` flag for the `find` command)
---@field follow boolean: if true, follows symlinks (i.e. uses `-L` flag for the `find` command) (default: false)
---@field hidden boolean: determines whether to show hidden files or not (default: false)
---@field no_ignore boolean: show files ignored by .gitignore, .ignore, etc. (default: false)
---@field no_ignore_parent boolean: show files ignored by .gitignore, .ignore, etc. in parent dirs. (default: false)

View File

@ -251,21 +251,21 @@ end
--- - Compass directions:<br>
--- the picker will move to the corresponding edge/corner
--- e.g. "NW" -> "top left corner", "E" -> "right edge", "S" -> "bottom edge"
resolver.resolve_anchor_pos = function(anchor, p_width, p_height, max_columns, max_lines)
resolver.resolve_anchor_pos = function(anchor, p_width, p_height, max_columns, max_lines, anchor_padding)
anchor = anchor:upper()
local pos = { 0, 0 }
if anchor == "CENTER" then
return pos
end
if anchor:find "W" then
pos[1] = math.ceil((p_width - max_columns) / 2) + 1
pos[1] = math.ceil((p_width - max_columns) / 2) + anchor_padding
elseif anchor:find "E" then
pos[1] = math.ceil((max_columns - p_width) / 2) - 1
pos[1] = math.ceil((max_columns - p_width) / 2) - anchor_padding
end
if anchor:find "N" then
pos[2] = math.ceil((p_height - max_lines) / 2) + 1
pos[2] = math.ceil((p_height - max_lines) / 2) + anchor_padding
elseif anchor:find "S" then
pos[2] = math.ceil((max_lines - p_height) / 2) - 1
pos[2] = math.ceil((max_lines - p_height) / 2) - anchor_padding
end
return pos
end

View File

@ -537,6 +537,7 @@ function Picker:find()
self.original_bufnr = a.nvim_get_current_buf()
self.original_win_id = a.nvim_get_current_win()
self.original_tabpage = a.nvim_get_current_tabpage()
_, self.original_cword = pcall(vim.fn.expand, "<cword>")
_, self.original_cWORD = pcall(vim.fn.expand, "<cWORD>")
_, self.original_cfile = pcall(vim.fn.expand, "<cfile>")

View File

@ -194,6 +194,10 @@ local shared_options = {
scroll_speed = "The number of lines to scroll through the previewer",
prompt_position = { "Where to place prompt window.", "Available Values: 'bottom', 'top'" },
anchor = { "Which edge/corner to pin the picker to", "See |resolver.resolve_anchor_pos()|" },
anchor_padding = {
"Specifies an amount of additional padding around the anchor",
"Values should be a positive integer",
},
}
-- Used for generating vim help documentation.
@ -375,7 +379,10 @@ layout_strategies.horizontal = make_documented_layout(
error(string.format("Unknown prompt_position: %s\n%s", self.window.prompt_position, vim.inspect(layout_config)))
end
local anchor_pos = resolve.resolve_anchor_pos(layout_config.anchor or "", width, height, max_columns, max_lines)
local anchor = layout_config.anchor or ""
local anchor_padding = layout_config.anchor_padding or 1
local anchor_pos = resolve.resolve_anchor_pos(anchor, width, height, max_columns, max_lines, anchor_padding)
adjust_pos(anchor_pos, prompt, results, preview)
if tbln then
@ -486,7 +493,9 @@ layout_strategies.center = make_documented_layout(
results.col, preview.col, prompt.col = width_padding, width_padding, width_padding
local anchor = layout_config.anchor or ""
local anchor_pos = resolve.resolve_anchor_pos(anchor, width, height, max_columns, max_lines)
local anchor_padding = layout_config.anchor_padding or 1
local anchor_pos = resolve.resolve_anchor_pos(anchor, width, height, max_columns, max_lines, anchor_padding)
adjust_pos(anchor_pos, prompt, results, preview)
-- Vertical anchoring (S or N variations) ignores layout_config.mirror
@ -740,7 +749,10 @@ layout_strategies.vertical = make_documented_layout(
end
end
local anchor_pos = resolve.resolve_anchor_pos(layout_config.anchor or "", width, height, max_columns, max_lines)
local anchor = layout_config.anchor or ""
local anchor_padding = layout_config.anchor_padding or 1
local anchor_pos = resolve.resolve_anchor_pos(anchor, width, height, max_columns, max_lines, anchor_padding)
adjust_pos(anchor_pos, prompt, results, preview)
if tbln then

View File

@ -91,12 +91,15 @@ end
--- - `title` a static title for example "File Preview"
--- - `dyn_title(self, entry)` a dynamic title function which gets called
--- when config value `dynamic_preview_title = true`
--- - `env` table: define environment variables to forward to the terminal
--- process. Example:
--- - `{ ['PAGER'] = '', ['MANWIDTH'] = 50 }`
---
--- It's an easy way to get your first previewer going and it integrates well
--- with `bat` and `less`. Providing out of the box scrolling if the command
--- uses less.
---
--- Furthermore, it will forward all `config.set_env` environment variables to
--- Furthermore, if `env` is not set, it will forward all `config.set_env` environment variables to
--- that terminal process.
previewers.new_termopen_previewer = term_previewer.new_termopen_previewer

View File

@ -202,7 +202,7 @@ previewers.new_termopen_previewer = function(opts)
local term_opts = {
cwd = opts.cwd or vim.loop.cwd(),
env = conf.set_env,
env = opts.env or conf.set_env,
}
local cmd = opts.get_command(entry, status)

View File

@ -127,12 +127,12 @@ describe("telescope.config.resolve", function()
describe("resolve_anchor_pos", function()
local test_sizes = {
{ 6, 7, 8, 9 },
{ 10, 20, 30, 40 },
{ 15, 15, 16, 16 },
{ 17, 19, 23, 31 },
{ 21, 18, 26, 24 },
{ 50, 100, 150, 200 },
{ 6, 7, 8, 9, 1 },
{ 10, 20, 30, 40, 1 },
{ 15, 15, 16, 16, 1 },
{ 17, 19, 23, 31, 1 },
{ 21, 18, 26, 24, 1 },
{ 50, 100, 150, 200, 1 },
}
it([[should not adjust when "CENTER" or "" is the anchor]], function()
@ -145,7 +145,7 @@ describe("telescope.config.resolve", function()
it([[should end up at top when "N" in the anchor]], function()
local top_test = function(anchor, p_width, p_height, max_columns, max_lines)
local pos = resolve.resolve_anchor_pos(anchor, p_width, p_height, max_columns, max_lines)
local pos = resolve.resolve_anchor_pos(anchor, p_width, p_height, max_columns, max_lines, 1)
eq(1, pos[2] + math.floor((max_lines - p_height) / 2))
end
for _, s in ipairs(test_sizes) do
@ -157,7 +157,7 @@ describe("telescope.config.resolve", function()
it([[should end up at left when "W" in the anchor]], function()
local left_test = function(anchor, p_width, p_height, max_columns, max_lines)
local pos = resolve.resolve_anchor_pos(anchor, p_width, p_height, max_columns, max_lines)
local pos = resolve.resolve_anchor_pos(anchor, p_width, p_height, max_columns, max_lines, 1)
eq(1, pos[1] + math.floor((max_columns - p_width) / 2))
end
for _, s in ipairs(test_sizes) do
@ -169,7 +169,7 @@ describe("telescope.config.resolve", function()
it([[should end up at bottom when "S" in the anchor]], function()
local bot_test = function(anchor, p_width, p_height, max_columns, max_lines)
local pos = resolve.resolve_anchor_pos(anchor, p_width, p_height, max_columns, max_lines)
local pos = resolve.resolve_anchor_pos(anchor, p_width, p_height, max_columns, max_lines, 1)
eq(max_lines - 1, pos[2] + p_height + math.floor((max_lines - p_height) / 2))
end
for _, s in ipairs(test_sizes) do
@ -181,7 +181,7 @@ describe("telescope.config.resolve", function()
it([[should end up at right when "E" in the anchor]], function()
local right_test = function(anchor, p_width, p_height, max_columns, max_lines)
local pos = resolve.resolve_anchor_pos(anchor, p_width, p_height, max_columns, max_lines)
local pos = resolve.resolve_anchor_pos(anchor, p_width, p_height, max_columns, max_lines, 1)
eq(max_columns - 1, pos[1] + p_width + math.floor((max_columns - p_width) / 2))
end
for _, s in ipairs(test_sizes) do
@ -193,8 +193,8 @@ describe("telescope.config.resolve", function()
it([[should ignore casing of the anchor]], function()
local case_test = function(a1, a2, p_width, p_height, max_columns, max_lines)
local pos1 = resolve.resolve_anchor_pos(a1, p_width, p_height, max_columns, max_lines)
local pos2 = resolve.resolve_anchor_pos(a2, p_width, p_height, max_columns, max_lines)
local pos1 = resolve.resolve_anchor_pos(a1, p_width, p_height, max_columns, max_lines, 1)
local pos2 = resolve.resolve_anchor_pos(a2, p_width, p_height, max_columns, max_lines, 1)
eq(pos1, pos2)
end
for _, s in ipairs(test_sizes) do

View File

@ -1 +1 @@
/nix/store/znvc40bzd5vmhw7nfdlb3bn41r36d9w3-lua5.1-plenary.nvim-scm-1 /nix/store/3czmrawji85vf8979kll2yx2f1kjkric-lua-5.1.5
/nix/store/s2law12lgav6zqbmfz13jmqncdadmb23-lua5.1-plenary.nvim-scm-1 /nix/store/rn8bzg423wwkayzbsbmhmvcgjmbzrq5z-lua-5.1.5

View File

@ -22,7 +22,7 @@ rock_manifest = {
},
doc = {
["secret.txt"] = "59f2d5cd8b01a044b4e7f598244869ec",
["telescope.txt"] = "0ef99d0fd83b8717fc995c7e76a2d0bc",
["telescope.txt"] = "e929af7f8f79431d18c26614dfad8344",
["telescope_changelog.txt"] = "5c807cb49d45799276be85c33693c08f"
},
ftplugin = {
@ -38,10 +38,10 @@ rock_manifest = {
actions = {
["generate.lua"] = "b627dbab3b7d2a572779707529331a5f",
["history.lua"] = "6b34c6a357dfad0762f099c1ba3b426f",
["init.lua"] = "0a2a147f8fb9d292c8c90e1f21cda381",
["init.lua"] = "5c2fb19f5d53ee0c6d3bf080a7d71b91",
["layout.lua"] = "91470edb5dd37a3025e141d5cc6691bd",
["mt.lua"] = "9c22e387921dbfbd56afdf3fed7b84af",
["set.lua"] = "e0b8491c7e789e09c032e650d8c858ef",
["set.lua"] = "299d8069041d0c7ca326c8c59d2f6586",
["state.lua"] = "7c488697afa9b5a993920103661c5cc1",
["utils.lua"] = "bc8870c00a9206ab13dcb2ab1142b5bd"
},
@ -52,15 +52,15 @@ rock_manifest = {
},
builtin = {
["__diagnostics.lua"] = "debd53606d5dee06bb2031026c7c3145",
["__files.lua"] = "d2c0373381ef70771adae4b6e9bb03ce",
["__files.lua"] = "30467c000c4a3be5981507a45c09d4c0",
["__git.lua"] = "a40e030790285c1e8706d181f0b4a831",
["__internal.lua"] = "e2ecc5ba5be0f1b350af08f23a376143",
["__lsp.lua"] = "0132a391de4b723ab7ea2122260d265d",
["init.lua"] = "5ff2da685744ce59d0466159a54bb4f9"
["__internal.lua"] = "71188dae9873d6d7fe35f63e1d05cae3",
["__lsp.lua"] = "33e3c35e51864187e14568031b5b4ddb",
["init.lua"] = "844d4a37134dfcc7e3f3533128e26adf"
},
["command.lua"] = "66d2dea0d60e1a27bfff18e55b1afb4c",
config = {
["resolve.lua"] = "2ba48ad00f945ebcb300e211bc0280e3"
["resolve.lua"] = "e05ea0a8a4f032458bf61cf6ff81bb49"
},
["config.lua"] = "824e9c60f4923d5e389d64ebc3b2914b",
["debounce.lua"] = "562e0f836431d2e8e99130e657212196",
@ -83,17 +83,17 @@ rock_manifest = {
["entry_display.lua"] = "27c74c2c4812244722444ebafbccd1ae",
["highlights.lua"] = "2a1497c924141b85e57b106d0d8ec0ed",
["layout.lua"] = "cdcf7f2019df1a715b233c4deae252e9",
["layout_strategies.lua"] = "92c09ce299e9b01ddc971f14b7ae7d91",
["layout_strategies.lua"] = "27c7c04a0cd2a04dbb3ff6d9bcb62507",
["multi.lua"] = "7822c69f5e6e537d7ad1d46c01097069",
["scroller.lua"] = "54fc7267917bf9f9076a632293a73cd5",
["window.lua"] = "fc74d7849a1381643289a65678e14aa3"
},
["pickers.lua"] = "199781a5a14055e8681333043b013279",
["pickers.lua"] = "fbbf43a3c1eae614a5de115feb14d8e2",
previewers = {
["buffer_previewer.lua"] = "544d3e3417a9c496277f3a8118141007",
["init.lua"] = "fa1745a8bef70d35f713d3c4b3c70257",
["init.lua"] = "767b65a19544ce7289e077d1538eeeb7",
["previewer.lua"] = "3b02d1b4a9aeb5c6a79771709ca799cc",
["term_previewer.lua"] = "6d38b050b6bc564215113e7cb42bb42a",
["term_previewer.lua"] = "f6b483beea7a0faa6e819889ed7ddbf0",
["utils.lua"] = "6aad15a9e8ec96ddb7576e0f3bd9bc48"
},
["sorters.lua"] = "bb1c9e687331d5cf0952582b2dadab7f",
@ -117,7 +117,7 @@ rock_manifest = {
pickers = {
["find_files_spec.lua"] = "87af15abf6f94d58c667149a3e5a4e59"
},
["resolver_spec.lua"] = "ccfc7d99d8d230513c5e22ad5100e02e",
["resolver_spec.lua"] = "46b5a49a82afae551a83a0c7ed471c35",
["scroller_spec.lua"] = "3595abe16efe6753888274f11f1818ad",
["sorters_spec.lua"] = "6a5c265752ac0ea6a07ef39d66518b8e",
["telescope_spec.lua"] = "573cee7dce62d9f8cd0d3592f784aade",