IntelliJ IDEA中如何使用Live模板添加方法注释

How to add method comments with Live template in IntelliJ idea

我想自动生成注释,但是/**+enter 只生成包含@param 和@return 标签的Javadoc。

我还想生成日期和作者,但是当我制作实时模板时,我使用了 methodparameters() 来自动生成参数,但这在方法之外不起作用。我必须在方法中生成文档,然后将其移动到方法的顶部。

如何在带有@param、@author 和@date 标签的方法之外生成注释?

更新:

@javau 的回答成功了,坦克!感谢修复语法,Luciano van der Veekens

我这样修改了 xml:

<template name="auth" value="@author $USER$ &#10;    * @since  $DATE;" description="Inset Javadoc @author and @since tags" toReformat="true" toShortenFQNames="true">
  <variable name="USER" expression="user()" defaultValue="" alwaysStopAt="false" />
  <variable name="DATE" expression="date()" defaultValue="" alwaysStopAt="false" />
  <context>
    <option name="JAVA_COMMENT" value="true" />
  </context>
</template>

您将无法完全按照自己的意愿行事。 /**Enter 快捷方式本身并不是实时模板。而且无法编辑。并且实时模板无法访问不属于它的方法的方法参数。

从长远来看,我建议您 open a feature request 在使用 /** 快捷方式时设置一个包含 @author@since 标签的设置。

目前,您可以分两步完成。创建一个实时模板以插入 @author@since 标签。 (我在下面有一个示例,您可以复制和粘贴。)然后您需要键入:/**EnterauthTab 其中 auth 是您的实时模板的快捷方式。你最终会得到类似的东西:

/**
 * @author Dilbert
 * @since 2017-06-07
 * @param foo
 * @param bar
 */
void m1(String foo, String bar)

这是一个示例模板:

<template name="auth" value="@author $USER$ &#10;    * @since  $DATE$&#10;    *" description="Inset Javadoc @author and @since tags" toReformat="true" toShortenFQNames="true">
  <variable name="USER" expression="user()" defaultValue="" alwaysStopAt="false" />
  <variable name="DATE" expression="date()" defaultValue="" alwaysStopAt="false" />
  <context>
    <option name="JAVA_COMMENT" value="true" />
  </context>
</template>

更新

根据评论 "I was wondering where you found the option name JAVA_COMMENT?" 回答您的问题,该评论位于 Live Template 对话框的底部。您可以设置模板(即快捷方式)为 applicable/available 的 context/scope。这是屏幕截图。

如果您不知道,您可以通过复制我显示的 XML 然后将其粘贴到模板组中来创建模板。仅当您的剪贴板中有有效模板 XML 时,粘贴选项才可用。确保 <template 元素前没有前导空格或行。 (我通过复制选项获得了 XML。)