Dependencies analyzer can be called from main menu or from popup menu on a set of modules/models::
The lower panel shows usages of items selected in the right panel in the left tree scope selection
Module Dependencies Tool
With this tool it is possible to overview all the module (or set of modules) dependencies and used languages, detect cyclic dependencies as well as see in details paths that lead to the given dependency. The tool can be invoked from the project pane when one or more modules selected there.
Module Dependency Tool shows in the left panel all transitive dependencies of module and optionally all used (directly or indirectly) languages. It is possible to expand any dependency node and get all dependencies of the expanded node as children. These will be again transitive dependency but for the expanded node.
Select one of dependency node or set of nodes in the left panel. Right panel shows paths to the each selected module from its "parent" module. You can see brief explanation of each relation between modules in the right tree. It can be depends on, uses language, exports runtime, uses devkit, etc. For convinience the name of the target dependent module is shown in bold.
There are two type of dependency paths: Dependency and Used Langauge. When you select module in the Used Language folder in the left tree right tree shows only dependency paths making "used language" relation for the given module. To show "ordinar" dependencies on language as a module you should choose it out of Used Languages folder (like jetbrains.mps.lang.core in the picture below). It is possible to select several nodes (e.g. the same language dependency inside and outside Used Language folder), then you get union of paths.
If you want to track not only "visible" but also runtime dependencies you should check "runtime" option in toolbar. Only runtime dependencies are marked with "(runtime)" comment in the left tree.
By default dependency paths are shown in "from the shortest to longest" order. But there are still path that are not shown: paths with the same tail part as one of the already shown path. It is still possible to see all such paths in the right tree with the "Show all paths" option. Only starting (distinct) part of path is shown, symbols "... -->" mean that there is continueation of the path already shown in the tree; you can follow path by double clicking its last element.
Modules participating in dependency cycles are shown in red color in the left tree. It is possible to see paths in cycle by selecting module dependency equal to parent or for convinience by using popup menu:
For some type of dependencies it is possible to show usages or safe delete with popup menu. For "depends on" (dependency without re-export) Dependencies Analyzer will be invoked on Show Usages.