Создание живого шаблона "enum_from_string" и появится в меню Clion Context ActionC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Создание живого шаблона "enum_from_string" и появится в меню Clion Context Action

Сообщение Anonymous »

Я пытаюсь в основном выполнить Opisys of the enum_to_string »шаблона Live C/C ++.
Для контекста этот живой шаблон выглядит как:
const char * to_string($ENUM$ e) {
switch (e) {
case $ENUMERATOR$: return $ENUMERATOR_NAME$;
default: return "unknown";
}
}
< /code>
В моей "enum_from_string" Моя цель - иметь следующую подпись < /p>
[[nodiscard]]
constexpr MyEnum to_my_enum_class_snake_case_name(std::string_view string);
< /code>
, где он будет автоматический шаблон заполнить каждый член Enumeration в качестве оператора if, чтобы вернуть строку. < /p>
Мой живой шаблон выглядит следующим образом: < /p>
[[nodiscard]]
constexpr $ENUM$ to_ snakeCase("$ENUM$")(std::string_view string) {
if (string == $ENUMERATOR_NAME$) {
return $ENUMERATOR$;
}
throw std::runtime_error("Unexpected string: " + std::string(string));
}
< /code>
Кроме того, настройки правой стороны выглядят как следующее: < /p>

ortcut: enum_from_string < /li>
Описание: Функция 'to_ [enum_name]' для enum < /li>
Описание: Переформированное. C /c ++ < /li>
Использование в: Generation < /li>
Показать в контекстном действии: проверено < /li>
< /ul>
Мои переменные в переменных редактирования. редактируемые < /li>
Перечисление: перечисление в строку: имя перечислителя < /li>
enum: постоянно сбрасывается как «без макроса» даже после того, как я выбрал «enum to String: enum name» < /li>
< /ul>
, несмотря на то, что я должен нажать в контексте, показываю, что я могу появиться в контексте, что я буду появляться в контексте, в том, что я появляюсь в контексте, в том, что я появляюсь в контексте. он появляется, когда я щелкнут правой кнопкой мыши -> Показать контекстные действия.
Как я могу создать свой шаблон «enum_from_string» для генерации и позволить мне выбрать его в качестве опции в качестве контекстного действия?

Подробнее здесь: https://stackoverflow.com/questions/795 ... on-context
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»