是否有一个工具可以解释Scala程序中每个符号的含义以及如何解析?

是否有一个工具可以解释Scala程序中每个符号的含义以及如何解析?,scala,intellij-idea,tooltip,Scala,Intellij Idea,Tooltip,我试图学习Scala,但对其简洁的语法和难以搜索的运算符、方法和隐式语法感到困惑。其他简洁语言有以下工具或采用以下程序: object SampleMain { val sample: Parser[Sample] = ^( strOption(long("hello"), metavar("TARGET"), help("Target for the greeting")), switch(lon

我试图学习Scala,但对其简洁的语法和难以搜索的运算符、方法和隐式语法感到困惑。其他简洁语言有以下工具或采用以下程序:

object SampleMain {

  val sample: Parser[Sample] =
    ^(
      strOption(long("hello"), metavar("TARGET"), help("Target for the greeting")),
      switch(long("quiet"), help("Whether to be quiet"))
    )(Sample.apply)

  def greet(s: Sample): Unit = s match {
    case Sample(h, false) => println("Hello, " ++ h)
    case _ =>
  }

  def main(args: Array[String]) {
    val opts = info(sample <*> helper,
      progDesc("Print a greeting for TARGET"),
      header("hello - a test for scala-optparse-applicative"))
    greet(execParser(args, "SampleMain", opts))
  }

}
objectsamplemain{
val示例:解析器[sample]=
^(
strOption(long(“hello”)、metavar(“TARGET”)、help(“问候语的目标”),
开关(长(“安静”)、帮助(“是否安静”))
)(样本。申请)
def问候(s:样本):单位=s匹配{
案例示例(h,false)=>println(“你好,++h”)
案例=>
}
def main(参数:数组[字符串]){
val opts=info(示例帮助程序,
progDesc(“为目标打印问候语”),
标题(“hello-scala OptPass应用程序的测试”))
问候(execParser(args,“SampleMain”,opts))
}
}

我希望能够将鼠标悬停在
^
或其他符号上,并让工具显示它们的文档。

这些不是标准的Scala符号,因此您需要查看提供它们的库的文档。它将
import
ed放在文件顶部的某个位置


如果在按住ALT键的情况下将鼠标悬停在符号上方,IntelliJ IDEA将为您提供信息,如果按住ALT键并单击该符号,IntelliJ IDEA将带您进入库。代码中应该有一些基本的文档。

好吧,任何好的编辑器都会向您展示文档,因为所有这些都只是简单的方法,没有什么太神奇的东西。-此外,您可能应该在Scaladoc中搜索您正在使用的任何库中的这些符号。例如,在通配符导入的某个地方(例如
包对象
),有一个方法可能看起来像
def^[T](o1:SomeSuperType,o2:SomeSuperType)(f:(SomeSuperType,SomeSuperType)=>T):解析器[Sample]
。严格地说,Scala的语法非常小(从语法上讲,Dotty比Python或Golang简单;Scala 2没有那么复杂)。