diff options
author | 2020-03-03 19:39:02 -0500 | |
---|---|---|
committer | 2020-03-03 19:39:02 -0500 | |
commit | fceb1a37df623649d191c3c1a881e5b0538b1391 (patch) | |
tree | 87a34dfc2397dc4afdaa0c8ec189f037300f458e /modules/textadept/snippets.lua | |
parent | 1618f5017abb3c9bacc9ba346bf22a936ef5dd06 (diff) | |
download | textadept-fceb1a37df623649d191c3c1a881e5b0538b1391.tar.gz textadept-fceb1a37df623649d191c3c1a881e5b0538b1391.zip |
Added test suite and API type checking for more helpful error messages.
Diffstat (limited to 'modules/textadept/snippets.lua')
-rw-r--r-- | modules/textadept/snippets.lua | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/modules/textadept/snippets.lua b/modules/textadept/snippets.lua index 7bdfab7e..e59bc223 100644 --- a/modules/textadept/snippets.lua +++ b/modules/textadept/snippets.lua @@ -309,12 +309,6 @@ local function new_snippet(text, trigger) end placeholder.position = #snapshot.text if placeholder.default then - -- Execute any embedded code first. - placeholder.default = placeholder.default:gsub('%%%b<>', function(s) - return snippet:execute_code{lua_code = s:sub(3, -2)} - end):gsub('%%%b[]', function(s) - return snippet:execute_code{sh_code = s:sub(3, -2)} - end) if placeholder.default:find('%%%d+') then -- Parses out embedded placeholders, adding them to this snippet's -- snapshot. @@ -595,8 +589,11 @@ snippet_mt = { -- @name insert function M.insert(text) local trigger - if not text then trigger, text = find_snippet(trigger) end - if type(text) == 'function' and not trigger:find('^_') then text = text() end + if not assert_type(text, 'string/nil', 1) then + trigger, text = find_snippet(trigger) + if type(text) == 'function' and not trigger:find('^_') then text = text() end + assert_type(text, 'string/nil', trigger or '?') + end local snippet = type(text) == 'string' and new_snippet(text, trigger) or snippet_stack[#snippet_stack] if snippet then snippet:next() else return false end @@ -633,8 +630,7 @@ function M.select() all_snippets[#all_snippets + 1], all_snippets[trigger] = trigger, snippet end table.sort(all_snippets) - for i = 1, #all_snippets do - local trigger = all_snippets[i] + for _, trigger in ipairs(all_snippets) do items[#items + 1], items[#items + 2] = trigger, all_snippets[trigger] end local button, i = ui.dialogs.filteredlist{ |