options: set 'scrollback' to -1 by default #9563

Makes the 'scrollback' option more consistent (same default for all buffers) and future-proof.

- Default to -1 for all buffers, but treat it as an implementation detail.
- Document range of 1 - 100_000.
- New terminal buffer by default sets scrollback=10_000 if the global default is -1.
- Existing terminal buffer: On entering terminal-mode or on refresh, if the user explicitly did `:set[local] scbk=-1`, the local value goes to 100_000 (max). (This is undocumented on purpose. Users should work with explicit values in the range of 1-100_000.)
This commit is contained in:
Marco Hinz
2019-02-04 02:53:23 +01:00
committed by Justin M. Keyes
parent 70f6939fd4
commit 91688b4883
5 changed files with 13 additions and 35 deletions

View File

@@ -481,25 +481,10 @@ describe("'scrollback' option", function()
eq(-1, curbufmeths.get_option('scrollback'))
end)
it(':setlocal in a normal buffer is an error', function()
command('new')
-- :setlocal to -1 is NOT an error.
feed_command('setlocal scrollback=-1')
eq(nil, string.match(eval("v:errmsg"), "E%d*:"))
feed('<CR>')
-- :setlocal to anything except -1 is an error.
feed_command('setlocal scrollback=42')
feed('<CR>')
eq('E474:', string.match(eval("v:errmsg"), "E%d*:"))
eq(-1, curbufmeths.get_option('scrollback'))
end)
it(':set updates local value and global default', function()
set_fake_shell()
command('set scrollback=42') -- set global and (attempt) local
eq(-1, curbufmeths.get_option('scrollback')) -- normal buffer: -1
command('set scrollback=42') -- set global value
eq(42, curbufmeths.get_option('scrollback'))
command('terminal')
eq(42, curbufmeths.get_option('scrollback')) -- inherits global default
command('setlocal scrollback=99')