From 5d76b9836a7c7d49d15bf5530826b7783d098cf4 Mon Sep 17 00:00:00 2001 From: Barrett Ruth <62671086+barrettruth@users.noreply.github.com> Date: Fri, 24 Jul 2026 03:48:47 -0700 Subject: [PATCH] feat(dir): support counts for parent navigation #40927 --- runtime/plugin/dir.lua | 5 ++++- test/functional/plugin/dir_spec.lua | 16 +++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/runtime/plugin/dir.lua b/runtime/plugin/dir.lua index 85f3b9e6a1..cf01290c31 100644 --- a/runtime/plugin/dir.lua +++ b/runtime/plugin/dir.lua @@ -11,7 +11,10 @@ vim.keymap.set('n', '(nvim-dir-open)', function() end, { silent = true, desc = 'Open directory entry' }) vim.keymap.set('n', '(nvim-dir-up)', function() - require('nvim.dir')._open_parent() + local dir = require('nvim.dir') + for _ = 1, vim.v.count1 do + dir._open_parent() + end end, { silent = true, desc = 'Open parent directory' }) vim.keymap.set('n', '(nvim-dir-reload)', function() diff --git a/test/functional/plugin/dir_spec.lua b/test/functional/plugin/dir_spec.lua index 0a598e4204..33212a49d8 100644 --- a/test/functional/plugin/dir_spec.lua +++ b/test/functional/plugin/dir_spec.lua @@ -348,7 +348,7 @@ describe('nvim.dir', function() eq('new:2', exec_lua('return vim.g.nvim_dir_provider_list')) end) - it('maps - to open parent directories', function() + it('maps [count]- to open parent directories', function() make_fixture() n.clear({ args_rm = { '-u', '--cmd' } }) @@ -361,6 +361,20 @@ describe('nvim.dir', function() -- Ensure the cursor stays on the entry we navigated up from. eq('alpha.txt', api.nvim_get_current_line()) + + edit(file) + feed('1-') + poke_eventloop() + + assert_directory(root) + eq('alpha.txt', api.nvim_get_current_line()) + + edit(file) + feed('2-') + poke_eventloop() + + assert_directory(vim.fs.dirname(root)) + eq(vim.fs.basename(root) .. '/', api.nvim_get_current_line()) end) it('maps - to open the current directory from an unnamed buffer', function()