在展开活动模板缩写时,其变量要么显示为输入字段,您可以在其中键入值,要么被替换为值。这些可以是您可以修改的默认值,也可以是使用函数计算出的值。

要在模板中声明变量,请使用以下格式:$VAR$

在表达式中,使用变量名称时不要包含开头和结尾的美元符号 $,例如,lowercaseAndDash(ComponentName)

要将美元符号 $ 添加到模板文本中,以便它不被视为变量声明,请使用特殊变量 $$

使用表达式定义每个变量,并为在表达式无法计算时提供默认值。

此表达式可以包含以下构造:

  • 双引号中的字符串常量
  • 在活动模板中定义的其他变量的名称
  • 可能带有参数的预定义函数

配置模板变量

  1. 打开设置对话框(CtrlAltS),转到 Editor | Live Templates。
  2. 选择要配置变量的模板。
  3. 在模板文本中指定变量,然后点击 "Edit Variables..."。
  4. 在Edit Template Variables对话框中,您可以为每个变量执行以下操作:

    • 更改变量名称
    • 使用预定义函数定义表达式
    • 为表达式无法计算时指定默认值
    • 指定在成功计算表达式时是否要跳过提示用户输入的变量
      1.png

预定义模板变量

2.png

CLion 支持以下无法修改的预定义活动模板变量:

  • $END$ 表示代码片段完成时光标的位置,您不能再按 Tab 键跳转到下一个变量。
  • $SELECTION$ 用于包围模板,表示要包装的代码片段。模板展开后,它会根据模板中指定的方式包装所选文本。例如,如果您在代码中选择 EXAMPLE 并通过分配的缩写或按 Ctrl+Alt+0+T 并从列表中选择所需的模板来调用 "$SELECTION$" 模板,CLion 将在双引号中包装所选内容,如下所示:"EXAMPLE"

用于活动模板变量的函数

以下函数可用于定义活动模板变量:

函数名描述
autoTypeForRangedForLoop()为 range-base for 循环提供类型推导的变量。
blockCommentEnd()返回当前语言上下文中块注释的结束字符。
blockCommentStart()返回当前语言上下文中块注释的开始字符。
camelCase(<String>)将字符串转换为驼峰式命名。
capitalize(<String>)将字符串的第一个字母大写。
capitalizeAndUnderscore(<String>)将字符串的所有字母大写,并在部分之间插入下划线。
className()返回当前类的名称。
clipboard()返回系统剪贴板的内容。
collectionElementName()返回集合的元素名称。
commentEnd()返回当前语言上下文中注释的结束字符。
commentStart()返回当前语言上下文中注释的开始字符。
complete()在变量位置调用代码补全。
completeSmart()在变量位置调用智能类型补全。
concat(<String>, ...)返回所有作为参数传递给函数的字符串的连接。
date([format])返回当前系统日期。
decapitalize(<String>)将字符串的第一个字母变为小写。
enum(<String>, ...)返回模板展开时建议的完成列表中的字符串列表。
escapeString(<String>)转义特殊字符,以便在 Java 字符串中使用。
fileName()返回当前文件的名称。
fileNameWithoutExtension()返回当前文件的名称(不包括扩展名)。
filePath()返回当前文件的绝对路径。
fileRelativePath()返回当前文件相对于当前项目的路径。
firstWord(<String>)返回参数字符串的第一个单词。
lineCommentStart()返回当前语言上下文中行注释的开始字符。
lineNumber()返回当前行号。
lowercaseAndDash(<String>)将字符串转换为小写并插入破折号作为分隔符。
methodName()返回模板展开所在方法的名称。
objectWithFunctions(sFunctionName1, sFunctionName2,...)返回可见对象的列表,这些对象包含成员函数。
pyFunctionName()返回当前 Python 函数的名称。
regularExpression(<String>, <Pattern>, <Replacement>)查找字符串中所有与模式匹配的内容,并用替换内容替换它们。
showParameterInfo()在将参数添加到函数或方法时返回参数详细信息。
snakeCase(<String>)将字符串转换为蛇形命名。
spaceSeparated(<String>)返回指定的字符串,其中间用空格分隔。
spacesToUnderscores(<String>)将字符串中的空格替换为下划线。
substringBefore(<String>, <Delimiter>)返回指定分隔符之前的子字符串。
suggestIndexName()返回迭代索引变量的建议名称。
suggestVariableName()根据变量类型和其初始化表达式为变量建议名称。
time([format])返回当前系统时间。
underscoresToCamelCase(<String>)将带有下划线的字符串转换为驼峰式命名。
underscoresToSpaces(<String>)将字符串中的下划线替换为空格。
user()返回当前用户的名称。
variableForIteration()返回循环中用作范围表达式的对象的实例。
variableForRangeBasedIteration()返回包含 beginend 函数的对象的变量。
variableOfType(<String>)返回可能分配给参数类型的所有变量。

示例

作为示例,让我们创建一个用于简单的 C++ 类的活动模板,使用变量和函数。该模板将包含三个变量:

  • $ClassName$:一个新类的名称
  • $Food$:三个可能的值之一:"meat"、"grass" 和 "honey"
  • $AnimalName$:类名以小写字母开头,以便可以在句子中使用

创建带有变量的模板

  1. 按下 CtrlAlt0S 打开 IDE 设置,然后选择 Editor | Live Templates。
  2. 选择 C/C++ 组,点击 添加按钮,然后选择 Live Template。
  3. 在缩写字段中,指定用于展开模板的字符。例如,animal
  4. 在模板文本字段中,粘贴以下模板:

    class $ClassName$: public Animal {
        public:
            string Food = "$Food$";
            void printFood () {
                std::cout << "The $AnimalName$ eats " << Food << std::endl;
            }
    };
  5. 点击 "Edit Variables...",在 "Edit Template Variables" 对话框中配置变量:

    • $ClassName$ 保持不变,表示我们希望用户在应用此模板时键入一个值。
    • $Food$:在 Expression 字段中输入 enum("meat","grass","honey")。这个函数允许在用户应用此模板时选择预定义的值之一。
    • $AnimalName$:在 Expression 字段中输入 decapitalize(ClassName)。这个函数将 ClassName 变量的值取出,并将其第一个字母转换为小写。选择 Skip if defined,因为我们不需要提示用户输入。
  6. 单击左下角的链接来定义或更改模板将适用的语言上下文。

使用创建的模板

  1. 开始键入活动模板的名称(在我们的示例中为 animal)。
  2. 输入变量的值(在我们的示例中是类名),然后按 Tab 键跳转到下一个变量。
  3. 使用键盘箭头选择 food 字符串的一个值。

这是示例中使用活动模板的步骤。

标签: clion破解, clion破解教程, clion教程, clion基础教程, clion高级教程, clion核心教程, clion免费激活码, clion免费注册码, clion注册码在线生成, clion激活