aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/textadept/mime_types.lua28
1 files changed, 13 insertions, 15 deletions
diff --git a/modules/textadept/mime_types.lua b/modules/textadept/mime_types.lua
index d4a7467b..7319861a 100644
--- a/modules/textadept/mime_types.lua
+++ b/modules/textadept/mime_types.lua
@@ -162,26 +162,24 @@ end
-- Sets the buffer's lexer language and loads the language module.
local function handle_new()
local lexer
- if buffer.filename then
- lexer = extensions[buffer.filename:match('[^/\\.]+$')]
+ local line = buffer:get_line(0)
+ if line:find('^#!') then
+ for word in line:gsub('[/\\]', ' '):gmatch('%S+') do
+ lexer = shebangs[word]
+ if lexer then break end
+ end
end
if not lexer then
- local line = buffer:get_line(0)
- if line:find('^#!') then
- for word in line:gsub('[/\\]', ' '):gmatch('%S+') do
- lexer = shebangs[word]
- if lexer then break end
- end
- end
- if not lexer then
- for patt, lex in pairs(patterns) do
- if line:find(patt) then
- lexer = lex
- break
- end
+ for patt, lex in pairs(patterns) do
+ if line:find(patt) then
+ lexer = lex
+ break
end
end
end
+ if not lexer and buffer.filename then
+ lexer = extensions[buffer.filename:match('[^/\\.]+$')]
+ end
buffer:set_lexer(lexer or 'container')
end