nmk_vscode.builders

Python module for nmk-vscode plugin builders.

Classes

JsonTemplateBuilder

Generic build logic to generate VSCode json config files

SettingsBuilder

Builder for vs.settings task

LaunchBuilder

Builder for vs.launch task

TasksBuilder

Builder for vs.tasks task

ExtensionsBuilder

Builder for vs.extensions task

Module Contents

class nmk_vscode.builders.JsonTemplateBuilder(model: nmk.model.model.NmkModel)

Bases: nmk_base.common.TemplateBuilder

Generic build logic to generate VSCode json config files

contribute(settings: dict[str, Any], update: dict[str, Any])

Merge settings from update dictionary into settings one. Merge logic for existing settings is:

  • for lists: new settings are appended after existing ones

  • for dictionaries: existing dictionary is updated with new one content

  • for other types: existing values are replaces with new ones

Parameters:
  • settings – Settings dictionary to be updated

  • settings – Update dictionary to be merged into the existing one

build_json(files: list[str] | list[pathlib.Path], items: dict[str, Any] | None = None, keywords: dict[str, Any] | None = None)

Generate target json file by merging provided files, then items (if any)

Parameters:
  • files – List of input json files to be rendered (as Jinja templates) then merged

  • items – Dictionary to be merged in generated json file

  • keywords – Keywords for Jinja rendering

class nmk_vscode.builders.SettingsBuilder(model: nmk.model.model.NmkModel)

Bases: JsonTemplateBuilder

Builder for vs.settings task

build(files: list[str], items: dict[str, Any])

Build logic: merge provided settings files and items

Parameters:
  • files – Settings files to be merged

  • items – Settings items to be merged

class nmk_vscode.builders.LaunchBuilder(model: nmk.model.model.NmkModel)

Bases: JsonTemplateBuilder

Builder for vs.launch task

build(files: list[str])

Build logic: merge provided launch configuration files

Parameters:

files – Launch configuration files to be merged

class nmk_vscode.builders.TasksBuilder(model: nmk.model.model.NmkModel)

Bases: JsonTemplateBuilder

Builder for vs.tasks task

build(nmk_tasks: dict[str, Any], shell_tasks: dict[str, Any], default_tasks: list[str])

Build logic: merge provided automated tasks files, then add generated nmk automated tasks

Parameters:
  • files – Automated tasks files to be merged

  • task_template – Path to Jinja template for nmk tasks

  • nmk_tasks – Dictionary for nmk tasks definitions

  • shell_tasks – Dictionary for shell tasks definitions

  • default_tasks – List of default tasks to be identified as such in generated file

class nmk_vscode.builders.ExtensionsBuilder(model: nmk.model.model.NmkModel)

Bases: JsonTemplateBuilder

Builder for vs.extensions task

build(names: list[str])

Build logic: generated recommended extensions file from provided names

Parameters:

names – Extension names to be added in the generated file