Is your feature request related to a problem? Please describe.
The Metals workspace tree view lets a user browse the code in their project and its dependent libraries. However, the data under the library node can quickly become so large that it reduces the usefulness, relevance and usability of the view. Example:
This request suggests ways that the user could filter the workspace view to improve its usability and value.
Describe the solution you'd like
This is a list of multiple discrete improvements to the workspace view. Although all would be useful, they are ordered in approximately descending order of value from most useful first.
[ ] Ability to filter out of the libraries view dependencies of SBT itself, from dependencies of my project code. Usually, I care about my project, and deps of SBT are less relevant.
[ ] Ability to filter out of view any "evicted" library versions, by which I mean libraries where another version has been selected instead.
[ ] Ability to filter or narrow view to the library dependencies of a specific SBT subproject. Multi-project builds are common and good practice. The library deps of different subprojects can differ significantly (real life example I was working on today was kafkaWorker vs webServer subprojects). It would be useful to view just the library for a specific module.
[ ] Ability to view (and select!) some key attributes of a library dependency in some panel or overlay, perhaps via right-clicking on it. The most useful attributes would be
What other libraries depend on it
What libraries it depends upon
The path to the library jar on disk, so it can be copied. While the path info is currently shown in a Hover, there seems no way to copy the path to the clipboard. When troubleshooting issues, we sometimes have need to inspect actual library files, be it for size, jar contents, or timestamps. Once path is in clipboard, can easily go to file in the shell.
Describe alternatives you've considered
The present view is still usable, and other methods like sbt dependencyList can provide data. This feature is about improving UX, especially when handling larger projects.
Is your feature request related to a problem? Please describe.
The Metals workspace tree view lets a user browse the code in their project and its dependent libraries. However, the data under the library node can quickly become so large that it reduces the usefulness, relevance and usability of the view. Example:
This request suggests ways that the user could filter the workspace view to improve its usability and value.
Describe the solution you'd like
This is a list of multiple discrete improvements to the workspace view. Although all would be useful, they are ordered in approximately descending order of value from most useful first.
[ ] Ability to filter out of the libraries view dependencies of SBT itself, from dependencies of my project code. Usually, I care about my project, and deps of SBT are less relevant.
[ ] Ability to filter out of view any "evicted" library versions, by which I mean libraries where another version has been selected instead.
[ ] Ability to filter or narrow view to the library dependencies of a specific SBT subproject. Multi-project builds are common and good practice. The library deps of different subprojects can differ significantly (real life example I was working on today was
kafkaWorker
vswebServer
subprojects). It would be useful to view just the library for a specific module.[ ] Ability to view (and select!) some key attributes of a library dependency in some panel or overlay, perhaps via right-clicking on it. The most useful attributes would be
Describe alternatives you've considered
The present view is still usable, and other methods like
sbt dependencyList
can provide data. This feature is about improving UX, especially when handling larger projects.Additional contex
No response
Search terms
dependencies libraries workspace navigation browse