diff --git a/src/settings/SettingsTab.ts b/src/settings/SettingsTab.ts index 2b32a8eb..0edf4387 100644 --- a/src/settings/SettingsTab.ts +++ b/src/settings/SettingsTab.ts @@ -222,5 +222,21 @@ export class SettingsTab extends PluginSettingTab { await this.plugin.saveSettings(); }); }); + + new Setting(containerEl) + .setName(`Inject post ${languageAlt} code`) + .setDesc(`Code to add to the bottom of every ${languageAlt} code block before running.`) + .setClass('settings-code-input-box') + .addTextArea(textarea => { + // @ts-ignore + const val = this.plugin.settings[`${language}InjectPost` as keyof ExecutorSettings as string] + return textarea + .setValue(val) + .onChange(async (value) => { + (this.plugin.settings[`${language}InjectPost` as keyof ExecutorSettings] as string) = value; + console.log(`${language} inject post set to ${value}`); + await this.plugin.saveSettings(); + }); + }); } } diff --git a/src/transforms/CodeInjector.ts b/src/transforms/CodeInjector.ts index 5656f200..37f2c196 100644 --- a/src/transforms/CodeInjector.ts +++ b/src/transforms/CodeInjector.ts @@ -53,9 +53,10 @@ export class CodeInjector { const realLanguage = /[^-]*$/.exec(language)[0]; const globalInject = this.settings[`${realLanguage}Inject` as keyof ExecutorSettings]; + const globalInjectPost = this.settings[`${realLanguage}InjectPost` as keyof ExecutorSettings]; let injectedCode = `${this.namedImportSrcCode}\n${srcCode}`; if (!this.mainArgs.ignore) - injectedCode = `${globalInject}\n${this.prependSrcCode}\n${injectedCode}\n${this.appendSrcCode}`; + injectedCode = `${globalInject}\n${this.prependSrcCode}\n${injectedCode}\n${this.appendSrcCode}\n${globalInjectPost}`; else { // Handle single ignore if (!Array.isArray(this.mainArgs.ignore) && this.mainArgs.ignore !== "all")