为什么 Eclipse 在大纲视图中显示不完整的 Scala 类?

Why does Eclipse show incomplete Scala classes in the Outline view?

上下文:带有导入库(如 akka-http)的 Scala 项目。

IDE: Eclipse (火星) + Scala-IDE 4.3

OS: Windows

我已经配置 sbt 下载与依赖项目相关的源代码,所以我可以 view/inspect 库更完整。

当我打开 akka.http.scaladsl.server.Directive 时,我在大纲视图中只看到 class 的前几个成员。我可以在代码中看到大纲中未显示的其他成员。

为什么我看不到完整的大纲?

简答

右键项目打开Properties->Resource->Text file encoding,设置为UTF-8.

这也可以为工作区属性设置;我不清楚更改工作区属性是否会自动设置现有项目,我猜不会。

为什么?

诚然是猜测,但是...

问题似乎与 Scala IDE 4.3(对于 Eclipse)、Windows 的组合以及关于源文件和文本编码的假设有关:

  • Eclipse Scala-IDE 4.3 有一个新的大纲视图,它似乎通过遵循源代码来更好地呈现 Scala classes。当它不理解文本编码时,它就无法正确地做到这一点。
  • 在 Eclipse 中,工作区的默认文本文件编码是“继承自容器”。我假定现有项目从工作区继承该设置。
  • Windows 文本文件编码(前面提到的容器)是 ISO-8859-1,或者可能是其他...但不是 UTF-8。
  • 在我的问题大纲视图中,结果显示 class 的最后一个成员包含一个 unicode '⇒'(在语法上等同于 Scala 中的 '=>')。
  • 寂静的繁荣