nvim: improve cwd handling

- remove .clang-format as root marker because it is in ${HOME}
- don't return ${HOME} as project root in get_project_root()
- fall back to current dir in telescope find_files
This commit is contained in:
tastytea 2022-08-22 02:23:52 +02:00
parent 18ee6bedc0
commit e7ba7e5a7b
Signed by: tastytea
SSH Key Fingerprint: SHA256:FBkvrOlhq5use1XEttyUGT4bUTDVA1ar9SgIc9P03cM
2 changed files with 5 additions and 3 deletions

View File

@ -67,7 +67,7 @@ vim.api.nvim_create_user_command('ModelineInsert', M.insert_modeline, {})
-- Files that could indicate the project's root directory -- Files that could indicate the project's root directory
M.project_root_markers = { M.project_root_markers = {
'.git', '.hg', '.svn', '.bzr', '_darcs', '.git', '.hg', '.svn', '.bzr', '_darcs',
'.projectile', '.clang-format', '.luarc.json', '.editorconfig' '.projectile', '.luarc.json', '.editorconfig'
} }
function M.get_project_root() function M.get_project_root()
@ -77,11 +77,12 @@ function M.get_project_root()
repeat repeat
path = path:gsub(string.format('%s[^%s]*$', sep, sep), '') path = path:gsub(string.format('%s[^%s]*$', sep, sep), '')
for _, marker in ipairs(M.project_root_markers) do for _, marker in ipairs(M.project_root_markers) do
if io.open(path .. sep .. marker) then if path ~= os.getenv('HOME') and io.open(path .. sep .. marker) then
return path return path
end end
end end
until path == '' until path == ''
return nil return nil
end end

View File

@ -23,7 +23,8 @@ local t_builtin = require('telescope.builtin')
local my = require('my.functions') local my = require('my.functions')
map('n', '<Leader>tb', t_builtin.buffers, 'Buffers') map('n', '<Leader>tb', t_builtin.buffers, 'Buffers')
map('n', '<Leader>tf', function() map('n', '<Leader>tf', function()
t_builtin.find_files({ cwd = my.get_project_root() }) t_builtin.find_files({ cwd = my.get_project_root() or
vim.fn.expand("%:p:h", true) }) -- fall back to current dir
end, 'Files') end, 'Files')
map('n', '<Leader>tF', t_builtin.find_files, 'Files in cw') map('n', '<Leader>tF', t_builtin.find_files, 'Files in cw')
map('n', '<Leader>to', t_builtin.oldfiles, 'Recently opened files') map('n', '<Leader>to', t_builtin.oldfiles, 'Recently opened files')