禁用Intellij在scala中自动生成左括号

时间:2017-04-02 21:17:47

标签: scala intellij-idea

通常"乐于助人" Intellij在检测到方法时添加左括号的习惯反而是一个小的障碍/刺激:我必须停止输入,备份,删除角色然后继续输入。

有没有解决此问题的设置?

请注意,对于同一问题,有一个关于{{1}}的相关问题 - 对于Java来说,它似乎仍未解决:

How do I turn off auto-parenthesis generation in Intellij IDEA?

特别是这条评论适用于我:

  

所以,这个选项已经为我关闭了。我只是测试并找到了   这只发生在Actionscript文件中。只在Java中   给了我(字符,它让我的字体在它上面

那里的图像也适用于我:

enter image description here

1 个答案:

答案 0 :(得分:10)

我发现了一种解决方法,可以防止IntelliJ添加括号,但这不是设置,并且涉及代码本身,因此实际上可能无法完全消除您的烦恼。

如果写出一个对象,然后在该对象上写一个方法调用,则IntelliJ将创建括号并将光标插入到它们之间。下面是一个示例,|表示光标。

//Start with:
objectA method|

//Press `RETURN` and it becomes:
objectA method(|)

但是,如果IntelliJ在编写方法调用时检测到参数已经存在,则应省略括号。

//Start with:
objectA| objectB

//Write the method call:
objectA method| objectB

//Press `RETURN` and it becomes:
objectA method |objectB

问题在于人们通常在方法调用之后写参数。尽管您可以使用占位符来诱骗IntelliJ进行思考,但是仍然可以正常书写。请注意,您可以将占位符写在方法调用的同一行上,也可以将其写在紧靠其下的行(之间仅包含空格),以便IntelliJ将其检测为参数。

//Start with:
objectA|
"placeholder"

//Write the method call:
objectA method|
"placeholder"

//Press `RETURN` and it becomes
objectA method |
"placeholder"

//Continue to write the argument
objectA method objectB|
"placeholder"

仅当前缀表示法有效时(例如method的类中定义了objectA时,才会出现上述行为。但是,为了让IntelliJ可以将占位符参数指定为方法的参数,似乎并不一定要将其指定为方法的参数。