Files
neovim/test/functional/plugin/optwin_spec.lua
Kyle 66149ca668 feat(tui): restore 'ttyfast' to control tty requests #38699
Problem:
When running nvim on a remote machine over SSH, if there is high ping,
then bg detection may not complete in time. This results in a warning
every time nvim is started. #38648

Solution:
Restore 'ttyfast' option and allow it to control whether or not bg
detection is performed. Because this is during startup and before any
user config or commands, we use the environment variable
`NVIM_NOTTYFAST` to allow disabling `ttyfast` during initialization.
2026-04-24 14:45:20 -04:00

103 lines
2.3 KiB
Lua

local t = require('test.testutil')
local n = require('test.functional.testnvim')()
local command = n.command
local api = n.api
local fn = n.fn
local eval = n.eval
local feed = n.feed
local clear = n.clear
local eq = t.eq
local neq = t.neq
describe('optwin.lua', function()
before_each(clear)
it(':options shows options UI', function()
command 'options'
command '/^ 1'
local lnum = fn.line('.')
feed('<CR>')
neq(lnum, fn.line('.'))
n.add_builddir_to_rtp()
command '/^startofline'
local win = api.nvim_get_current_win()
feed('<CR>')
neq(win, api.nvim_get_current_win())
eq('help', eval('&filetype'))
api.nvim_win_close(0, true)
eq(win, api.nvim_get_current_win())
command '/^ \t'
local opt_value = eval('&startofline')
local line = api.nvim_get_current_line()
feed('<CR>')
neq(opt_value, eval('&startofline'))
neq(line, api.nvim_get_current_line())
command('set startofline!')
neq(line, api.nvim_get_current_line())
feed('<space>')
eq(line, api.nvim_get_current_line())
command 'wincmd j'
command 'wincmd k'
command '/^number'
command '/^ \t'
line = api.nvim_get_current_line()
feed('<CR>')
neq(line, api.nvim_get_current_line())
command 'wincmd o'
feed('<CR>')
neq(line, api.nvim_get_current_line())
end)
it(':options shows all options', function()
local ignore = {
-- These options are removed/unused/deprecated
'compatible',
'paste',
'highlight',
'terse',
'aleph',
'encoding',
'termencoding',
'maxcombine',
'secure',
'prompt',
'edcompatible',
'gdefault',
'guioptions',
'guitablabel',
'guitabtooltip',
'insertmode',
'magic',
'mouseshape',
'imcmdline',
'imdisable',
'pastetoggle',
'langnoremap',
'opendevice',
'remap',
'hkmap',
'hkmapp',
-- These options are read-only
'channel',
}
command 'options'
local options = ignore
for _, line in ipairs(api.nvim_buf_get_lines(0, 0, -1, true)) do
if line:match('^[a-z]') then
table.insert(options, line:match('^[a-z]+'))
end
end
eq(fn.sort(vim.tbl_keys(api.nvim_get_all_options_info())), fn.sort(options))
end)
end)