ysa*_*hno 7 intellij-idea kotlin
当我选择代码时?优化导入或代码?重新格式化代码,IntelliJ确实优化和排序导入,但即使我使用 Kotlin 代码样式的代码样式设置,导入也没有按字典顺序排序(至少不是完全排序)。例如,这是产生的输出:
import com.fasterxml.jackson.databind.ObjectMapper
import io.dropwizard.jackson.Jackson
import io.kotlintest.assertSoftly
import io.kotlintest.matchers.types.shouldBeNull
import io.kotlintest.shouldBe
import io.kotlintest.specs.ShouldSpec
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import org.intellij.lang.annotations.Language
import java.time.Instant // This should not be at the bottom!!!
Run Code Online (Sandbox Code Playgroud)
虽然这是ktlint所期望的:
import com.fasterxml.jackson.databind.ObjectMapper
import io.dropwizard.jackson.Jackson
import io.kotlintest.assertSoftly
import io.kotlintest.matchers.types.shouldBeNull
import io.kotlintest.shouldBe
import io.kotlintest.specs.ShouldSpec
import java.time.Instant // should be here instead
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import org.intellij.lang.annotations.Language
Run Code Online (Sandbox Code Playgroud)
换句话说,java.*无论怎样,格式化程序似乎总是将来自包的导入放在底部。有没有办法使它符合 ktlint 的期望(以及实际上构成字典顺序的内容)?我缺少任何隐藏选项或什么?
我正在使用 IntelliJ IDEA 2019.3.1(终极版)和 Kotlin 插件版本 1.3.61-release-IJ2019.3-1。ktlint 的版本是 0.36.0
Hol*_*r L 12
您可以更改 IntelliJ 对 Kotlin 的导入顺序以满足ktlint:
您可以通过删除列表中以外的所有内容来Settings > Editor > Code Style > Kotlin进行更改:Import Layoutimport all other imports
Ale*_*kov 11
这是 Kotlin IDEA 插件中的错误/缺失功能:https : //youtrack.jetbrains.com/issue/KT-10974。请投票。