diff options
Diffstat (limited to 'modules/textadept/mime_types.lua')
-rw-r--r-- | modules/textadept/mime_types.lua | 28 |
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 |