vis

a vi-like editor based on Plan 9's structural regular expressions

git clone https://9o.is/git/vis.git

commit 73f1fc752ea505af4c15161caf7314fa7f30ff8c
parent b25c0bc947759250cb40a096cfc57e3fff0ad029
Author: Marc André Tanner <mat@brain-dump.org>
Date:   Thu, 21 Apr 2016 22:33:18 +0200

vis-lua: implement vis:message(msg)

Diffstat:
MREADME.md | 3++-
Mvis-lua.c | 22++++++++++++++++------
2 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/README.md b/README.md @@ -588,7 +588,8 @@ At this time there exists no API stability guarantees. - `win` currently focused window - `windows()` iterator - `command(cmd)` - - `info(msg)` + - `info(msg)` display a single line message + - `message(msg)` display an arbitrarily long message - `open(filename)` - `textobject_register(function)` register a Lua function as a text object, returns associated `id` or `-1` - `textobject(id)` select/execute a text object diff --git a/vis-lua.c b/vis-lua.c @@ -334,13 +334,22 @@ static int command(lua_State *L) { static int info(lua_State *L) { Vis *vis = obj_ref_check(L, 1, "vis"); - if (!vis) { - lua_pushnil(L); - return 1; + if (vis) { + const char *msg = luaL_checkstring(L, 2); + vis_info_show(vis, "%s", msg); } - const char *msg = luaL_checkstring(L, 2); - vis_info_show(vis, "%s", msg); - return 0; + lua_pushboolean(L, vis != NULL); + return 1; +} + +static int message(lua_State *L) { + Vis *vis = obj_ref_check(L, 1, "vis"); + if (vis) { + const char *msg = luaL_checkstring(L, 2); + vis_message_show(vis, msg); + } + lua_pushboolean(L, vis != NULL); + return 1; } static int open(lua_State *L) { @@ -564,6 +573,7 @@ static const struct luaL_Reg vis_lua[] = { { "windows", windows }, { "command", command }, { "info", info }, + { "message", message }, { "open", open }, { "map", map }, { "motion", motion },