Как получить вербальную версию имени проекта с помощью пользовательских шаблонов .NET CLI - PullRequest
0 голосов
/ 18 апреля 2019

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

Обычно шаблоны выполняют довольно простой поиск / замену имени проекта шаблона на имя проекта, который вы создаете с помощью dotnet new.Этот поиск чувствителен к регистру, поэтому он будет подбирать только экземпляры имени с точно таким же регистром.

Однако в моем случае мне нужно, чтобы оно совпадало с версией верблюжьего имени и заменяло его верблюжьей версией нового имени.Возможно ли это?

Эта ссылка содержит довольно мало информации, а this показывает, что существует генератор параметров, который поддерживает преобразования в верхний и нижний регистры, но конкретноговорит, что не поддерживает верблюжийВсе, что мне действительно нужно, это возможность изменить первый символ с верхнего на нижний регистр.

Любая идея, как я могу вставить вербальную версию названия проекта?

Вотмой экспериментальный template.json для верхнего и нижнего регистра и параметр командной строки, но, очевидно, ничего для верблюжьего корпуса.

{
  "$schema": "http://json.schemastore.org/template",
  "identity": "TemplateTest.CSharp",
  "groupIdentity": "TemplateTest.Console",
  "author": "TemplateTest",
  "classifications": [ "Common", "Console" ],
  "name": "TemplateTest console template",
  "shortName": "test",
  "preferNameDirectory": true,
  "tags": {
    "language": "C#"
  },
  "sourceName": "TemplateTest",
  "symbols": {
    "apiname": {
      "type": "parameter",
      "datatype": "text",
      "defaultValue": "##FIX THIS##",
      "replaces": "templateTest"
    },
    "nameUpper": {
      "type": "generated",
      "generator": "casing",
      "parameters": {
        "source": "name",
        "toLower": false
      },
      "replaces": "TEMPLATETEST"
    },
    "nameLower": {
      "type": "generated",
      "generator": "casing",
      "parameters": {
        "source": "name",
        "toLower": true
      },
      "replaces": "templatetest"
    }
  }
}
...