feat: builtin support for editing files over ssh (#27)
This commit is contained in:
parent
75b710e311
commit
ca4da68aae
18 changed files with 593 additions and 291 deletions
|
|
@ -1,56 +1,67 @@
|
|||
require("plenary.async").tests.add_to_env()
|
||||
local oil = require("oil")
|
||||
local test_util = require("tests.test_util")
|
||||
local fs = require("oil.fs")
|
||||
|
||||
describe("Alternate buffer", function()
|
||||
a.describe("Alternate buffer", function()
|
||||
after_each(function()
|
||||
test_util.reset_editor()
|
||||
end)
|
||||
|
||||
it("sets previous buffer as alternate", function()
|
||||
a.it("sets previous buffer as alternate", function()
|
||||
vim.cmd.edit({ args = { "foo" } })
|
||||
oil.open()
|
||||
test_util.wait_for_autocmd("BufReadPost")
|
||||
vim.cmd.edit({ args = { "bar" } })
|
||||
assert.equals("foo", vim.fn.expand("#"))
|
||||
end)
|
||||
|
||||
it("sets previous buffer as alternate when editing oil://", function()
|
||||
a.it("sets previous buffer as alternate when editing oil://", function()
|
||||
vim.cmd.edit({ args = { "foo" } })
|
||||
vim.cmd.edit({ args = { "oil://" .. fs.os_to_posix_path(vim.fn.getcwd()) } })
|
||||
test_util.wait_for_autocmd("BufReadPost")
|
||||
vim.cmd.edit({ args = { "bar" } })
|
||||
assert.equals("foo", vim.fn.expand("#"))
|
||||
end)
|
||||
|
||||
it("preserves alternate buffer if editing the same file", function()
|
||||
a.it("preserves alternate buffer if editing the same file", function()
|
||||
vim.cmd.edit({ args = { "foo" } })
|
||||
vim.cmd.edit({ args = { "bar" } })
|
||||
oil.open()
|
||||
test_util.wait_for_autocmd("BufReadPost")
|
||||
vim.cmd.edit({ args = { "bar" } })
|
||||
assert.equals("foo", vim.fn.expand("#"))
|
||||
end)
|
||||
|
||||
it("preserves alternate buffer if discarding changes", function()
|
||||
a.it("preserves alternate buffer if discarding changes", function()
|
||||
vim.cmd.edit({ args = { "foo" } })
|
||||
vim.cmd.edit({ args = { "bar" } })
|
||||
oil.open()
|
||||
test_util.wait_for_autocmd("BufReadPost")
|
||||
oil.close()
|
||||
assert.equals("bar", vim.fn.expand("%"))
|
||||
assert.equals("foo", vim.fn.expand("#"))
|
||||
end)
|
||||
|
||||
it("sets previous buffer as alternate after multi-dir hops", function()
|
||||
a.it("sets previous buffer as alternate after multi-dir hops", function()
|
||||
vim.cmd.edit({ args = { "foo" } })
|
||||
oil.open()
|
||||
test_util.wait_for_autocmd("BufReadPost")
|
||||
oil.open()
|
||||
test_util.wait_for_autocmd("BufReadPost")
|
||||
oil.open()
|
||||
test_util.wait_for_autocmd("BufReadPost")
|
||||
oil.open()
|
||||
test_util.wait_for_autocmd("BufReadPost")
|
||||
vim.cmd.edit({ args = { "bar" } })
|
||||
assert.equals("foo", vim.fn.expand("#"))
|
||||
end)
|
||||
|
||||
describe("floating window", function()
|
||||
it("sets previous buffer as alternate", function()
|
||||
a.describe("floating window", function()
|
||||
a.it("sets previous buffer as alternate", function()
|
||||
vim.cmd.edit({ args = { "foo" } })
|
||||
oil.open_float()
|
||||
test_util.wait_for_autocmd("BufReadPost")
|
||||
-- This is lazy, but testing the actual select logic is more difficult. We can simply
|
||||
-- replicated it by closing the current window and then doing the edit
|
||||
vim.api.nvim_win_close(0, true)
|
||||
|
|
@ -58,10 +69,11 @@ describe("Alternate buffer", function()
|
|||
assert.equals("foo", vim.fn.expand("#"))
|
||||
end)
|
||||
|
||||
it("preserves alternate buffer if editing the same file", function()
|
||||
a.it("preserves alternate buffer if editing the same file", function()
|
||||
vim.cmd.edit({ args = { "foo" } })
|
||||
vim.cmd.edit({ args = { "bar" } })
|
||||
oil.open_float()
|
||||
test_util.wait_for_autocmd("BufReadPost")
|
||||
-- This is lazy, but testing the actual select logic is more difficult. We can simply
|
||||
-- replicated it by closing the current window and then doing the edit
|
||||
vim.api.nvim_win_close(0, true)
|
||||
|
|
@ -69,10 +81,11 @@ describe("Alternate buffer", function()
|
|||
assert.equals("foo", vim.fn.expand("#"))
|
||||
end)
|
||||
|
||||
it("preserves alternate buffer if discarding changes", function()
|
||||
a.it("preserves alternate buffer if discarding changes", function()
|
||||
vim.cmd.edit({ args = { "foo" } })
|
||||
vim.cmd.edit({ args = { "bar" } })
|
||||
oil.open_float()
|
||||
test_util.wait_for_autocmd("BufReadPost")
|
||||
oil.close()
|
||||
assert.equals("foo", vim.fn.expand("#"))
|
||||
end)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue