diff options
author | 2011-03-09 19:23:26 -0500 | |
---|---|---|
committer | 2011-03-09 19:23:26 -0500 | |
commit | fa47c738372849406d5ff97992c043793dbb2307 (patch) | |
tree | edc5da558a78f5e839db63b86bec99736923bcbb /modules/textadept/mime_types.lua | |
parent | 9c5f059926f9b194c09e066bcf8631198cf13844 (diff) | |
download | textadept-fa47c738372849406d5ff97992c043793dbb2307.tar.gz textadept-fa47c738372849406d5ff97992c043793dbb2307.zip |
Try to determine lexer by file extension last; modules/textadept/mime_types.lua
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 |