5

我创建了一个代码模板来添加一个记录器和相应的导入:

${:import(org.apache.log4j.Logger)}
private static final Logger logger = Logger.getLogger(${enclosing_type}.class);

如果我现在添加它,记录器总是从行首开始,即使我的光标已经缩进了。有没有办法强制放置在光标的位置?

这是显示我的意思的屏幕截图:

在此处输入图像描述

====>>>>

在此处输入图像描述

编辑:格罗夫的回答在这个特定的案例中有所帮助。但是这个例子怎么样?我还想向记录器添加评论。如果我在同一行中定义这样的模板,则记录器实际上与注释出现在同一行中。

${:import(org.apache.log4j.Logger)}
/**
 *  Logger
 */ private static final Logger logger = Logger.getLogger(${enclosing_type}.class);
4

2 回答 2

3

是的,不要在导入和记录器定义之间添加新行:

${:import(org.apache.log4j.Logger)}private static final Logger logger = Logger.getLogger(${enclosing_type}.class);

旁注:如果需要,您还可以使用${cursor}变量将光标定位在模板中

问题更新后编辑:同样适用,导入变量不必是模式中的第一个,它可以在任何地方,但仍将被评估:

/**
 *  Logger
 */
${:import(org.apache.log4j.Logger)}private static final Logger logger = Logger.getLogger(${enclosing_type}.class);
于 2014-04-08T14:03:17.350 回答
1

我认为您不需要为此专注于模板。您可以为此使用格式化程序。

在其中创建自己的格式化程序Windows > Preferences > Java > Code Style > Formatter并启用保存操作Windows > Preferences > Java > Editor > Save Actions选择格式化源代码格式化所有行选项),在这里您选择之前创建的格式化程序。

一旦你插入记录器模板编辑器变脏然后保存编辑器(按Ctrl+ S)然后自动缩进将根据格式化程序中的设置发生。

请参阅以创建格式化程序。在缩进选项卡中使用您喜欢的空格数。我用过Tab Policy = Spaces only and Indentation size = 4

于 2014-04-09T06:15:31.420 回答