CLion 新 C++ Class 文件模板

CLion new C++ Class file template

CLion 具有生成 C++ 的文件模板 Class,它生成源文件和 header。在我的项目中,我有处理程序 classes 具有相同的代码部分,我想通过文件模板生成它们。我创建的模板无法执行此操作:

  1. 设置文件名 class MyHandlerClass 我想要 my_handler_class.cpp 和 .hpp

  2. 我想从一个class名称生成2个文件header和源代码,不知道该怎么做。

  3. 我也想要像 MyClass -> my-class 这样的字符串,找到函数 $lowercaseAndDash($NAME) 但不知道为什么它不起作用

我有 header 的模板:

#pragma once
// includes

namespace handlers {

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

}

我试图通过像这样设置文件名来解决第一个问题:#set ($FILE_NAME = "test_class.hpp")。但是我不知道将 CamelCase 设置为 snake 很热,而且这不起作用。

也在 docs 函数中找到蛇形大小写,但它在文件模板中对我不起作用。

  1. 无法从模板更改文件名。创建 C++ Class 时,设置 class 名称select 文件名编码。当您从模板创建文件 时,它会使用您的文件名 保存文件。我通过这种方式找到了解决方案,输入 file_name(蛇形),然后使用 Velocity create CamelCaseName for class name:

    #set( $CamelCaseName = "" )

    #set( $part = "" )

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

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

    #end

  2. 不可能像 C++ Class 模板那样一次点击生成 2 个文件。我必须模板,并同时使用它们。

  3. 此函数用于 liveTemplates,对于 FileTemplate,我使用了速度:#set( $NeededString = $NAME.replaceAll('_', '-') )

    要包含来自 cpp 的头文件,请使用 #[[#include]]# "${NAME}.hpp"