neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

commit f96f8566b5f7997266264ba94a22844d9bc22699
parent dadc06ced268b0ec3b5ce5796be0af78cd387cbb
Author: zeertzjq <zeertzjq@outlook.com>
Date:   Mon,  9 Oct 2023 16:14:37 +0800

test(ui/embed_spec): use notification instead of request (#25555)

This avoid the hang mentioned in #24888, and also matches TUI better.
Diffstat:
Mtest/functional/ui/embed_spec.lua | 1+
Mtest/functional/ui/screen.lua | 11++++++++---
2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/test/functional/ui/embed_spec.lua b/test/functional/ui/embed_spec.lua @@ -98,6 +98,7 @@ describe('--embed UI', function() -- attach immediately after startup, for early UI local screen = Screen.new(40, 8) + screen.rpc_async = true -- Avoid hanging. #24888 screen:attach {stdin_fd=3} screen:set_default_attr_ids { [1] = {bold = true, foreground = Screen.colors.Blue1}; diff --git a/test/functional/ui/screen.lua b/test/functional/ui/screen.lua @@ -150,6 +150,7 @@ function Screen.new(width, height) msg_grid = nil, msg_grid_pos = nil, _session = nil, + rpc_async = false, messages = {}, msg_history = {}, showmode = {}, @@ -173,9 +174,13 @@ function Screen.new(width, height) _busy = false, }, Screen) local function ui(method, ...) - local status, rv = self._session:request('nvim_ui_'..method, ...) - if not status then - error(rv[2]) + if self.rpc_async then + self._session:notify('nvim_ui_'..method, ...) + else + local status, rv = self._session:request('nvim_ui_'..method, ...) + if not status then + error(rv[2]) + end end end self.uimeths = create_callindex(ui)