diff --git a/lua/telescope/config.lua b/lua/telescope/config.lua index 2960cdd..80e29c2 100644 --- a/lua/telescope/config.lua +++ b/lua/telescope/config.lua @@ -845,6 +845,9 @@ function config.set_defaults(user_defaults, tele_defaults) if user_defaults[name] == false or config.values[name] == false then return false end + if user_defaults[name] == true then + return vim.F.if_nil(config.values[name], {}) + end return smarter_depth_2_extend( vim.F.if_nil(user_defaults[name], {}), diff --git a/lua/telescope/previewers/buffer_previewer.lua b/lua/telescope/previewers/buffer_previewer.lua index 5117b1f..cd795f1 100644 --- a/lua/telescope/previewers/buffer_previewer.lua +++ b/lua/telescope/previewers/buffer_previewer.lua @@ -152,11 +152,13 @@ local scroll_fn = function(self, direction) end previewers.file_maker = function(filepath, bufnr, opts) - opts = opts or {} - opts.preview = opts.preview or {} + opts = vim.F.if_nil(opts, {}) + -- TODO(conni2461): here shouldn't be any hardcoded magic numbers ... + opts.preview = vim.F.if_nil(opts.preview, {}) opts.preview.timeout = vim.F.if_nil(opts.preview.timeout, 250) -- in ms opts.preview.filesize_limit = vim.F.if_nil(opts.preview.filesize_limit, 25) -- in mb opts.preview.msg_bg_fillchar = vim.F.if_nil(opts.preview.msg_bg_fillchar, "╱") -- in mb + opts.preview.treesitter = vim.F.if_nil(opts.preview.treesitter, true) if opts.use_ft_detect == nil then opts.use_ft_detect = true end diff --git a/lua/telescope/previewers/utils.lua b/lua/telescope/previewers/utils.lua index 44a6160..bd8c300 100644 --- a/lua/telescope/previewers/utils.lua +++ b/lua/telescope/previewers/utils.lua @@ -78,9 +78,22 @@ end --- Attach default highlighter which will choose between regex and ts utils.highlighter = function(bufnr, ft, opts) - opts = opts or {} - opts.preview = opts.preview or {} - opts.preview.treesitter = vim.F.if_nil(opts.preview.treesitter, conf.preview.treesitter) + opts = vim.F.if_nil(opts, {}) + opts.preview = vim.F.if_nil(opts.preview, {}) + opts.preview.treesitter = (function() + if type(opts.preview) == "table" and opts.preview.treesitter then + return opts.preview.treesitter + end + if type(conf.preview) == "table" and conf.preview.treesitter then + return conf.preview.treesitter + end + if type(conf.preview) == "boolean" then + return conf.preview + end + -- We should never get here + return false + end)() + if type(opts.preview.treesitter) == "boolean" then local temp = { enable = opts.preview.treesitter } opts.preview.treesitter = temp