diff options
| author | Marc André Tanner <mat@brain-dump.org> | 2016-12-08 09:21:15 +0100 |
|---|---|---|
| committer | Marc André Tanner <mat@brain-dump.org> | 2016-12-08 09:21:15 +0100 |
| commit | b33fe9f37d6a9c672650df1c61e897f2582ef563 (patch) | |
| tree | 707ee47470715b46523d02a86d6e4304c0d130bc | |
| parent | 6d1d45776b231304b0ff41b5e6098f07931ec44e (diff) | |
| download | vis-b33fe9f37d6a9c672650df1c61e897f2582ef563.tar.gz vis-b33fe9f37d6a9c672650df1c61e897f2582ef563.tar.xz | |
vis-lua: expose init event and use it to set default theme
The init event is emitted immediately after `visrc.lua` has been sourced, but
before any other events have occured, in particular the command line arguments
have not yet been processed.
Close #422
| -rw-r--r-- | lua/vis-std.lua | 2 | ||||
| -rw-r--r-- | lua/vis.lua | 2 | ||||
| -rw-r--r-- | lua/visrc.lua | 6 | ||||
| -rw-r--r-- | vis-lua.c | 11 |
4 files changed, 15 insertions, 6 deletions
diff --git a/lua/vis-std.lua b/lua/vis-std.lua index a46896a..831f64b 100644 --- a/lua/vis-std.lua +++ b/lua/vis-std.lua @@ -115,5 +115,3 @@ vis.events.subscribe(vis.events.WIN_STATUS, function(win) local right = ' ' .. table.concat(right_parts, " « ") .. ' ' win:status(left, right); end) - -vis:command("set theme ".. (vis.ui.colors <= 16 and "default-16" or "default-256")) diff --git a/lua/vis.lua b/lua/vis.lua index c5ab47e..be46b79 100644 --- a/lua/vis.lua +++ b/lua/vis.lua @@ -88,6 +88,7 @@ local events = { FILE_OPEN = "Event::FILE_OPEN", -- see @{file_open} FILE_SAVE_POST = "Event::FILE_SAVE_POST", -- see @{file_save_post} FILE_SAVE_PRE = "Event::FILE_SAVE_PRE", -- see @{file_save_pre} + INIT = "Event::INIT", -- see @{init} QUIT = "Event::QUIT", -- see @{quit} START = "Event::START", -- see @{start} THEME_CHANGE = "Event::THEME_CHANGE", -- see @{theme_change} @@ -102,6 +103,7 @@ events.file_close = function(...) events.emit(events.FILE_CLOSE, ...) end events.file_open = function(...) events.emit(events.FILE_OPEN, ...) end events.file_save_post = function(...) events.emit(events.FILE_SAVE_POST, ...) end events.file_save_pre = function(...) return events.emit(events.FILE_SAVE_PRE, ...) end +events.init = function(...) events.emit(events.INIT, ...) end events.quit = function(...) events.emit(events.QUIT, ...) end events.start = function(...) events.emit(events.START, ...) end events.theme_change = function(...) events.emit(events.THEME_CHANGE, ...) end diff --git a/lua/visrc.lua b/lua/visrc.lua index 1a304b4..13bd7f7 100644 --- a/lua/visrc.lua +++ b/lua/visrc.lua @@ -3,9 +3,9 @@ require('vis') require('plugins/filetype') require('plugins/textobject-lexer') -vis.events.subscribe(vis.events.START, function() - -- Your global configuration options e.g. - -- vis:command('map! normal j gj') +vis.events.subscribe(vis.events.INIT, function() + -- Your global configuration options + vis:command("set theme ".. (vis.ui.colors <= 16 and "default-16" or "default-256")) end) vis.events.subscribe(vis.events.WIN_OPEN, function(win) @@ -1846,6 +1846,15 @@ static bool package_exist(Vis *vis, lua_State *L, const char *name) { return ret; } +/*** + * Editor initialization completed. + * This event is emitted immediately after `visrc.lua` has been sourced, but + * before any other events have occured, in particular the command line arguments + * have not yet been processed. + * + * Can be used to set *global* configuration options. + * @function init + */ void vis_lua_init(Vis *vis) { lua_State *L = luaL_newstate(); if (!L) @@ -1979,6 +1988,7 @@ void vis_lua_init(Vis *vis) { lua_getglobal(L, "require"); lua_pushstring(L, "visrc"); pcall(vis, L, 1, 0); + vis_lua_event_call(vis, "init"); } } @@ -1987,7 +1997,6 @@ void vis_lua_init(Vis *vis) { * This event is emitted immediately before the main loop starts. * At this point all files are loaded and corresponding windows are created. * We are about to process interactive keyboard input. - * Can be used to set *global* configuration options. * @function start */ void vis_lua_start(Vis *vis) { |
