Analyze Dependencies is "File-centric", not "Class-centric"

Unlike Java, Scala allows and in fact encourages the co-location of many class (& trait and object) definitions in the same file. For example, sealed case class hierarchies and companion objects to classes. Essentially, the arrangement of Scala classes in physical files is near-orthogonal to the langauge semantics.

Unfortunately, the generally excellent Analyze Dependencies tool, which Scala inherits from Java, works on a File-centric level of granularity. It provides no information about dependencies between Scala classes in the same file. Simply moving classes into a separate file causes new dependencies to appear in its analysis. This runs counter to the scala paradigm, and reduces the usefulness of the tool for users like myself who often share classes within a file.

This is a pity because in many other ways the Scala Dependecy Analysis is extremely good, and noticeably better than the Eclipse-based ScalaIDE. I have found several examples where the Eclipse "Find References" tool misses dependencies that Intellij correct identifies on the same codebase.

1 comment
Comment actions Permalink

We are open for any suggestions. Please use our issue tracker http://youtrack.jetbrains.com/issues/SCL to provide examples what we can improve.

Best regards,
Alexander Podkhalyuzin.

0

Please sign in to leave a comment.