eclipse代码模板 - 缩进

时间:2014-04-08 13:58:09

标签: java eclipse indentation code-templates

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

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

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

这是一个截图,显示我的意思:

enter image description here

====>>>>

enter image description here

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

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

2 个答案:

答案 0 :(得分:2)

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

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

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

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

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

答案 1 :(得分:1)

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

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

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

有关格式化程序的创建,请参阅thisthis。在缩进标签中,使用您喜欢的空格数量。我使用了Tab Policy = Spaces only and Indentation size = 4