enso-org / enso

Hybrid visual and textual functional programming.
https://enso.org
Apache License 2.0
7.31k stars 317 forks source link

New project navigation control #10390

Open AdRiley opened 5 days ago

AdRiley commented 5 days ago

Replace this control

image

With a drop down that shows currently selected method.

Notes:

farmaazon commented 5 days ago

What are the options in the drop-down? It's like breadcrumbs laid out vertically?

somebody1234 commented 5 days ago

i assume it would just be a list of all methods in the same scope as the breadcrumb that was clicked on. idk whether it makes sense to remove breadcrumbs though

AdRiley commented 5 days ago

Options are:

main collapsed 1 collapsed 2 etc...

Is it possible to do any deeper nesting today?

farmaazon commented 4 days ago

Options are:

main collapsed 1 collapsed 2 etc...

Is it possible to do any deeper nesting today?

But, assuming we're in the main function, do we still want to display drop-down of all collapsed functions? The problem is, that to enter a collapsed function, we need to know the context. Consider the following code:

from Standard.Library import All_What_Is_Needed

collapsed a =
     node = a + 4 # with visualization opened
     node

main =
    node1 = collapsed 15
    node2 = collapsed 18

While in main function, if user would pick just collapsed from drop-down, we cannot say which call they have in mind - and these calls will produce different visualizations!

What we could do, is display drop-down listing not methods, but all enterable, so the drop-down would consist of options main, collapsed 15, collapsed 18. But then, if we would at some point allow entering functions in other modules (or even other libraries), shall we list all of those or only local? If only local, how user would navigate back if entered function from different module/library?