From fa47c738372849406d5ff97992c043793dbb2307 Mon Sep 17 00:00:00 2001 From: mitchell <70453897+667e-11@users.noreply.github.com> Date: Wed, 9 Mar 2011 19:23:26 -0500 Subject: Try to determine lexer by file extension last; modules/textadept/mime_types.lua --- modules/textadept/mime_types.lua | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) (limited to 'modules') 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 -- cgit v1.2.3