godotengine / godot-proposals

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

Make the Create New Node favorites list committed to version control #10069

Open Morokiane opened 1 week ago

Morokiane commented 1 week ago

Describe the project you are working on

Any game

Describe the problem or limitation you are having in your project

Godot on different computer do not have a shared favorite list for adding nodes.

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

It would be nice to have a favorites node list of my favorites that is universal no matter which computer I am on. As of right now...if I open a project on a computer not setup for that project when I go to add nodes the favorite list is empty and I have to rebuild it.

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

The favorites list can be stored in the godot.project or in its own file in the .godot folder.

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

Probably?

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

I don't use the asset library and I should not have to go to the asset library and hope that it is maintained when it is such a simple feature.

Calinou commented 6 days ago

The downside of storing the node favorites list in project.godot is that it would create noise in version control diffs, as every team member changing the favorites list in one way or another would result in a project.godot modification. This can potentially lead to VCS merge conflicts as well – even if they're easy to resolve, they still cause friction.

I believe storing the node favorites list in the .godot/ folder is the current approach. This folder is not meant to be committed to version control, so you wouldn't find the favorites list on other devices unless you manually copied this folder.

KoBeWi commented 6 days ago

The favorites are stored in .godot/editor/favorites.Node. Godot does not manage the project's repository, it only provides a default .gitignore file and it's up to the user what they want to commit. So you can the favorites file as an exception in your ignore file.