feat: add option use_default_opts to builtin.builtin (#1996)

This commit is contained in:
Bjarki Baldursson Harksen
2022-06-12 11:08:30 +00:00
committed by Simon Hauser
parent 15f6a0bb08
commit 6703c957e7
3 changed files with 11 additions and 2 deletions

View File

@@ -1112,6 +1112,8 @@ builtin.builtin({opts}) *telescope.builtin.builtin()*
Options: ~
{include_extensions} (boolean) if true will show the pickers of the
installed extensions (default: false)
{use_default_opts} (boolean) if the selected picker should use its
default options (default: false)
builtin.resume({opts}) *telescope.builtin.resume()*

View File

@@ -205,6 +205,7 @@ builtin.git_stash = require_on_exported_call("telescope.builtin.git").stash
--- Lists all of the community maintained pickers built into Telescope
---@param opts table: options to pass to the picker
---@field include_extensions boolean: if true will show the pickers of the installed extensions (default: false)
---@field use_default_opts boolean: if the selected picker should use its default options (default: false)
builtin.builtin = require_on_exported_call("telescope.builtin.internal").builtin
--- Opens the previous picker in the identical state (incl. multi selections)

View File

@@ -33,6 +33,7 @@ local internal = {}
internal.builtin = function(opts)
opts.include_extensions = vim.F.if_nil(opts.include_extensions, false)
opts.use_default_opts = vim.F.if_nil(opts.use_default_opts, false)
local objs = {}
@@ -91,15 +92,20 @@ internal.builtin = function(opts)
-- we do this to avoid any surprises
opts.include_extensions = nil
local picker_opts
if not opts.use_default_opts then
picker_opts = opts
end
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](opts)
require("telescope").extensions[ext][func](picker_opts)
else
-- Call appropriate telescope builtin
require("telescope.builtin")[selection.text](opts)
require("telescope.builtin")[selection.text](picker_opts)
end
end)
return true