You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the problem or limitation you are having in your project
With the introduction of the new .uid files, every .cs and .gd file now has a dependent file that must be moved, deleted, etc alongside it. This is handled well enough inside Godot, but projects using C# will often use an external IDE like Rider or Visual Studio for moving files around and now need to manually bookkeep the uid files.
Describe the feature / enhancement and how it helps to overcome the problem or limitation
For .net projects, the .csproj format allows for defining dependent files, and major IDEs use this for showing files as nested, as well as bringing them along on copy/move/delete operations.
We can leverage this by including a new section in the auto-generated .csproj file, that will make all .uid and .import files dependent on their main file.
For example, it makes files in Rider look like this:
When moving a file, it will move the uid file as well:
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
<Project>
<ItemGroup>
<!-- Ensure .uid and .import files are visible in the solution --><!-- <None> is used for non-compilable, non-copyable files that are not part of the build output -->
<NoneInclude="**/*.import" />
<NoneInclude="**/*.uid" />
<!-- This is just an example, all files that we want visible should be included like this. --><!-- For an official versio, I think all godot-native file extensions as well as all extensions recognized by an importer. -->
<NoneInclude="**/*.tscn" />
<NoneInclude="**/*.png" />
<!-- Set nesting behavior -->
<NoneUpdate="**/*.import">
<DependentUpon>$([System.Text.RegularExpressions.Regex]::Replace('%(Filename)%(Extension)', '\.import$', ''))</DependentUpon>
</None>
<NoneUpdate="**/*.uid">
<DependentUpon>$([System.Text.RegularExpressions.Regex]::Replace('%(Filename)%(Extension)', '\.uid$', ''))</DependentUpon>
</None>
</ItemGroup>
</Project>
If this enhancement will not be used often, can it be worked around with a few lines of script?
It can be done, but it's kind of an advanced feature that not many users would be aware of.
Is there a reason why this should be core and not an add-on in the asset library?
I could be distributed via NuGet, but again the main problem is discoverability.
The text was updated successfully, but these errors were encountered:
Note that in the future, I expect Rider to add more tailored support for Godot files, like it does with Unity's meta files. But this should still give users a good baseline that should work across major .NET tools.
I am in charge of Rider plugin for Godot. Rider 25.1 eap already has improvement for uid. JetBrains/godot-support@9c4e21d
However I didn't know about import files.
Describe the project you are working on
A game using C# and Rider
Describe the problem or limitation you are having in your project
With the introduction of the new .uid files, every .cs and .gd file now has a dependent file that must be moved, deleted, etc alongside it. This is handled well enough inside Godot, but projects using C# will often use an external IDE like Rider or Visual Studio for moving files around and now need to manually bookkeep the uid files.
Describe the feature / enhancement and how it helps to overcome the problem or limitation
For .net projects, the .csproj format allows for defining dependent files, and major IDEs use this for showing files as nested, as well as bringing them along on copy/move/delete operations.
We can leverage this by including a new section in the auto-generated .csproj file, that will make all .uid and .import files dependent on their main file.
For example, it makes files in Rider look like this:
When moving a file, it will move the uid file as well:
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
If this enhancement will not be used often, can it be worked around with a few lines of script?
It can be done, but it's kind of an advanced feature that not many users would be aware of.
Is there a reason why this should be core and not an add-on in the asset library?
I could be distributed via NuGet, but again the main problem is discoverability.
The text was updated successfully, but these errors were encountered: