diff options
Diffstat (limited to 'modules')
-rw-r--r-- | modules/textadept/snippets.lua | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/modules/textadept/snippets.lua b/modules/textadept/snippets.lua index 0a44c2b2..f519f07e 100644 --- a/modules/textadept/snippets.lua +++ b/modules/textadept/snippets.lua @@ -379,11 +379,22 @@ function M._select() for trigger, text in pairs(snippets) do if type(text) == 'string' then list[#list + 1] = trigger..'|'..text end end - if snippets[buffer:get_lexer(true)] then - for trigger, text in pairs(snippets[buffer:get_lexer(true)]) do + local lexer = buffer:get_lexer(true) + if snippets[lexer] then + for trigger, text in pairs(snippets[lexer]) do if type(text) == 'string' then list[#list + 1] = trigger..'|'..text end end end + for i = 1, #M._paths do + for basename in lfs.dir(M._paths[i]) do + local first, second = basename:match('^([^.]+)%.?([^.]*)') + if second == '' or first == lexer then + local f = io.open(M._paths[i]..'/'..basename) + list[#list + 1] = (second ~= '' and second or first)..'|'..f:read('*a') + f:close() + end + end + end table.sort(list) for i = 1, #list do items[#items + 1], items[#items + 2] = list[i]:match('^([^|]+)|(.+)$') |