aboutsummaryrefslogtreecommitdiff
path: root/lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua')
-rw-r--r--lua/vis-std.lua22
-rw-r--r--lua/vis.lua9
2 files changed, 22 insertions, 9 deletions
diff --git a/lua/vis-std.lua b/lua/vis-std.lua
index 85defad..9ed0317 100644
--- a/lua/vis-std.lua
+++ b/lua/vis-std.lua
@@ -1,5 +1,25 @@
-- standard vis event handlers
+vis.events.subscribe(vis.events.INIT, function()
+ local package_exist = function(name)
+ for _, searcher in ipairs(package.searchers or package.loaders) do
+ local loader = searcher(name)
+ if type(loader) == 'function' then
+ return true
+ end
+ end
+ return false
+ end
+
+ if not package_exist('lpeg') then
+ vis:info('WARNING: could not find lpeg module')
+ elseif not package_exist('lexer') then
+ vis:info('WARNING: could not find lexer module')
+ else
+ vis.lexers = require('lexer')
+ end
+end)
+
vis.events.subscribe(vis.events.THEME_CHANGE, function(name)
if name ~= nil then
local theme = 'themes/'..name
@@ -7,7 +27,7 @@ vis.events.subscribe(vis.events.THEME_CHANGE, function(name)
require(theme)
end
- if vis.lexers ~= nil then vis.lexers.lexers = {} end
+ if vis.lexers then vis.lexers.lexers = {} end
for win in vis:windows() do
win.syntax = win.syntax;
diff --git a/lua/vis.lua b/lua/vis.lua
index 97350a7..f1aff45 100644
--- a/lua/vis.lua
+++ b/lua/vis.lua
@@ -5,14 +5,7 @@
---
-- @type Vis
-local ok, msg = pcall(function()
- vis.lexers = {}
- vis.lexers = require('lexer')
-end)
-
-if not ok then
- vis:info('WARNING: could not load lexer module, is lpeg installed?')
-end
+vis.lexers = {}
--- Map a new motion.
--