mirror of
https://github.com/neovim/neovim.git
synced 2024-12-23 20:55:18 -07:00
fix(messages): allow more prompt in headless mode with UI (#27905)
Problem: More prompt is not shown in headless mode even if there is a UI attached. Solution: Don't skip more prompt when there is a UI active.
This commit is contained in:
parent
3b29b39e6d
commit
eabf9de1dc
@ -2713,7 +2713,7 @@ static bool do_more_prompt(int typed_char)
|
|||||||
// If headless mode is enabled and no input is required, this variable
|
// If headless mode is enabled and no input is required, this variable
|
||||||
// will be true. However If server mode is enabled, the message "--more--"
|
// will be true. However If server mode is enabled, the message "--more--"
|
||||||
// should be displayed.
|
// should be displayed.
|
||||||
bool no_need_more = headless_mode && !embedded_mode;
|
bool no_need_more = headless_mode && !embedded_mode && !ui_active();
|
||||||
|
|
||||||
// We get called recursively when a timer callback outputs a message. In
|
// We get called recursively when a timer callback outputs a message. In
|
||||||
// that case don't show another prompt. Also when at the hit-Enter prompt
|
// that case don't show another prompt. Also when at the hit-Enter prompt
|
||||||
|
@ -775,18 +775,23 @@ describe('treesitter highlighting (C)', function()
|
|||||||
declarator: (pointer_declarator) @variable.parameter)
|
declarator: (pointer_declarator) @variable.parameter)
|
||||||
]]
|
]]
|
||||||
|
|
||||||
exec_lua([[
|
exec_lua(
|
||||||
|
[[
|
||||||
local query = ...
|
local query = ...
|
||||||
vim.treesitter.query.set('c', 'highlights', query)
|
vim.treesitter.query.set('c', 'highlights', query)
|
||||||
vim.treesitter.highlighter.new(vim.treesitter.get_parser(0, 'c'))
|
vim.treesitter.highlighter.new(vim.treesitter.get_parser(0, 'c'))
|
||||||
]], query)
|
]],
|
||||||
|
query
|
||||||
|
)
|
||||||
|
|
||||||
screen:expect{grid=[[
|
screen:expect {
|
||||||
|
grid = [[
|
||||||
void foo(int {4:*}{11:bar}); |
|
void foo(int {4:*}{11:bar}); |
|
||||||
^ |
|
^ |
|
||||||
{1:~ }|*15
|
{1:~ }|*15
|
||||||
|
|
|
|
||||||
]]}
|
]],
|
||||||
|
}
|
||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@ local Screen = require('test.functional.ui.screen')
|
|||||||
local clear, feed = helpers.clear, helpers.feed
|
local clear, feed = helpers.clear, helpers.feed
|
||||||
local eval = helpers.eval
|
local eval = helpers.eval
|
||||||
local eq = helpers.eq
|
local eq = helpers.eq
|
||||||
|
local neq = helpers.neq
|
||||||
local command = helpers.command
|
local command = helpers.command
|
||||||
local set_method_error = helpers.set_method_error
|
local set_method_error = helpers.set_method_error
|
||||||
local api = helpers.api
|
local api = helpers.api
|
||||||
@ -15,6 +16,7 @@ local exc_exec = helpers.exc_exec
|
|||||||
local exec_lua = helpers.exec_lua
|
local exec_lua = helpers.exec_lua
|
||||||
local poke_eventloop = helpers.poke_eventloop
|
local poke_eventloop = helpers.poke_eventloop
|
||||||
local assert_alive = helpers.assert_alive
|
local assert_alive = helpers.assert_alive
|
||||||
|
local retry = helpers.retry
|
||||||
local is_os = helpers.is_os
|
local is_os = helpers.is_os
|
||||||
local is_ci = helpers.is_ci
|
local is_ci = helpers.is_ci
|
||||||
local fn = helpers.fn
|
local fn = helpers.fn
|
||||||
@ -2497,3 +2499,47 @@ aliquip ex ea commodo consequat.]]
|
|||||||
}
|
}
|
||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
it('pager works in headless mode with UI attached', function()
|
||||||
|
skip(is_os('win'))
|
||||||
|
clear()
|
||||||
|
local child_server = assert(helpers.new_pipename())
|
||||||
|
fn.jobstart({ nvim_prog, '--clean', '--headless', '--listen', child_server })
|
||||||
|
retry(nil, nil, function()
|
||||||
|
neq(nil, vim.uv.fs_stat(child_server))
|
||||||
|
end)
|
||||||
|
|
||||||
|
local child_session = helpers.connect(child_server)
|
||||||
|
local child_screen = Screen.new(40, 6)
|
||||||
|
child_screen:attach(nil, child_session)
|
||||||
|
|
||||||
|
child_session:notify('nvim_command', [[echo range(100)->join("\n")]])
|
||||||
|
child_screen:expect([[
|
||||||
|
0 |
|
||||||
|
1 |
|
||||||
|
2 |
|
||||||
|
3 |
|
||||||
|
4 |
|
||||||
|
-- More --^ |
|
||||||
|
]])
|
||||||
|
|
||||||
|
child_session:request('nvim_input', 'G')
|
||||||
|
child_screen:expect([[
|
||||||
|
95 |
|
||||||
|
96 |
|
||||||
|
97 |
|
||||||
|
98 |
|
||||||
|
99 |
|
||||||
|
Press ENTER or type command to continue^ |
|
||||||
|
]])
|
||||||
|
|
||||||
|
child_session:request('nvim_input', 'g')
|
||||||
|
child_screen:expect([[
|
||||||
|
0 |
|
||||||
|
1 |
|
||||||
|
2 |
|
||||||
|
3 |
|
||||||
|
4 |
|
||||||
|
-- More --^ |
|
||||||
|
]])
|
||||||
|
end)
|
||||||
|
Loading…
Reference in New Issue
Block a user