feat(term): increase max scrollback to 1000000

Problem:
Cannot use `nvim_open_term()` to pipe terminal scrollback > 100000

Solution:
Increase scrollback limit to 1000000

If there's no technical consequences of doing this, can be set even
higher in the future.
This commit is contained in:
Lewis Russell
2025-07-11 10:43:05 +01:00
committed by Lewis Russell
parent 12276832ab
commit a945686444
6 changed files with 9 additions and 8 deletions

View File

@ -300,6 +300,7 @@ These existing features changed their behavior.
• 'spellfile' location defaults to `stdpath("data").."/site/spell/"` instead of • 'spellfile' location defaults to `stdpath("data").."/site/spell/"` instead of
the first writable directory in 'runtimepath'. the first writable directory in 'runtimepath'.
• |vim.version.range()| doesn't exclude `to` if it is equal to `from`. • |vim.version.range()| doesn't exclude `to` if it is equal to `from`.
• 'scrollback' maximum value increased from 100000 to 1000000
============================================================================== ==============================================================================
REMOVED FEATURES *news-removed* REMOVED FEATURES *news-removed*

View File

@ -5151,7 +5151,7 @@ A jump table for the options with a short description can be found at |Q_op|.
local to buffer local to buffer
Maximum number of lines kept beyond the visible screen. Lines at the Maximum number of lines kept beyond the visible screen. Lines at the
top are deleted if new lines exceed this limit. top are deleted if new lines exceed this limit.
Minimum is 1, maximum is 100000. Minimum is 1, maximum is 1000000.
Only in |terminal| buffers. Only in |terminal| buffers.
Note: Lines that are not visible and kept in scrollback are not Note: Lines that are not visible and kept in scrollback are not

View File

@ -5395,7 +5395,7 @@ vim.wo.scr = vim.wo.scroll
--- Maximum number of lines kept beyond the visible screen. Lines at the --- Maximum number of lines kept beyond the visible screen. Lines at the
--- top are deleted if new lines exceed this limit. --- top are deleted if new lines exceed this limit.
--- Minimum is 1, maximum is 100000. --- Minimum is 1, maximum is 1000000.
--- Only in `terminal` buffers. --- Only in `terminal` buffers.
--- ---
--- Note: Lines that are not visible and kept in scrollback are not --- Note: Lines that are not visible and kept in scrollback are not

View File

@ -592,7 +592,7 @@ EXTERN int p_cdh; ///< 'cdhome'
#define ERR_BUFLEN 80 #define ERR_BUFLEN 80
#define SB_MAX 100000 // Maximum 'scrollback' value. #define SB_MAX 1000000 // Maximum 'scrollback' value.
#define MAX_NUMBERWIDTH 20 // used for 'numberwidth' #define MAX_NUMBERWIDTH 20 // used for 'numberwidth'

View File

@ -7102,7 +7102,7 @@ local options = {
desc = [=[ desc = [=[
Maximum number of lines kept beyond the visible screen. Lines at the Maximum number of lines kept beyond the visible screen. Lines at the
top are deleted if new lines exceed this limit. top are deleted if new lines exceed this limit.
Minimum is 1, maximum is 100000. Minimum is 1, maximum is 1000000.
Only in |terminal| buffers. Only in |terminal| buffers.
Note: Lines that are not visible and kept in scrollback are not Note: Lines that are not visible and kept in scrollback are not

View File

@ -517,8 +517,8 @@ describe("'scrollback' option", function()
it('error if set to invalid value', function() it('error if set to invalid value', function()
eq('Vim(set):E474: Invalid argument: scrollback=-2', pcall_err(command, 'set scrollback=-2')) eq('Vim(set):E474: Invalid argument: scrollback=-2', pcall_err(command, 'set scrollback=-2'))
eq( eq(
'Vim(set):E474: Invalid argument: scrollback=100001', 'Vim(set):E474: Invalid argument: scrollback=1000001',
pcall_err(command, 'set scrollback=100001') pcall_err(command, 'set scrollback=1000001')
) )
end) end)
@ -538,14 +538,14 @@ describe("'scrollback' option", function()
-- _Local_ scrollback=-1 in :terminal forces the _maximum_. -- _Local_ scrollback=-1 in :terminal forces the _maximum_.
command('setlocal scrollback=-1') command('setlocal scrollback=-1')
retry(nil, nil, function() -- Fixup happens on refresh, not immediately. retry(nil, nil, function() -- Fixup happens on refresh, not immediately.
eq(100000, api.nvim_get_option_value('scrollback', {})) eq(1000000, api.nvim_get_option_value('scrollback', {}))
end) end)
-- _Local_ scrollback=-1 during TermOpen forces the maximum. #9605 -- _Local_ scrollback=-1 during TermOpen forces the maximum. #9605
command('setglobal scrollback=-1') command('setglobal scrollback=-1')
command('autocmd TermOpen * setlocal scrollback=-1') command('autocmd TermOpen * setlocal scrollback=-1')
command('terminal') command('terminal')
eq(100000, api.nvim_get_option_value('scrollback', {})) eq(1000000, api.nvim_get_option_value('scrollback', {}))
end) end)
it(':setlocal in a normal buffer', function() it(':setlocal in a normal buffer', function()