覆盖NvChad Nvim中的默认设置



我想将望远镜插件的layout_strategy从NvChad默认值horizontal更改为vertical。这应该可以通过在某个地方设置layout_strategy = "vertical"来实现

根据NvChad文档,我可以在自己的custom/init.lua中覆盖plugins/configs/telescope.lua中指定的默认设置,但我也发现它可以/应该在custom/chadrc.lua中完成。

问题

我必须向哪个文件添加哪行才能更改望远镜插件的默认layout_strategy,并且仅限于此(保持其他默认值不变(?

我已尝试添加到custom/chadrc.lua

M.telescope = {
layout_strategy = "vertical"
}

也尝试过

M.telescope = {
defaults = {
layout_strategy = "vertical",
},
}
}

local o = vim.telescope.defaults
o.layout_strategy = "vertical"

但这似乎并不奏效。

chadrc.lua中,您可以覆盖以下选项:

M.plugins = {
-- ...
["nvim-telescope/telescope.nvim"] = {
override_options = function()
return {
defaults = {
layout_strategy = "vertical",
layout_config = {
height = 0.95,
prompt_position = "top",
vertical = {
mirror = true,
preview_cutoff = 0,
},
},
},
}
end,
},
-- ...
}

我包括了我额外的layout_config,以防你想在下半部分有预览部分。此外,preview_cutoff对我来说是必要的,否则预览永远不会出现。

本质上,override_options的返回表将强制扩展NvChad提供的默认配置,结果表将传递到插件的setup函数中。

定义override_options是NvChad预装插件的方法。如果你处理一个新的自定义插件,你需要在插件声明的config函数中自己调用插件的setup函数,如下所示:

M.plugins = {
-- ...
["any-vendor/any-custom-plugin.nvim"] = {
config = function()
require('custom-plugin').setup({
-- ...
})
end,
},
-- ...
}

这与telescope.nvim无关,因为它是预装的,但无论如何,为了完整性,我想解决这个问题。

NvChad 2.0版的lazy.nvim用于插件管理,因此略微更改了语法。

-- custom/plugins.lua
-- ...
{
"nvim-telescope/telescope.nvim",
opts = {
defaults = {
layout_strategy = "vertical",
layout_config = {
height = 0.95,
prompt_position = "top",
vertical = {
mirror = true,
preview_cutoff = 0,
},
},
},
},
},
-- ...

最新更新