Eclipse代码模板 - 缩进

6

我创建了一个代码模板来添加日志记录器及其对应的导入:

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

如果我现在添加它,记录器总是从行的开头开始,即使我的光标已经缩进。有没有办法强制将其放置在光标位置?
这是一个屏幕截图,以说明我的意思:
====>>>>> 编辑:Grove的答案在这种情况下很有帮助。但是这个例子怎么办?我还想向记录器添加注释。如果我在同一行中像这样定义模板,则记录器实际上会出现在注释的同一行中。
${:import(org.apache.log4j.Logger)}
/**
 *  Logger
 */ private static final Logger logger = Logger.getLogger(${enclosing_type}.class);

1
请查看我的更新答案。下次需要更多细节时,您可以在答案中添加评论,这样人们就会收到通知。修改问题不会触发通知(除非您将其标记为收藏?!) - Morfic
2个回答

4
是的,不要在导入和日志记录器定义之间添加新行:
${: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);

2
如果有任何人要给我点踩的话,我希望能够附上一个简短的评论,这样我就可以知道我做错了什么。 - Morfic

1

我认为你不需要专注于模板,你可以使用 Formatter

Windows > Preferences > Java > Code Style > Formatter中创建自己的格式化程序,并在Windows > Preferences > Java > Editor > Save Actions中启用 Save Actions (选择格式化源代码格式化所有行选项),然后在这里选择先前创建的格式化程序。

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接