diff options
| -rw-r--r-- | lexers/lexer.lua | 6 | ||||
| -rw-r--r-- | vis.lua | 16 |
2 files changed, 19 insertions, 3 deletions
diff --git a/lexers/lexer.lua b/lexers/lexer.lua index 992d690..345dabe 100644 --- a/lexers/lexer.lua +++ b/lexers/lexer.lua @@ -862,7 +862,7 @@ local lpeg_match = lpeg.match M.LEXERPATH = package.path -- Table of loaded lexers. -local lexers = {} +M.lexers = {} -- Keep track of the last parent lexer loaded. This lexer's rules are used for -- proxy lexers (those that load parent and child lexers to embed) that do not @@ -1002,7 +1002,7 @@ end -- @return lexer object -- @name load function M.load(name, alt_name) - if lexers[alt_name or name] then return lexers[alt_name or name] end + if M.lexers[alt_name or name] then return M.lexers[alt_name or name] end parent_lexer = nil -- reset -- When using Scintillua as a stand-alone module, the `property` and @@ -1069,7 +1069,7 @@ function M.load(name, alt_name) end lexer.lex, lexer.fold = M.lex, M.fold - lexers[alt_name or name] = lexer + M.lexers[alt_name or name] = lexer return lexer end @@ -201,3 +201,19 @@ vis.filetype_detect = function(win) win.syntax = nil end +vis.events.theme_change = function(name) + if name ~= nil then + local theme = 'themes/'..name + package.loaded[theme] = nil + require(theme) + end + + if vis.lexers ~= nil then + vis.lexers.lexers = {} + end + + for win in vis:windows() do + win.syntax = win.syntax; + end +end + |
