aboutsummaryrefslogtreecommitdiff
path: root/test/functional/api/vim_spec.lua
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2019-02-17 08:32:25 +0100
committerGitHub <noreply@github.com>2019-02-17 08:32:25 +0100
commitdc9dd8d664f2ffec3d199f96e4605cb0729497ec (patch)
tree12c393c88b07961442b687da1a136661bf4b95c5 /test/functional/api/vim_spec.lua
parent5225c1ec302ffb4cc510212647e065c7eb1957f4 (diff)
parentaee29e51a6eb5db8f39c16f817527594d1c456d3 (diff)
downloadrneovim-dc9dd8d664f2ffec3d199f96e4605cb0729497ec.tar.gz
rneovim-dc9dd8d664f2ffec3d199f96e4605cb0729497ec.tar.bz2
rneovim-dc9dd8d664f2ffec3d199f96e4605cb0729497ec.zip
Merge #9593 'API: nvim_create_buf: "scratch" param'
Diffstat (limited to 'test/functional/api/vim_spec.lua')
-rw-r--r--test/functional/api/vim_spec.lua49
1 files changed, 46 insertions, 3 deletions
diff --git a/test/functional/api/vim_spec.lua b/test/functional/api/vim_spec.lua
index 7d99f9725c..b10076c6da 100644
--- a/test/functional/api/vim_spec.lua
+++ b/test/functional/api/vim_spec.lua
@@ -1312,8 +1312,8 @@ describe('API', function()
describe('nvim_create_buf', function()
it('works', function()
- eq({id=2}, meths.create_buf(true))
- eq({id=3}, meths.create_buf(false))
+ eq({id=2}, meths.create_buf(true, false))
+ eq({id=3}, meths.create_buf(false, false))
eq(' 1 %a "[No Name]" line 1\n'..
' 2 "[No Name]" line 0',
meths.command_output("ls"))
@@ -1336,7 +1336,7 @@ describe('API', function()
it('can change buftype before visiting', function()
meths.set_option("hidden", false)
- eq({id=2}, meths.create_buf(true))
+ eq({id=2}, meths.create_buf(true, false))
meths.buf_set_option(2, "buftype", "nofile")
meths.buf_set_lines(2, 0, -1, true, {"test text"})
command("split | buffer 2")
@@ -1345,5 +1345,48 @@ describe('API', function()
command("close")
eq({id=1}, meths.get_current_buf())
end)
+
+ it('|scratch-buffer|', function()
+ eq({id=2}, meths.create_buf(false, true))
+ eq({id=3}, meths.create_buf(true, true))
+ eq({id=4}, meths.create_buf(true, true))
+ local scratch_bufs = { 2, 3, 4 }
+ eq(' 1 %a "[No Name]" line 1\n'..
+ ' 3 "[Scratch]" line 0\n'..
+ ' 4 "[Scratch]" line 0',
+ meths.command_output("ls"))
+ -- current buffer didn't change
+ eq({id=1}, meths.get_current_buf())
+
+ local screen = Screen.new(20, 4)
+ screen:attach()
+
+ --
+ -- Editing a scratch-buffer does NOT change its properties.
+ --
+ local edited_buf = 2
+ meths.buf_set_lines(edited_buf, 0, -1, true, {"some text"})
+ for _,b in ipairs(scratch_bufs) do
+ eq('nofile', meths.buf_get_option(b, 'buftype'))
+ eq('hide', meths.buf_get_option(b, 'bufhidden'))
+ eq(false, meths.buf_get_option(b, 'swapfile'))
+ end
+
+ --
+ -- Visiting a scratch-buffer DOES change its properties.
+ --
+ meths.set_current_buf(edited_buf)
+ screen:expect([[
+ ^some text |
+ {1:~ }|
+ {1:~ }|
+ |
+ ]], {
+ [1] = {bold = true, foreground = Screen.colors.Blue1},
+ })
+ eq('', meths.buf_get_option(edited_buf, 'buftype'))
+ eq('', meths.buf_get_option(edited_buf, 'bufhidden'))
+ eq(false, meths.buf_get_option(edited_buf, 'swapfile'))
+ end)
end)
end)