Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何让Eclipse为Java内容辅助插入选项卡而不是空格?_Eclipse_Content Assist - Fatal编程技术网

如何让Eclipse为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

有没有办法说服Eclipse使用制表符而不是空格来缩进其内置的Java内容辅助方案(例如,当创建一个覆盖父类中的方法的空方法时)

我能找到的唯一相关设置是在Windows/Preferences/General/Editor/Text Editor/Insert spaces for tabs中,此设置未选中

(编辑:一些海报指出Java/代码样式/格式化程序/缩进/制表符策略,设置为“仅制表符”)


目前,我必须记住选择它们并使用
++

重新格式化。请查看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几年的人一个明确的答案。因此,我将在这里给出完整的路径:

  • 转到项目->属性
  • 在结果框中,转到“Java代码样式”->Formatter
  • 单击框右上角的“配置工作区设置”链接
  • 单击名称旁边的“编辑”按钮
  • 将“制表符策略:”下拉框更改为“仅限空格”,因为制表符是邪恶的,不可避免地会导致代码格式错误。>:-(这也是您可以实际影响文件中缩进大小和制表符大小的地方
  • 您需要更改框顶部的“配置文件名称”以保存更改
  • 谢天谢地,一旦您点击“OK”,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上发现了这一点。这很有帮助怎么