自动将通配符导入重构为 IntelliJ 中的显式导入(用于 Scala/Java)
Posted
技术标签:
【中文标题】自动将通配符导入重构为 IntelliJ 中的显式导入(用于 Scala/Java)【英文标题】:Automatically refactor wildcard imports into explicit imports in IntelliJ (for Scala/Java) 【发布时间】:2017-08-05 01:03:45 【问题描述】:考虑下面的代码。
是否可以让 InteliJ 自动将每个通配符导入重构为显式导入(无论在作用域中使用什么)?
比如import scalatags.JsDom.all._
变成import scalatags.JsDom.all.ol,li,div
?
我的搜索表明这是不可能的,但也许我错了?
This 是一个相关但不同的问题。
package app.client
import app.client.components.RootReactComp
import app.client.pages.spatutorial.components.GlobalStyles
import japgolly.scalajs.react.ReactDOM
import org.scalajs.dom
import org.scalajs.dom.raw.Element
import scala.scalajs.js
import scala.scalajs.js.annotation.JSExport
import scalacss.Defaults._
import scalatags.JsDom.all._
import scalatags.JsDom.implicits._
import scalatags.JsDom.svgAttrs.fill, height, points, stroke, width,strokeWidth
import scalatags.JsDom.svgTags._
@JSExport("Main")
object Main extends js.JSApp
@JSExport
def main(): Unit =
// log.warn("Application starting")
// // send log messages also to the server
// log.enableServerLogging("/logging")
// log.info("This message goes to server as well")
// create stylesheet
GlobalStyles.addToDocument()
// tell React to render the router in the document body
//ReactDOM.render(router(), dom.document.getElementById("root"))
ReactDOM.render(RootReactComp.themedView(), dom.document.getElementById("joco"))
val el: Element =dom.document.getElementById("svg-example")
val l= div( ol(
li("Ordered List Item 1"),
li("Ordered List Item 2"),
li("Ordered List Item 3")
)).render
val s= svg(height := "800", width := "500")(
polyline(
points := "20,20 40,25 60,40 80,120 120,140 200,180",
fill := "none",
stroke := "black",
strokeWidth := "3"
)
)
el.appendChild(l);
【问题讨论】:
【参考方案1】:打开对话框
Preferences > Editor > Code Style > Scala
选择标签Imports
在“Class count to use import with _”字段中,输入一个高得离谱的数字,例如5000。
从现在开始,“优化导入”命令会将通配符解析为单个导入。
您可能还想激活
Editor > General > Auto Import > Scala > Optimize Imports on the Fly
【讨论】:
谢谢,这是我尝试的第一件事,但没有成功。对你起作用吗 ?我在Mac上,也许有一些不同。版本 2016.3.4,结果:snag.gy/Ca8jXK.jpg,设置:snag.gy/WSNolB.jpg @jhegedus - 起初它对我不起作用 - 直到我意识到在某些时候重新安装 intelliJ 已将“使用带 * 导入的类计数”设置重新设置为默认为 5。将其更改为“9999”然后使 ctrl-alt-O 工作。【参考方案2】:这是对我有用的解决方案 - 但不是最理想的:
-
优化导入
转到任何导入 .* 并按 alt-enter(将出现一个菜单问题,用单个导入替换 * 导入)然后再次按 enter。
【讨论】:
以上是关于自动将通配符导入重构为 IntelliJ 中的显式导入(用于 Scala/Java)的主要内容,如果未能解决你的问题,请参考以下文章