nmk_vscode.builders =================== .. py:module:: nmk_vscode.builders .. autoapi-nested-parse:: Python module for **nmk-vscode** plugin builders. Classes ------- .. autoapisummary:: nmk_vscode.builders.JsonTemplateBuilder nmk_vscode.builders.SettingsBuilder nmk_vscode.builders.LaunchBuilder nmk_vscode.builders.TasksBuilder nmk_vscode.builders.ExtensionsBuilder Module Contents --------------- .. py:class:: JsonTemplateBuilder(model: nmk.model.model.NmkModel) Bases: :py:obj:`nmk_base.common.TemplateBuilder` Generic build logic to generate VSCode json config files .. py:method:: contribute(settings: dict, update: dict) 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 :param settings: Settings dictionary to be updated :param settings: Update dictionary to be merged into the existing one .. py:method:: build_json(files: list[str], items: dict = None, keywords: dict = None) Generate target json file by merging provided files, then items (if any) :param files: List of input json files to be rendered (as Jinja templates) then merged :param items: Dictionary to be merged in generated json file :param keywords: Keywords for Jinja rendering .. py:class:: SettingsBuilder(model: nmk.model.model.NmkModel) Bases: :py:obj:`JsonTemplateBuilder` Builder for **vs.settings** task .. py:method:: build(files: list[str], items: dict) Build logic: merge provided settings files and items :param files: Settings files to be merged :param items: Settings items to be merged .. py:class:: LaunchBuilder(model: nmk.model.model.NmkModel) Bases: :py:obj:`JsonTemplateBuilder` Builder for **vs.launch** task .. py:method:: build(files: list[str]) Build logic: merge provided launch configuration files :param files: Launch configuration files to be merged .. py:class:: TasksBuilder(model: nmk.model.model.NmkModel) Bases: :py:obj:`JsonTemplateBuilder` Builder for **vs.tasks** task .. py:method:: build(files: list[str], task_template: str, nmk_tasks: dict, shell_tasks: dict, default_task: str) Build logic: merge provided automated tasks files, then add generated nmk automated tasks :param files: Automated tasks files to be merged :param task_template: Path to Jinja template for nmk tasks :param nmk_tasks: Dictionary for nmk tasks definitions :param shell_tasks: Dictionary for shell tasks definitions :param default_task: Name of task to be declared as the default one in generated file .. py:class:: ExtensionsBuilder(model: nmk.model.model.NmkModel) Bases: :py:obj:`JsonTemplateBuilder` Builder for **vs.extensions** task .. py:method:: build(names: list[str]) Build logic: generated recommended extensions file from provided names :param names: Extension names to be added in the generated file