Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unity project structure aware namespace recommendations #286

Open
SamPruden opened this issue Jun 30, 2023 · 0 comments
Open

Unity project structure aware namespace recommendations #286

SamPruden opened this issue Jun 30, 2023 · 0 comments
Labels
enhancement New feature or request

Comments

@SamPruden
Copy link

Problem statement

Unity's project structure plays badly with the standard C# practice of making your namespace match your directory. The standard tools try to prepend Assets, with similar issues during package development.

Proposed solution

There should be an analyzer that's aware of Unity's standard layouts and suggests (and offers fixes for) appropriate automatic namespaces. It should work in the Assets directory, as well as in the Packages directory.


I've been trying to implement something like this myself, but I'm running into some difficulties. The usual way to get the base directory which namespaces should be relative to would be this:

context.Options.AnalyzerConfigOptionsProvider.GlobalOptions.TryGetValue("build_property.ProjectDir", out var projectDir);

This isn't set in Unity, and I can't find a particularly neat way of finding it. I can resort to techniques that walk the filesystem from the file's location looking for files that look like Unity manifests, but that's neither robust nor performant. If I could get some tips on non hacky ways to get appropriate base paths for all Unity project types, I could probably submit a PR for this.

@sailro sailro added the enhancement New feature or request label Aug 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants