diff options
Diffstat (limited to 'custom/extensions/syntax-highlight.lua')
-rw-r--r--custom/extensions/syntax-highlight.lua8
1 file changed, 5 insertions, 3 deletions
diff --git a/custom/extensions/syntax-highlight.lua b/custom/extensions/syntax-highlight.lua
index 2bff263..544fce1 100644
--- a/custom/extensions/syntax-highlight.lua
+++ b/custom/extensions/syntax-highlight.lua
@@ -162,9 +162,11 @@ local function load_lexer_name(name)
return nil
end
-local function lexer_for(name)
+local function lexer_for(name, text)
if type(scintillua.detect) == "function" then
- local ok, lang = pcall(scintillua.detect, name)
+ -- The first line goes along, so a script with no extension is still
+ -- known by its shebang.
+ local ok, lang = pcall(scintillua.detect, name, text:match("^[^\n]*"))
if ok and lang then
local lexer = load_lexer_name(lang)
if lexer then
@@ -181,7 +183,7 @@ local function lexer_for(name)
end
local function highlight(text)
- local lexer = lexer_for(filename)
+ local lexer = lexer_for(filename, text)
if not lexer then
return nil
end