From 23bf4c0531acef4e8252f4db13fcd90ad5aa91bf Mon Sep 17 00:00:00 2001 From: Yochem van Rosmalen Date: Sun, 11 May 2025 18:00:51 +0200 Subject: feat(exrc): search in parent directories (#33889) feat(exrc): search exrc in parent directories Problem: `.nvim.lua` is only loaded from current directory, which is not flexible when working from a subfolder of the project. Solution: Also search parent directories for configuration file. --- runtime/lua/vim/_defaults.lua | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'runtime/lua/vim/_defaults.lua') diff --git a/runtime/lua/vim/_defaults.lua b/runtime/lua/vim/_defaults.lua index adec7bda93..d0b3fea389 100644 --- a/runtime/lua/vim/_defaults.lua +++ b/runtime/lua/vim/_defaults.lua @@ -925,6 +925,29 @@ do end end end + + vim.api.nvim_create_autocmd('VimEnter', { + group = vim.api.nvim_create_augroup('nvim.find_exrc', {}), + desc = 'Find project-local configuration', + callback = function() + if vim.o.exrc then + local files = vim.fs.find( + { '.nvim.lua', '.nvimrc', '.exrc' }, + { type = 'file', upward = true, limit = math.huge } + ) + for _, file in ipairs(files) do + local trusted = vim.secure.read(file) --[[@as string|nil]] + if trusted then + if vim.endswith(file, '.lua') then + loadstring(trusted)() + else + vim.api.nvim_exec2(trusted, {}) + end + end + end + end + end, + }) end --- Default options -- cgit v1.3-3-g829e