rooter.nvim
changes the working directory to the project root when you open a file. It is inspired by vim-rooter.
using nvim-plug
require('plug').add({
{
'wsdjeg/rooter.nvim',
config = function()
require('rooter').setup({
root_pattern = { '.git/' },
})
end,
}
})
require('rooter').setup({
root_patterns = { '.git/' },
outermost = true,
enable_cache = true,
project_non_root = '', -- this can be '', 'home' or 'current'
enable_logger = true, -- enable runtime log via logger.nvim
})
This plugin also provides a telescope extension:
:Telescope project
You can enable logger and install logger.nvim to debug this plugin:
require('plug').add({
{
'wsdjeg/rooter.nvim',
config = function()
require('rooter').setup({
root_pattern = { '.git/' },
enable_logger = true,
})
end,
depends = {
{
'wsdjeg/logger.nvim',
config = function()
vim.keymap.set(
'n',
'<leader>hL',
'<cmd>lua require("logger").viewRuntimeLog()<cr>',
{ silent = true }
)
end,
},
},
},
})
and the runtime log of rooter is:
[ rooter ] [23:22:50:576] [ Info ] start to find root for: D:/wsdjeg/rooter.nvim/lua/rooter/init.lua
[ rooter ] [23:22:50:576] [ Info ] (.git/):D:/wsdjeg/rooter.nvim/
[ rooter ] [23:22:50:576] [ Info ] switch to project:[rooter.nvim]
[ rooter ] [23:22:50:576] [ Info ] rootdir is:D:/wsdjeg/rooter.nvim/