diff --git a/doc/vscode-texinfo.texi b/doc/vscode-texinfo.texi index 4fd258b..d7042fe 100644 --- a/doc/vscode-texinfo.texi +++ b/doc/vscode-texinfo.texi @@ -457,6 +457,8 @@ are not validated. (@code{--no-validate}) @item @code{texinfo.preview.variables}: Array of variables to define (as with @code{@@set}). If a variable has a value, use the ASCII space character to separate key and value. +@item @code{texinfo.preview.customizationVariables}: Array of customization +variables. (@code{-c KEY=VALUE}) @end itemize diff --git a/package.json b/package.json index 7157876..73be267 100644 --- a/package.json +++ b/package.json @@ -207,6 +207,11 @@ "type": "array", "default": [], "description": "Define variables (as with @set)." + }, + "texinfo.preview.customizationVariables": { + "type": "array", + "default": [], + "description": "Set customization variables (format: KEY=VAL)" } } }, diff --git a/src/options.ts b/src/options.ts index 565c475..755b4b8 100644 --- a/src/options.ts +++ b/src/options.ts @@ -80,6 +80,10 @@ export default class Options return this._getArray('preview.variables'); } + get customizationVariables() { + return this._getArray('preview.customizationVariables'); + } + private readonly _configuration = vscode.workspace.getConfiguration('texinfo'); diff --git a/src/utils/converter.ts b/src/utils/converter.ts index 66904d4..040110f 100644 --- a/src/utils/converter.ts +++ b/src/utils/converter.ts @@ -48,6 +48,8 @@ export default class Converter } this._addIncludePaths(this._options.includePaths, options); this._defineVariables(this._options.variables, options); + this._setCustomizationVariables( + this._options.customizationVariables, options); this._includeCustomCSS(this._options.customCSS, options); return await exec( this._options.makeinfo, @@ -75,6 +77,13 @@ export default class Converter variables.forEach(varName => options.push('-D', varName)); } + private _setCustomizationVariables( + variables: readonly string[], + options: string[], + ) { + variables.forEach(varName => options.push('-c', varName)); + } + private _includeCustomCSS(cssFileURI: string, options: string[]) { if (!cssFileURI) { return;