有没有办法在Intellij中使用默认令牌值Live templates?例如,我有以下实时模板,它声明了一个我想为每个类创建的私有变量:
private static final Logger logger = Logger.getLogger($CLASS$.class)
$CLASS$每次使用此实时模板时似乎都不需要输入,因为它可以从范围或文件名中的类派生.我想知道是否可以在实时模板中使用环境定义的令牌作为默认值?
在IntelliJ IDEA中,我已经定义了一个这样的实时模板:
@Inject
private void postInject() {
//I want the cursor to be placed here after the execution of the live template.
}
Run Code Online (Sandbox Code Playgroud)
有没有办法告诉IntelliJ在展开实时模板后将光标放在方法体内?
在Intellij Idea中,当我输入psfs然后按下Ctrl+JIDE时,我得到一个对话框:

当我按下Enter我得到一个

我知道我可以在哪里定制自己的输出

但我不能通过任何文档来编写自己的实时模板.
最后我想得到下一个结果:
psfst- >按Ctrl+J- >按Enter public static final String TAG = <currentClassName>.class.getSimpleName();
它会非常有用,因为我有习惯记录我的课程.
希望您使用默认情况下由Android提供的实时模板.
喜欢:
Generate debug log statement: "logd"+TAB
Generate error log statement: "loge"+TAB
Generate info log statement: "logi"+TAB
Generate TAG declaration: "logt"+TAB
Generate parameter logging: "logm"+TAB
Generate method return log: "logr"+TAB
Run Code Online (Sandbox Code Playgroud)
它是否在Android Studio 3.0 Canary版本中不可用?
在Intellij IDEA的实时模板中可能会有一些误解.我的意思是模板中变量的默认值.
假设我们有这个实时模板

我在这里期待的是,当调用此模板(键入jqon并按TAB键)时,我将看到已经键入的默认值,我可以更改或保留原样.像这样

但不是.我有空字符串而不是默认值

为什么?
我有一些方法:
public int getSomeField()
Run Code Online (Sandbox Code Playgroud)
我想像这样生成javadoc:
/**
* Gets {someField}
*
* @return value of {someField}
*/
Run Code Online (Sandbox Code Playgroud)
其中{someField}是字段名称的占位符.可以为Intellij Idea创建此模板(可以作为实时模板)吗?
我想为setter创建实时模板.
我已经创建了这个模板

如何使用par变量的值来生成var变量的值?基本上,我想在这里避免冗余,只将变量名称放一次,其他一个将由某些算法自动生成.
UPDATE
我想澄清一下我想要实现的目标.
假设我想创建名为setTime的 setter,它具有参数时间.
public void setTime(long time)
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
我不想两次输入"时间" - 大写和非大写.我想只键入参数名称,因此将自动生成方法名称.
更新(答案)
原来,变量订单很重要.这是我想要的最终结果

我的意思是输入"iter"和得到一个"for"循环,选择要迭代的变量,键入"soutv"生成"System.out.println",其中"variable ="已经在......
谢谢 !
如何在Idea Intellij中为Live Templates添加新的自定义函数.
例如,我需要一个自定义函数,它可以将实时模板变量从Camel Case转换为Spaced.即在实时模板中,变量必须插入多个有空格和无空格的地方.
例如."MyVar"和"我的Var".所以我想插入一个表达式将'MyVar'转换为'My Var'.
默认情况下,不能使用任何表达式.
谢谢.