8

在我们使用 IntelliJ 社区版的 scala 项目中,我们希望每个文件使用多个包,以便我们可以用更短的语法引用它们:

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
4

1 回答 1

3

IntelliJ 中似乎有一个代码样式选项可以强制使用完全限定的包名称。您可以禁用它,看看是否有帮助:在此处输入图像描述

于 2019-09-19T16:05:21.610 回答