diff options
author | Gregory Anders <8965202+gpanders@users.noreply.github.com> | 2024-01-19 14:51:10 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-19 14:51:10 -0600 |
commit | d3a8e9217f39c59dd7762bd22a76b8bd03ca85ff (patch) | |
tree | 176bbcf0793bab5338614f717f003c385f9c3878 /test/functional/ui/embed_spec.lua | |
parent | 5a8fe0769cc9c5d8323b073d5c45ee37ce91c049 (diff) | |
download | rneovim-d3a8e9217f39c59dd7762bd22a76b8bd03ca85ff.tar.gz rneovim-d3a8e9217f39c59dd7762bd22a76b8bd03ca85ff.tar.bz2 rneovim-d3a8e9217f39c59dd7762bd22a76b8bd03ca85ff.zip |
feat(ui): add chdir UI event (#27093)
When an embedded Nvim instance changes its current directory a "chdir"
UI event is emitted. Attached UIs can use this information however they
wish. In the TUI it is used to synchronize the cwd of the TUI process
with the cwd of the embedded Nvim process.
Diffstat (limited to 'test/functional/ui/embed_spec.lua')
-rw-r--r-- | test/functional/ui/embed_spec.lua | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/test/functional/ui/embed_spec.lua b/test/functional/ui/embed_spec.lua index e655ee1b54..f6bdd2215d 100644 --- a/test/functional/ui/embed_spec.lua +++ b/test/functional/ui/embed_spec.lua @@ -171,6 +171,56 @@ describe('--embed UI', function() } eq({ [16711935] = true }, seen) -- we only saw the last one, despite 16777215 was set internally earlier end) + + it('updates cwd of attached UI #21771', function() + clear { args_rm = { '--headless' } } + + local screen = Screen.new(40, 8) + screen:attach() + + screen:expect { + condition = function() + eq(helpers.paths.test_source_path, screen.pwd) + end, + } + + -- Change global cwd + helpers.command(string.format('cd %s/src/nvim', helpers.paths.test_source_path)) + + screen:expect { + condition = function() + eq(string.format('%s/src/nvim', helpers.paths.test_source_path), screen.pwd) + end, + } + + -- Split the window and change the cwd in the split + helpers.command('new') + helpers.command(string.format('lcd %s/test', helpers.paths.test_source_path)) + + screen:expect { + condition = function() + eq(string.format('%s/test', helpers.paths.test_source_path), screen.pwd) + end, + } + + -- Move to the original window + helpers.command('wincmd p') + + screen:expect { + condition = function() + eq(string.format('%s/src/nvim', helpers.paths.test_source_path), screen.pwd) + end, + } + + -- Change global cwd again + helpers.command(string.format('cd %s', helpers.paths.test_source_path)) + + screen:expect { + condition = function() + eq(helpers.paths.test_source_path, screen.pwd) + end, + } + end) end) describe('--embed --listen UI', function() |