Diff options
Diffstat (limited to '')
-rw-r--r--tests/extensions/fake-lexers/lexer.lua13
1 file changed, 8 insertions, 5 deletions
diff --git a/tests/extensions/fake-lexers/lexer.lua b/tests/extensions/fake-lexers/lexer.lua
index dd7545f..bb869de 100644
--- a/tests/extensions/fake-lexers/lexer.lua
+++ b/tests/extensions/fake-lexers/lexer.lua
@@ -1,9 +1,10 @@
-- A miniature stand-in for the Scintillua lexer module, just enough for the
-- syntax-highlight checks to drive every path through the filter without the
--- real collection installed. detect() names a lexer after the filename's
--- suffix, or fake for a shebang naming it, and load() hands out the toy lexer
--- of that name. Besides fake there is one that stops short and one that
--- raises, and any other name fails to load.
+-- real collection installed. detect() answers for the suffixes it knows,
+-- matched by case as Scintillua's own does, or fake for a shebang naming it,
+-- and load() hands out the toy lexer of that name. Besides fake there is one
+-- that stops short and one that raises, and python, which detect() knows but
+-- load() cannot find, as a collection missing a lexer would answer.
local M = {}
@@ -67,11 +68,13 @@ function M.load(name)
return lexer
end
+local suffixes = { fake = "fake", short = "short", badlex = "badlex", py = "python" }
+
function M.detect(filename, line)
if line ~= nil and line:match("^#!.*fake") then
return "fake"
end
- return filename:match("%.([^.]+)$")
+ return suffixes[filename:match("%.([^.]+)$") or ""]
end
return M