【问题标题】:How to stop Eclipse from auto-adding parentheses?如何阻止 Eclipse 自动添加括号?
【发布时间】:2012-04-10 00:39:56
【问题描述】:

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

示例: 我要改变

String x = "hello world";

String x = StringManipulator.uppercase("hello world");

如果我写

String x = StringManipulator."hello world";

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

String x = StringManipulator.uppercase()"hello world";

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

【问题讨论】:

  • 这个问题的点赞数怎么可能少于 100?

标签: eclipse parentheses


【解决方案1】:

我发现这个看似无关的设置有很大的不同,所以我会提到它。

如果您在“内容辅助”首选项中选择“完成覆盖”而不是“完成插入”,则 Eclipse 中的自动完成功能的工作方式会有所不同。

(设wrappingMethod() 为将要完成的方法。)

wrappingMoriginalMethod()
将光标放在上面的“gM”之后,接受完成建议会给出:
wrappingMethod()

wrappingM(originalMethod()
将光标放在上面的“gM”之后,接受完成建议会给出:
wrappingMethod(originalMethod()
请注意,我必须添加打开的括号以防止覆盖,但没有额外的括号。

wrappingM originalMethod()
将光标放在上面的“gM”之后,接受完成建议:
wrappingMethod(parameterGuess) originalMethod()

我觉得这是迄今为止最舒服的选择。我确实认为,如果有一个“智能”括号插入功能,如果在现有括号之前完成就不会插入括号,因为无论如何我都希望......如果它可以检查,那就更棒了那些现有的括号,看看他们是否有我正在寻找的参数,并做一些聪明的事情,或者在我的插入点之后检查方法,看看它是否应该是我完成的一个参数,然后继续执行并关闭如果已经有分号,则在分号之前和分号之前。

再说一次,如果 IDE 编写了我的所有代码,那么我很快就会感到厌烦。

【讨论】:

  • 不错的一个!并同意 - 奇怪的是 Eclipse 对我的源代码的理解,它并没有解决已经存在“()”的情况:/
【解决方案2】:

自动关闭括号用于在这种情况下打开括号时自动完成方法,在这种情况下,当您调用的方法有参数时,它将自动创建括号和放置参数的块,有没有括号无法自动完成方法,但您可以创建一个模板来自动完成:

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

希望对你有帮助

【讨论】:

  • 谢谢!令人欣慰的是,这确实存在,但对于所有 Java API 方法来说太复杂了:-)
  • 我相信这是正确的答案。似乎没有办法告诉 Eclipse 在自动完成方法时不要创建 ();。除非,作为@pescamillam,提到你为每种方法都这样做。这是一个无赖。
【解决方案3】:

在 eclipse 中转到 Preferences -> 进入搜索框类型:“parent” -> 取消选中您不喜欢的选项。这就是在混乱中搜索的内容(日食偏好)。

【讨论】:

  • 谢谢!通过搜索 parent,我在 Editor-> Typing 中找到了它。编辑:没有帮助:-(我取消选择“自动关闭...”(括号)...“但它仍然创建它们。
  • 尝试重新启动 eclipse 并确保在正确的部分(Java、C/C++ 等)取消选中它。除非您的某些插件弄乱了它,否则它应该可以工作。
  • 您可能必须启用此(应用)然后禁用此(应用)才能使其生效!
猜你喜欢
  • 2016-10-11
  • 2014-01-05
  • 2011-04-11
  • 1970-01-01
  • 1970-01-01
  • 2021-01-29
  • 2015-11-21
  • 2019-03-30
  • 1970-01-01
相关资源
最近更新 更多