diff --git a/languages/cpp/language.config.json b/languages/cpp/language.config.json index 7128f1f3..724a1359 100644 --- a/languages/cpp/language.config.json +++ b/languages/cpp/language.config.json @@ -28,7 +28,7 @@ "additionalMethodTemplates": [ "declarations", "declarations-override" ], "templateExtensionMap": { "methods": [ "impl.cpp", "cpp" ], - "declarations": ["h"], - "declarations-override": ["impl.h"] + "declarations": [ "h" ], + "declarations-override": [ "impl.h" ] } } diff --git a/src/macrofier/engine.mjs b/src/macrofier/engine.mjs index f58da181..54d0ec51 100644 --- a/src/macrofier/engine.mjs +++ b/src/macrofier/engine.mjs @@ -560,7 +560,7 @@ const generateMacros = (obj, templates, languages, options = {}) => { const eventsEnum = generateEvents(obj, templates) const examples = generateExamples(obj, templates, languages) - const allMethodsArray = generateMethods(obj, examples, templates) + const allMethodsArray = generateMethods(obj, examples, templates, options.type) Array.from(new Set(['methods'].concat(config.additionalMethodTemplates))).filter(dir => dir).forEach(dir => { @@ -1169,7 +1169,7 @@ function generateMethodResult(type, templates) { return result } -function generateMethods(json = {}, examples = {}, templates = {}) { +function generateMethods(json = {}, examples = {}, templates = {}, type = '') { const methods = compose( option([]), getMethods @@ -1192,13 +1192,13 @@ function generateMethods(json = {}, examples = {}, templates = {}) { if (dir.includes('declarations') && (suffix && config.templateExtensionMap[dir] ? config.templateExtensionMap[dir].includes(suffix) : true)) { const template = getTemplateForDeclaration(methodObj, templates, dir) if (template && template.length) { - result.declaration[dir] = insertMethodMacros(template, methodObj, json, templates, 'declarations', examples) + result.declaration[dir] = insertMethodMacros(template, methodObj, json, templates, '', examples) } } else if (dir.includes('methods') && (suffix && config.templateExtensionMap[dir] ? config.templateExtensionMap[dir].includes(suffix) : true)) { const template = getTemplateForMethod(methodObj, templates, dir) if (template && template.length) { - result.body[dir] = insertMethodMacros(template, methodObj, json, templates, 'methods', examples) + result.body[dir] = insertMethodMacros(template, methodObj, json, templates, type, examples) } } }) diff --git a/src/macrofier/index.mjs b/src/macrofier/index.mjs index 6a078880..99a1a3e0 100644 --- a/src/macrofier/index.mjs +++ b/src/macrofier/index.mjs @@ -183,7 +183,7 @@ const macrofy = async ( // Pick the index and defaults templates for each module. templatesPerModule.forEach(t => { - const macros = engine.generateMacros(module, templates, exampleTemplates, {hideExcluded: hideExcluded, copySchemasIntoModules: copySchemasIntoModules, createPolymorphicMethods: createPolymorphicMethods, destination: t}) + const macros = engine.generateMacros(module, templates, exampleTemplates, {hideExcluded: hideExcluded, copySchemasIntoModules: copySchemasIntoModules, createPolymorphicMethods: createPolymorphicMethods, destination: t, type: 'methods'}) let content = getTemplateForModule(module.info.title, t, templates) // NOTE: whichever insert is called first also needs to be called again last, so each phase can insert recursive macros from the other