Как сгенерировать файлы условно при выборе Git? - PullRequest
0 голосов
/ 08 ноября 2018

Чтобы ускорить мой рабочий процесс с помощью Qt Creator, я создаю собственный мастер проектов в формате JSON, в качестве части которого добавляю Сводную страницу :

{
    "trDisplayName": "Project Management",
    "trShortTitle": "Summary",
    "typeId": "Summary"
}

В Генераторе файлов Я копирую два файла, то есть .gitattributes и .gitignore, в каталог проекта:

{
    "source": ".gitattributes",
    "target": "%{TargetPath}/.gitattributes"
},
{
    "source": ".gitignore",
    "target": "%{TargetPath}/.gitignore"
}

При такой записи файлы всегда копируются, даже если Git не выбран в качестве системы управления версиями. Я хочу, чтобы файлы копировались, только если они необходимы.

Документация для Сводной страницы гласит:

Устанавливает VersionControl для идентификатора используемой системы контроля версий

но дополнительная информация о переменной VersionControl и ее значениях не добавляется.

Как добиться желаемого результата?

1 Ответ

0 голосов
/ 08 ноября 2018

Я бы предложил вам следующее решение:

  1. Назначьте сочетание клавиш для команды Wizard.Inspect, перейдя к

    Инструменты -> Параметры -> Среда -> Клавиатура -> Сочетания клавиш

  2. Запуск пользовательскихмастера и перейдите на Сводную страницу

  3. Нажмите выбранную комбинацию клавиш

    Откроется окно со списком всех определенных полей и переменных вмастер в то время, когда действие было запущеноТам вы можете найти:

    Key            | Type    | Value | Eval
    VersionControl | QString | G.Git | G.Git
    
  4. Имея эту информацию, измените код Генератор файлов следующим образом:

    {
        "source": ".gitattributes",
        "target": "%{TargetPath}/.gitattributes",
        "condition": "%{JS: '%{VersionControl}' === 'G.Git'}"
    },
    {
        "source": ".gitignore",
        "target": "%{TargetPath}/.gitignore",
        "condition": "%{JS: '%{VersionControl}' === 'G.Git'}"
    }
    
...