aboutsummaryrefslogtreecommitdiff
path: root/lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua')
-rw-r--r--lua/plugins/filetype.lua10
-rw-r--r--lua/plugins/textobject-lexer.lua6
-rw-r--r--lua/vis.lua5
3 files changed, 9 insertions, 12 deletions
diff --git a/lua/plugins/filetype.lua b/lua/plugins/filetype.lua
index 553e79d..d643f82 100644
--- a/lua/plugins/filetype.lua
+++ b/lua/plugins/filetype.lua
@@ -506,15 +506,7 @@ vis.events.subscribe(vis.events.WIN_OPEN, function(win)
for _, cmd in pairs(filetype.cmd or {}) do
vis:command(cmd)
end
- if not vis.lexers.property then return end
- local path = vis.lexers.property['scintillua.lexers']:gsub(';', '/?.lua;')
- local lexname = filetype.alt_name or syntax
- local lexpath = package.searchpath(lexname, path)
- if lexpath ~= nil then
- win:set_syntax(lexname)
- else
- win:set_syntax(nil)
- end
+ win:set_syntax(filetype.alt_name or syntax)
end
local path = win.file.name -- filepath
diff --git a/lua/plugins/textobject-lexer.lua b/lua/plugins/textobject-lexer.lua
index 2f9d757..eba65e2 100644
--- a/lua/plugins/textobject-lexer.lua
+++ b/lua/plugins/textobject-lexer.lua
@@ -8,13 +8,17 @@ vis:textobject_new("ii", function(win, pos)
return nil
end
+ local lexer = vis.lexers.load(win.syntax, nil, true)
+ if not lexer then
+ return nil
+ end
+
local before, after = pos - MAX_CONTEXT, pos + MAX_CONTEXT
if before < 0 then
before = 0
end
-- TODO make sure we start at a line boundary?
- local lexer = vis.lexers.load(win.syntax, nil, true)
local data = win.file:content(before, after - before)
local tokens = lexer:lex(data)
local cur = before
diff --git a/lua/vis.lua b/lua/vis.lua
index 5473f17..d06bbaf 100644
--- a/lua/vis.lua
+++ b/lua/vis.lua
@@ -131,7 +131,8 @@ else
local load_lexer = vis.lexers.load
vis.lexers.load = function (name, alt_name, cache)
if cache and lexers[alt_name or name] then return lexers[alt_name or name] end
- local lexer = load_lexer(name, alt_name)
+ local status, lexer = pcall(load_lexer, name, alt_name)
+ if not status then return nil end
if cache then lexers[alt_name or name] = lexer end
return lexer
end
@@ -276,6 +277,7 @@ vis.types.window.set_syntax = function(win, syntax)
win.syntax = nil
return true
end
+ win.syntax = syntax
if not lexers.load then return false end
local lexer = lexers.load(syntax)
@@ -297,7 +299,6 @@ vis.types.window.set_syntax = function(win, syntax)
if style ~= nil then win:style_define(id, style) end
end
- win.syntax = syntax
return true
end