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$ * @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
标签。 (我在下面有一个示例,您可以复制和粘贴。)然后您需要键入:/**
Enterauth
Tab 其中 auth
是您的实时模板的快捷方式。你最终会得到类似的东西:
/**
* @author Dilbert
* @since 2017-06-07
* @param foo
* @param bar
*/
void m1(String foo, String bar)
这是一个示例模板:
<template name="auth" value="@author $USER$ * @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>
更新
根据评论 "I was wondering where you found the option name JAVA_COMMENT?" 回答您的问题,该评论位于 Live Template 对话框的底部。您可以设置模板(即快捷方式)为 applicable/available 的 context/scope。这是屏幕截图。
如果您不知道,您可以通过复制我显示的 XML 然后将其粘贴到模板组中来创建模板。仅当您的剪贴板中有有效模板 XML 时,粘贴选项才可用。确保 <template
元素前没有前导空格或行。 (我通过复制选项获得了 XML。)
我想自动生成注释,但是/**+enter 只生成包含@param 和@return 标签的Javadoc。
我还想生成日期和作者,但是当我制作实时模板时,我使用了 methodparameters() 来自动生成参数,但这在方法之外不起作用。我必须在方法中生成文档,然后将其移动到方法的顶部。
如何在带有@param、@author 和@date 标签的方法之外生成注释?
更新:
@javau 的回答成功了,坦克!感谢修复语法,Luciano van der Veekens
我这样修改了 xml:
<template name="auth" value="@author $USER$ * @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
标签。 (我在下面有一个示例,您可以复制和粘贴。)然后您需要键入:/**
Enterauth
Tab 其中 auth
是您的实时模板的快捷方式。你最终会得到类似的东西:
/**
* @author Dilbert
* @since 2017-06-07
* @param foo
* @param bar
*/
void m1(String foo, String bar)
这是一个示例模板:
<template name="auth" value="@author $USER$ * @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>
更新
根据评论 "I was wondering where you found the option name JAVA_COMMENT?" 回答您的问题,该评论位于 Live Template 对话框的底部。您可以设置模板(即快捷方式)为 applicable/available 的 context/scope。这是屏幕截图。
如果您不知道,您可以通过复制我显示的 XML 然后将其粘贴到模板组中来创建模板。仅当您的剪贴板中有有效模板 XML 时,粘贴选项才可用。确保 <template
元素前没有前导空格或行。 (我通过复制选项获得了 XML。)