Lua: template.define_slash_command

pull/1224/head
Zef Hemel 2025-01-26 08:07:32 +01:00
parent b8835a07e2
commit f940a04dc8
1 changed files with 25 additions and 0 deletions

View File

@ -33,4 +33,29 @@ function template.new(template_str)
return space_lua.interpolate(template_str, obj)
end
end
-- Creates a template-based slash command, keys for def are:
-- name: name of the slash command
-- description: description of the slash command
-- only_contexts: parent AST nodes in which this slash command is available, defaults to everywhere
-- except_contexts: parent AST nodes in which this slash command is not available
-- template: template function to apply
-- insert_at: position to insert the template into
-- match: match string to apply the template to
-- match_regex: match regex to apply the template to
function template.define_slash_command(def)
slash_command.define {
name = def.name,
description = def.description,
onlyContexts = def.only_contexts,
exceptContexts = def.except_contexts,
run = function()
system.invoke_function("template.applySnippetTemplate", def.template(), {
insertAt = def.insert_at,
match = def.match,
matchRegex = def.match_regex
})
end
}
end
```