CLion новый шаблон файла класса C++

CLion имеет шаблон файла для создания класса C++, который генерирует исходный файл и заголовок. В моем проекте у меня есть классы обработчиков, которые имеют одинаковую часть кода, и я хочу сгенерировать их по шаблонам файлов. И шаблоны, которые я создал, не могут этого сделать:

  1. Установите имена файлов для класса MyHandlerClass, я хочу my_handler_class.cpp и .hpp

  2. Из одного имени класса я хочу создать 2 файла заголовка и источника, не знаю, как это сделать.

  3. Я также хочу иметь строку типа MyClass -> my-class, found function $lowercaseAndDash($NAME), но не знаю, почему она не работает

У меня есть шаблон для заголовка:

#pragma once
// includes

namespace handlers {

class ${NAME}: public Parent {
  public:
  // methods
};

}

Я попытался решить первую проблему, установив имя файла следующим образом: #set ($FILE_NAME = "test_class.hpp"). Но я не знаю, как настроить CamelCase на змею, и это не работает.

Также найдите в документы функцию для змеиного случая, но у меня она не работает в шаблоне файла.

3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
1
0
1 422
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
  1. Невозможно изменить имя файла из шаблона. Когда вы создаете класс C++, вы устанавливаете имя класса и выбрать кодировку имени файла. Когда вы создать файл из шаблона, это сохраняет файл с вашим именем файла. Я нашел решение таким образом, введите имя_файла (в случае змеи) и с помощью Velocity создайте CamelCaseName для имени класса:

    #set( $CamelCaseName = "" )

    #set( $part = "" )

    #foreach($part in $NAME.split("_"))

    #set( $CamelCaseName = "${CamelCaseName}$part.substring(0,1).toUpperCase()$part.substring(1).toLowerCase()" )

    #end

  2. Невозможно сгенерировать 2 файла одним щелчком мыши, как это делает шаблон класса С++. У меня есть шаблоны, и я использую их оба.

  3. Эта функция предназначена для liveTemplates, для FileTemplate я использовал скорость: #set( $NeededString = $NAME.replaceAll('_', '-') )

    Чтобы включить заголовочный файл из cpp, используйте #[[#include]]# "${NAME}.hpp"

Другие вопросы по теме