mirror of
https://github.com/neovim/neovim.git
synced 2025-09-13 23:08:16 +00:00
refactor(ui): devirtualize the ui layer
- The defined interface for the UI is only the RPC protocol. The original UI interface as an array of function pointers fill no function. - On the server, all the UI:s are all RPC channels. - ui.c is only used on the server. - The compositor is a preprocessing step for single-grid UI:s - on the client, ui_client and tui talk directly to each other - we still do module separation, as ui_client.c could form the basis of a libnvim client module later. Items for later PR:s - vim.ui_attach is still an unhappy child, reconsider based on plugin experience. - the flags in ui_events.in.h are still a mess. Can be simplified now. - UX for remote attachment needs more work. - startup for client can be simplified further (think of the millisecs we can save)
This commit is contained in:
@@ -653,7 +653,7 @@ ok:
|
||||
}
|
||||
|
||||
LuaRef ui_event_cb = nlua_ref_global(lstate, 3);
|
||||
ui_comp_add_cb(ns_id, ui_event_cb, ext_widgets);
|
||||
ui_add_cb(ns_id, ui_event_cb, ext_widgets);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -667,7 +667,7 @@ static int nlua_ui_detach(lua_State *lstate)
|
||||
return luaL_error(lstate, "invalid ns_id");
|
||||
}
|
||||
|
||||
ui_comp_remove_cb(ns_id);
|
||||
ui_remove_cb(ns_id);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user