如何让Eclipse为Java内容辅助插入选项卡而不是空格?
有没有办法说服Eclipse使用制表符而不是空格来缩进其内置的Java内容辅助方案(例如,当创建一个覆盖父类中的方法的空方法时) 我能找到的唯一相关设置是在Windows/Preferences/General/Editor/Text Editor/Insert spaces for tabs中,此设置未选中 (编辑:一些海报指出Java/代码样式/格式化程序/缩进/制表符策略,设置为“仅制表符”)如何让Eclipse为Java内容辅助插入选项卡而不是空格?,eclipse,content-assist,Eclipse,Content Assist,有没有办法说服Eclipse使用制表符而不是空格来缩进其内置的Java内容辅助方案(例如,当创建一个覆盖父类中的方法的空方法时) 我能找到的唯一相关设置是在Windows/Preferences/General/Editor/Text Editor/Insert spaces for tabs中,此设置未选中 (编辑:一些海报指出Java/代码样式/格式化程序/缩进/制表符策略,设置为“仅制表符”) 目前,我必须记住选择它们并使用++重新格式化。请查看Java/code-Style/Format
目前,我必须记住选择它们并使用
++
重新格式化。请查看Java/code-Style/Formatter的首选项创建您自己的配置文件,并将“缩进”/“制表符策略”设置为“仅制表符”首选项>Java>代码样式>格式化程序>编辑>缩进>仅将制表符用于前导缩进复选框我的设置方式是在编辑器->保存操作首选项中启用“格式源代码”
这样,它在保存时会重新格式化源代码。这似乎是当前的一个bug(在3.5系列中未修复): (用于注释,但也适用于其他重构JDT操作) 还链接到,涉及AST重写中的错误 我相信这是
ASTRewrite
的问题,而不是ASTRewrite
的客户端的问题。
我们必须确保代码格式化程序设置可用于重写
部分。移动到
JDT/Core
进行调查
在3.4后期检测到,在3.5中仍然没有修复,我也有这个问题。问题是我的工作区中某个地方隐藏了一些配置。我创建了一个新的工作区,并重新导入了我的项目,我的选项卡不再转换为空间。我确保未选中“编辑>智能插入模式”,这似乎对配置缩进和格式设置不起作用时有所帮助。运行Eclipse3.7.0。多亏了Simon Nickerson在上面的评论,我找到了解决方案,这正是原始海报在其编辑中提到的。找到背景后,我明白他们在说什么了。然而,从一开始就给出了几步实现它的方法,因此它无法给像我这样刚接触Eclipse或已经离开Eclipse几年的人一个明确的答案。因此,我将在这里给出完整的路径:
现在,真正有问题的是,这些设置覆盖了“Windows/Preferences/General/Editor/Text Editor/Insert spaces for tabs”中更改类似声音设置的更为前端的界面。对于编辑新手来说,这似乎是设置默认选项卡=空格设置的地方。找到真正的答案后,很明显,这只是用于一般文本编辑,需要在配置文件中为手边的语言设置特定于语言的设置。不过,对于noobs来说,这应该更清楚一些。;-)即使在文本编辑器首选项中设置了“为制表符插入空格”选项并将“我的格式化程序配置文件”选项卡策略设置为“空格”后,Eclipse仍在插入制表符。只有在从文件中删除所有选项卡后,它才正确地为选项卡插入空格。发现这一点后,我确定文本编辑器首选项中的“为制表符插入空格”选项似乎没有任何效果,正是对格式化程序配置文件制表符策略的更改达到了预期的效果。另一个解决方案“适合我”,即使其他解决方案不起作用(版本:3.8.1):
首选项>Java>代码样式>格式化程序>编辑>缩进>使用空格缩进包装行-未选中设置
这本质上就是“智能标签”选项。它适用于格式化程序,但它错误地将代码生成设置为仅使用空格。令人烦恼的是,该解决方案破坏了格式化程序。但是您是否有一个活动的格式化程序,其常规设置中的“选项卡策略”设置为“仅限空格”?签入Preferences/Java/Code-Style/Formatter/button-Edit。@Simon没关系:如果重新格式化有效,您的格式化程序就正常了。我添加了一个答案,该答案引用了一个可能与您的问题相关的bug。@VonC:是的,“选项卡策略”设置设置为“仅选项卡”,我们的评论已被忽略。我发现第二个bug仍在进行中。(见我更新的答案)相关:。聪明,但我不想这样做,因为这会给源代码管理差异带来太多噪音。好吧,这里有另一个想法(虽然可能有点乏味)转到java->Editor->Templates,编辑您使用的每个模板,并通过粘贴到可以将选项卡重新格式化为空格的编辑器来修复它们,我最感兴趣的模板似乎是在别处定义的(在Java/代码样式/代码模板/代码/方法体中),但这些只是给出了方法体,根本没有缩进@Simon:不足为奇:正如bug 231832(在我的回答中提到的)所指出的,ASTRewrite无法访问格式首选项。我看不到确切的设置,但同一对话框中的“选项卡策略”设置被设置为“仅选项卡”。我在Windows Eclipse 3.5.1Thanks上发现了这一点。这很有帮助怎么