12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- local t = require('test.testutil')
- local n = require('test.functional.testnvim')()
- local clear = n.clear
- local command = n.command
- local get_pathsep = n.get_pathsep
- local eq = t.eq
- local fn = n.fn
- local rmdir = n.rmdir
- local mkdir = t.mkdir
- local file_prefix = 'Xtest-functional-ex_cmds-mkview_spec'
- describe(':mkview', function()
- local tmp_file_base = file_prefix .. '-tmpfile'
- local local_dir = file_prefix .. '.d'
- local view_dir = file_prefix .. '.view.d'
- before_each(function()
- clear()
- mkdir(view_dir)
- mkdir(local_dir)
- end)
- after_each(function()
- -- Remove any views created in the view directory
- rmdir(view_dir)
- rmdir(local_dir)
- end)
- it('viewoption curdir restores local current directory', function()
- local cwd_dir = fn.getcwd()
- local set_view_dir_command = 'set viewdir=' .. cwd_dir .. get_pathsep() .. view_dir
- -- By default the local current directory should save
- command(set_view_dir_command)
- command('edit ' .. tmp_file_base .. '1')
- command('lcd ' .. local_dir)
- command('mkview')
- -- Create a new instance of Nvim to remove the 'lcd'
- clear()
- -- Disable saving the local current directory for the second view
- command(set_view_dir_command)
- command('set viewoptions-=curdir')
- command('edit ' .. tmp_file_base .. '2')
- command('lcd ' .. local_dir)
- command('mkview')
- -- Create a new instance of Nvim to test saved 'lcd' option
- clear()
- command(set_view_dir_command)
- -- Load the view without a saved local current directory
- command('edit ' .. tmp_file_base .. '2')
- command('loadview')
- -- The view's current directory should not have changed
- eq(cwd_dir, fn.getcwd())
- -- Load the view with a saved local current directory
- command('edit ' .. tmp_file_base .. '1')
- command('loadview')
- -- The view's local directory should have been saved
- eq(cwd_dir .. get_pathsep() .. local_dir, fn.getcwd())
- end)
- end)
|