我创建了一个代码模板来添加记录器和相应的导入:
${: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);
答案 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 ),则会根据格式化程序中的设置自动缩进。
有关格式化程序的创建,请参阅this和this。在缩进标签中,使用您喜欢的空格数量。我使用了Tab Policy = Spaces only and Indentation size = 4
。