如何让Eclipse为Java内容辅助插入标签而不是空格?

时间:2010-04-14 10:29:19

标签: eclipse content-assist

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

我能找到的唯一相似的设置是在Windows /偏好设置/常规/编辑器/文本编辑器/插入标签的空格中,并且此设置未选中。

(编辑:有几张海报指出了Java / Code Style / Formatter / Indentation / Tab政策,它被设置为“仅限标签”)

目前我必须记住选择它们并使用<Ctrl>+<Shift>+<F>重新格式化。

9 个答案:

答案 0 :(得分:25)

我找到了解决方案,感谢Simon Nickerson上面的评论,这是原始海报在他的编辑中所指的。找到设置后,我看到他们在谈论什么。然而,从路径的开始就给出了一些方法,因此它无法给那些刚接触Eclipse的人或者像我一样已经离开它几年的人一个明确的答案。所以我将在这里给出完整的路径:

  1. 转到项目 - &gt;属性。
  2. 在结果框中,转到“Java代码样式” - &gt;格式化程序。
  3. 点击框右上角的“配置工作区设置”链接。
  4. 点击名称旁边的修改按钮。
  5. 将“标签策略:”下拉框更改为“仅空格”,因为标签是邪恶的,并且不可避免地导致代码格式不正确。 &gt; :-(这也是您可以实际影响文件中缩进大小和标签大小的地方。
  6. 您需要更改框顶部的“个人资料名称”以保存更改。
  7. 值得庆幸的是,一旦你点击“确定”,Eclipse就会将你的个人资料用于你当前的项目,所以你在这一步之后就完成了。
  8. 现在,真正被打破的是这些设置覆盖了更多的前端界面,用于更改“Windows /首选项/常规/编辑器/文本编辑器/插入空格中的选项卡”中的类似声音设置。对于编辑器相对较新的人来说,这似乎是设置默认tabs = spaces设置的地方。在找到真正的答案之后,很明显这仅适用于一般文本编辑,并且需要在手头语言的配置文件中设置特定于语言的设置。不过,这对于新手来说应该更加清晰。 ; - )

答案 1 :(得分:8)

目前似乎是一个错误(在3.5列车中未修复):

bug 44755(对于评论,但也适用于其他重构JDT操作)

还链接到bug 231832,涉及AST重写中的错误......

  

我认为这是ASTRewrite的问题,而不是ASTRewrite的客户。   我们必须确保代码格式化程序设置可用于重写   一部分。
  转到JDT/Core进行调查。

在3.4后期检测到,仍未在3.5中修复

答案 2 :(得分:2)

查看Java / Code Style / Formatter的首选项 创建您自己的个人资料并将“缩进”/“标签政策”设置为“仅限标签”

答案 3 :(得分:1)

偏好设置&gt; Java&gt;代码风格&gt;格式化器&gt;编辑&gt;缩进&gt;仅使用选项卡进行缩进复选框

答案 4 :(得分:1)

我设置它的方法是在编辑器 - >保存操作首选项中启用“格式化源代码”。

这样就可以在保存时重新格式化源代码。

答案 5 :(得分:1)

我也有这个问题。该问题原来是一些埋藏在我工作区中的配置。我创建了一个新的工作区并重新导入了我的项目,我的标签不再转换为空格了。

答案 6 :(得分:1)

我确保未选中编辑&gt;智能插入模式,这在配置缩进和格式设置不起作用时似乎对我有所帮助。运行Eclipse 3.7.0。

答案 7 :(得分:1)

即使在文本编辑器首选项中为选项卡设置插入空格选项并将我的格式化程序配置文件选项卡策略设置为仅空格,Eclipse仍然插入制表符。只有在从文件中删除所有选项卡后才能正确插入选项卡的空格。在发现这一点之后,我确定文本编辑器首选项中的“为选项卡插入空格”选项似乎没有任何效果,它是对格式化程序配置文件选项卡策略的更改,可实现所需的结果。

答案 8 :(得分:0)

即使其他解决方案不起作用,另一种“对我有用”的解决方案(版本:3.8.1):

偏好设置&gt; Java&gt;代码风格&gt;格式化器&gt;编辑&gt;缩进&gt;使用空格缩进包裹的行 - 设置未选中

这实际上是“智能标签”选项。它适用于格式化程序,但它错误地将代码生成设置为仅使用空格。令人讨厌的是,该解决方案破坏了格式化程序。