Как настроить IntelliJ для использования коротких имен пакетов в "Оптимизации импорта" для кодовой базы Scala?

В проекте scala, где мы используем версию сообщества IntelliJ, мы хотим использовать несколько пакетов для каждого файла, чтобы мы могли ссылаться на них с более коротким синтаксисом:

package com.dreamlines.dragonfly
package api
package domain
package harbours

import common.entities.EsHarbour
import common.utils.date.DLDateTime

Тем не менее, IntellJ хочет применить полное имя пакета и, следовательно, при оптимизации импорта изменяет код на:

import com.dreamlines.dragonfly.common.entities.EsHarbour
import com.dreamlines.dragonfly.common.utils.date.DLDateTime

Как мне настроить поведение оптимизации импорта?

Должно

  • по крайней мере, сохранить сокращенный импорт или
  • в лучшем случае укорачивайте более длинные автоматически

Я хочу сохранить другое поведение оптимизации импорта без изменений, например, удаление неиспользуемых операций импорта, добавление отсутствующих операций импорта, сортировку операций импорта. Поэтому я не считаю, что использование оптимизации импорта не является допустимым вариантом.


Кроме того, мы используем scalafmt форматировщик, поэтому он может относиться к нашему .scalafmt.conf это выглядит так для этого проекта:

version = 2.0.0
style = default
maxColumn = 120
continuationIndent.callSite = 2
continuationIndent.defnSite = 2
align.openParenDefnSite = false
align.openParenCallSite = false
danglingParentheses = true
indentOperator = spray
project.excludeFilters = [".*\\.sbt"]
rewrite.rules = [RedundantBraces, RedundantParens, prefercurlyfors]
unindentTopLevelOperators = true
importSelectors = singleLine
spaces.afterKeywordBeforeParen = true
lineEndings = unix
newlines.penalizeSingleSelectMultiArgList = false
newlines.alwaysBeforeElseAfterCurlyIf = false
binPack.literalArgumentLists = false
runner.optimizer.forceConfigStyleMinArgCount = 1

1 ответ

Решение

Кажется, что в IntelliJ есть опция стиля кода, которая заставляет полностью определенные имена пакетов. Вы можете отключить это и посмотреть, поможет ли это:

Другие вопросы по тегам