From 1fc175627f3afe938be0b5daa6a864b281725fec Mon Sep 17 00:00:00 2001 From: Rudy Dellomas III Date: Tue, 23 Apr 2024 15:33:13 +1000 Subject: lua: Report viewport lines and bytes in one table This will break all plugins which currently use Win.viewport. --- vis-lua.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'vis-lua.c') diff --git a/vis-lua.c b/vis-lua.c index b103b12..a3029fa 100644 --- a/vis-lua.c +++ b/vis-lua.c @@ -1831,7 +1831,10 @@ static const struct luaL_Reg registers_funcs[] = { /*** * Viewport currently being displayed. - * @tfield Range viewport + * Changing these values will not move the viewport. + * @table viewport + * @tfield Range bytes + * @tfield Range lines */ /*** * The window width. @@ -1867,8 +1870,18 @@ static int window_index(lua_State *L) { const char *key = lua_tostring(L, 2); if (strcmp(key, "viewport") == 0) { - Filerange r = view_viewport_get(win->view); - pushrange(L, &r); + Filerange b = view_viewport_get(win->view); + Filerange l; + l.start = view_lines_first(win->view)->lineno; + l.end = view_lines_last(win->view)->lineno; + + lua_createtable(L, 0, 2); + lua_pushstring(L, "bytes"); + pushrange(L, &b); + lua_settable(L, -3); + lua_pushstring(L, "lines"); + pushrange(L, &l); + lua_settable(L, -3); return 1; } -- cgit v1.2.3