如何阻止Eclipse自动添加括号?

Kon*_*ner 33 eclipse parentheses

例如,如果我输入"整数".然后点击CTRL + SPACE,现在从列表中选择"valueOf",Eclipse总是在函数名后添加"()".这对我来说真的很烦人,因为我经常会有一个已经存在的语句,并想要围绕它包装一个函数.

示例: 我想要改变

String x = "hello world";
Run Code Online (Sandbox Code Playgroud)

String x = StringManipulator.uppercase("hello world");
Run Code Online (Sandbox Code Playgroud)

如果我写

String x = StringManipulator."hello world";
Run Code Online (Sandbox Code Playgroud)

并在点字符上按CTRL + SPACE,它会插入

String x = StringManipulator.uppercase()"hello world";
Run Code Online (Sandbox Code Playgroud)

有没有办法解决这个问题?我不需要自动括号关闭但只是阻止Eclipse自动插入它们会对我有所帮助.

pru*_*nat 13

在eclipse中转到首选项 - >进入搜索框类型:"parent" - >取消选中您不喜欢的选项.这就是那个混乱中的搜索(eclipse偏好).

  • 谢谢!通过搜索父级,我在Editor-> Typing中找到了它.编辑:没有帮助:-(我未选中"自动关闭..."(括号)..."但它仍然创建它们. (2认同)

小智 10

我发现这种无关的表面设置有很大的不同,所以我会提到它.

如果在"内容辅助"首选项上选择"完成覆盖"而不是"完成插入",则eclipse中的自动完成功能会有所不同.

(让我们wrappingMethod()完成的方法.)

wrappingMoriginalMethod()
使用上面"gM"之后的光标,接受完成提议会给出:
wrappingMethod()

wrappingM(originalMethod()
使用上面的"gM"之后的光标,接受完成提议给出:
wrappingMethod(originalMethod()
注意我必须添加open paren以防止覆盖,但没有额外的parens.

wrappingM originalMethod()
使用上面"gM"之后的光标,接受完成提议会给出:
wrappingMethod(parameterGuess) originalMethod()

到目前为止,我发现这是最舒适的选择.我认为,如果有一个"智能"括号插入功能,如果在现有的paren之前完成,并且因为我正在寻找,那么它将不会插入parens会很好...如果它可以检查它会更加棒极了那些现有的parens看看他们是否有我正在寻找的args并做一些聪明的事情或者在我的插入点之后检查方法,看看它是否应该是我完成的一个参数并且继续前进并做到这一点然后关闭如果那里已经存在一个,那么在它之后以及在分号之前.

然后,如果IDE写入我的所有代码,那么我会很快感到无聊.

  • 好一个!并同意 - 奇怪的是,根据 Eclipse 对我的源代码的理解,它并没有发现已经存在“()”:/ (2认同)

小智 5

自动关闭括号是因为当你打开括号时,在这种情况下,你正在自动完成一个方法,在这种情况下,当你调用的方法有参数时,它会自动创建括号和放置参数的块,没有办法只需自动完成不带括号的方法,但您可以创建一个模板来自动完成:

  1. 转到首选项:Java => 编辑器 => 模板
  2. 新的
  3. 写下任何相关名称
  4. 在上下文中选择 Java 语句
  5. 内部模式写入: StringManipulator.uppercase(${line_selection}${cursor});
  6. 好的,再一次好
  7. 现在,当您想要添加该功能时,只需选择要包围的文本,按 alt + shift + z,然后选择您之前创建的模板

希望能帮助到你

  • 谢谢!令人放心的是,这种方法确实存在,但对于所有 Java API 方法来说都太复杂了:-) (3认同)