java - intellij 代码格式在方法参数返回后无法正确缩进(kotlin 和 Java)
问题描述
在与上述未正确对齐的方法参数调用后返回时,我们在代码格式化的工作方式上遇到了一些问题)
。目前在 AndroidStudio 3.2.1 中,但据我所知,它一直在这样做。这个问题发生在 Kotlin 和 Java 中。
我们不喜欢自动套用格式的功能。
fun behaviourExample() {
this.methodCall(
lambda1 = { /*something*/ },
lambda2 = { /*somethingElse*/ }
)
.map { "Line incorrectly indented" }
.map { "I'd like the lines to be correctly indented" }
}
fun methodCall(lambda1: () -> Unit, lambda2: () -> Unit): String {
return "otherThing"
}
我们想找到像这样更改自动套用格式的参数:map{}
与关闭正确对齐)
fun behaviourExample() {
this.methodCall(
lambda1 = { /*something*/ },
lambda2 = { /*somethingElse*/ }
)
.map { "Line correctly indented" }
.map { "I'd like the lines to be correctly indented" }
}
与此同时,我们正在做的是在 之前返回methodCall
,这不是很漂亮,但很有效。
fun behaviourExample() {
this
.methodCall(
lambda1 = { /*something*/ },
lambda2 = { /*somethingElse*/ }
)
.map { "Line correctly indented but I don't like to be forced to add methodCall() in a new line" }
.map { "I'd like the lines to be correctly indented" }
}
我们怀疑它应该在首选项 -> 代码样式 -> Kotlin 中的某个位置,但我们使用了一堆参数并没有找到它
上面是自动格式化如何表现的一个例子,但我们的问题是像这样的调用Single.zip()
,Observable.concat()
等等......缩进误导了你可以在链中的哪个位置。所以我们像这样使用它。
Single
.zip (
/* parameters */
)
.map { /* something */ }
代替
Single.zip (
/* parameters */
)
.map { /* something */ }
感谢您提供任何帮助或线索。
解决方案
您现在使用的格式实际上是根据编码约定应该如何格式化此类代码。如果方法调用的右括号换行,则它与方法调用的开头对齐。没有选项可以缩进 4 个空格。
推荐阅读
- google-sheets - 如何使饼图变得不区分大小写
- c# - 自动完成仅适用于输入的第一个字符
- java - 如何在不使用 .stopAndWait 方法的情况下在 Javafx 的警报中使用按钮?
- javascript - 按钮在 Google 地图上的 infoWindow 中不起作用
- python - 如何在 python 中并行化 for 循环?
- ios - 从类 NSObject 呈现一个视图控制器
- python - 同时运行 Tkinter 窗口和 Matplotlib 图
- dart - Dart 中的随机二叉树
- javascript - vue.js 箭头键绑定问题
- reactjs - React 允许某些 url 的服务器端渲染