繁体   English   中英

如何在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快捷键本身不是实时模板。 而且无法编辑。 实时模板无法访问它不在内部的方法的方法参数。

从长远来看,我建议您打开一个功能请求 ,即在使用/**快捷方式时,要进行设置以包括@author@since标记。

现在,您可以分两个步骤进行操作。 创建一个实时模板以插入@author@since标签。 (下面有一个示例,您可以复制和粘贴。)然后,您需要输入: /** 输入 auth 选项卡 ,其中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>

UPDATE

通过评论“我想知道您在哪里找到选项名称JAVA_COMMENT?”来回答您的问题。 那是在实时模板对话框的底部。 您可以设置模板(即快捷方式)适用/可用的上下文/范围。 这是屏幕截图。

动态模板Diloag

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

粘贴模板

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM