Когда я выбираю «Код» → «Оптимизировать импорт» или «Код» → «Переформатировать код», IntelliJ оптимизирует и сортирует импорт, но даже если я использую настройки стиля кода из Kotlin стиля кода, импорт не выполняется. отсортировано в лексикографическом порядке c (по крайней мере, не полностью). Например, это вывод:
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!!!
, в то время как 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
Другими словами, кажется, что форматировщик всегда помещает импорт из пакета java.*
внизу, несмотря ни на что. Есть ли способ привести его в соответствие с тем, что ожидает ktlint (и что на самом деле составило бы лексикографический c порядок)? Любая скрытая опция, которую я пропускаю или что-то в этом роде?
Я использую IntelliJ IDEA 2019.3.1 (Ultimate Edition) с плагином Kotlin версии 1.3.61-release-IJ2019.3-1. Версия ktlint - 0.36.0