godotengine / godot-proposals

Godot Improvement Proposals (GIPs)
MIT License
1.1k stars 69 forks source link

Replace left side column in script editor by moving the functionality #5314

Open furroy opened 1 year ago

furroy commented 1 year ago

Describe the project you are working on

Applies to every Godot project

Describe the problem or limitation you are having in your project

The left column currently displays the list of loaded scripts and a list of methods for quick navigation.

However, after decades of using IDEs where the loaded scripts appear across the top of a script panel, I'm afraid I will never get used to this weird way of listing them vertically on the side. I already have them listed vertically in the FileSystem panel right next door if I want them. I found this very confusing when new to Godot, I was constantly clicking the tabs along the top which changed the scene not the scripts even though the editor is in "Scripts" mode and not "Scenes" mode.

Also, I prefer writing lots of smaller scripts and using composition over giant monolith scripts, so I have never once used the list of methods to jump to a function.

I would prefer to have this column go away entirely and use that precious screen space for my code instead.

I realize that this request maybe highly subjective, but I do think there is room for some usability improvement here, so at least maybe it gets someone else thinking about it.

Describe the feature / enhancement and how it helps to overcome the problem or limitation

When in "Scripts" mode the line of scenes across the top is replaced by a line of open scripts instead. When switching to "Scenes" the line reverts back to how it is now.

I've used a number of plugins that also let you open files/resources, so an editor API could be added to let them choose what tabs to show as well.

Bonus: It becomes far easier to close a bunch of open script tabs along the top than it is to close out the scripts from this left panel.

The infrequently used (at least for me) list of methods could become a sibling tab with Inspector/Node

Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams

godot_ui

If this enhancement will not be used often, can it be worked around with a few lines of script?

No, this is an editor change.

Is there a reason why this should be core and not an add-on in the asset library?

Yes, this is an editor change.

fire-forge commented 1 year ago

If a script tab bar is added, the current list mode needs to be kept as a setting. I usually have way too many scripts to fit horizontally in a tab bar.

Also, I prefer writing lots of smaller scripts and using composition over giant monolith scripts, so I have never once used the list of methods to jump to a function.

There's an editor setting to hide the methods list.

Bonus: It becomes far easier to close a bunch of open script tabs along the top than it is to close out the scripts from this left panel.

How is it easier to close scripts in a tab bar than a list?

Mickeon commented 1 year ago

Related to https://github.com/godotengine/godot-proposals/issues/4081 (see also discussion https://github.com/godotengine/godot-proposals/discussions/4248) and https://github.com/godotengine/godot-proposals/issues/4457

YuriSizov commented 1 year ago

Godot 2 used to have two tabbars, one for scenes and one for scripts, and it was a mess. Which is why the horizontal tabbar was replaced with a vertical list (but internally it still works like tabs, basically).

If we were to get rid of the list, it should be what Mickeon suggests, and not a second bar. Also hiding the scenes conditionally is not a good idea, as scenes define a lot of editor context and you still need them when working on scripts. Like, all the time.

A more Godot-like way to harmonize the space would be to make the script list a dock, as proposed in https://github.com/godotengine/godot-proposals/issues/512 by yours truly. I've used it in a simple form as a plugin, and it was quite nice for me, especially on smaller screens.

The script navigation, though, cannot be moved to a dock, it just doesn't make sense as it is a contextual panel for the opened documentation page. But I would like to see it better integrated in the help view, it's somewhere on my agenda to improve at some point.

ror3d commented 1 year ago

If a script tab bar is added, the current list mode needs to be kept as a setting. I usually have way too many scripts to fit horizontally in a tab bar.

I would suggest that if the script tabs were merged with the scene tabs, then the tab bar could be implemented in a similar way as Visual Studio (not Code) where the tabs can be configure to be either on the top or vertically on either side of the editor.