From f1620a7642ccc19e1b6223ac846c0df4eaf5479d Mon Sep 17 00:00:00 2001 From: Katinka Tauber Date: Thu, 9 Nov 2023 15:26:02 +0100 Subject: [PATCH] WIP: Add extension snippets for all do binds. See #302 --- metafix-vsc/fix.snippets.json | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/metafix-vsc/fix.snippets.json b/metafix-vsc/fix.snippets.json index 6ac945a4..53885cc6 100644 --- a/metafix-vsc/fix.snippets.json +++ b/metafix-vsc/fix.snippets.json @@ -1,7 +1,22 @@ { - "do bind": { - "prefix": ["do"], - "body": ["do ${1:collector}(${2:args})", "\t${0:body}", "end"], - "description": "A do bind changes the execution context of the body functions. They are executed for each element in the list." + "do list": { + "prefix": ["do list"], + "body": ["do list(path: \"${1:}\", \"var\": \"${4:}\")", "\t${0:body}", "end"], + "description": "Iterates over each element of an array. In contrast to Catmandu, it can also iterate over a single object or string." + }, + "do list_as": { + "prefix": ["do list_as"], + "body": ["do list_as(\"${1:}\", \"${2:}\")", "\t${0:body}", "end"], + "description": "Iterates over each named element of an array (like do list with a variable name). If multiple arrays are given, iterates over the corresponding elements from each array (i.e., all elements with the same array index, skipping elements whose arrays have already been exhausted)." + }, + "do once": { + "prefix": ["do once"], + "body": ["do list_as(${2:args})", "\t${0:body}", "end"], + "description": "Executes the statements only once (when the bind is first encountered), not repeatedly for each record." + }, + "do put_macro": { + "prefix": ["do put_macro"], + "body": ["do list_as(${2:args})", "\t${0:body}", "end"], + "description": "Defines a named macro, i.e. a list of statements that can be executed later with the call_macro function." } }