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

Discussion: IDEs and large module sizes #1500

Closed
rasta-mouse opened this issue Mar 16, 2023 · 13 comments
Closed

Discussion: IDEs and large module sizes #1500

rasta-mouse opened this issue Mar 16, 2023 · 13 comments
Assignees
Labels
namespaces Feedback on namespace names or organization

Comments

@rasta-mouse
Copy link

I'm raising this more as a discussion point, rather than a bug. There are several namespaces within the metadata that are so large that IDEs struggle to handle intellisense and code analysis for them. Although workarounds are possible within the IDEs, I wanted to open a discussion around the possibility of partitioning some of the larger ones, as suggested by @kennykerr.

Some related issues for reference:

@mikebattista mikebattista self-assigned this Mar 16, 2023
@mikebattista mikebattista added the namespaces Feedback on namespace names or organization label Mar 16, 2023
@mikebattista
Copy link
Contributor

Which namespaces are problematic?

@riverar
Copy link
Collaborator

riverar commented Mar 16, 2023

Or is IntelliJ's default of ~2.5MB just too low? Seems the community runs into this a lot https://stackoverflow.com/search?q=idea.max.intellisense.filesize

@kennykerr
Copy link
Contributor

There are only a small handful of modules that end up over 2.5MB. These are the worst offenders:

  • Windows.Win32.Media.DirectShow
  • Windows.Win32.Media.MediaFoundation
  • Windows.Win32.System.Diagnostics.Debug
  • Windows.Win32.UI.Shell

@rasta-mouse
Copy link
Author

@riverar Yeah, perhaps. I don't know if the same issue extends to other IDEs or if it's just JetBrains. As I said, I just raised it as a discussion. If the general consensus is that it's not worth it or too much work to address at this level, then I'm totally cool with that.

@mikebattista
Copy link
Contributor

We could move the MsTv partition to Windows.Win32.Media.DirectShow.Tv.

@kennykerr
Copy link
Contributor

Windows.Win32.System.Diagnostics.Debug is currently the most problematic as it comes up quite often and is just huge. The few headers included in that namespace are all very big. Could we experiment with putting each into its own sub namespace?

@mikebattista
Copy link
Contributor

I could see moving the 2 debugger extension headers to a .Extensions subnamespace. I'll start with that for the next release.

@kennykerr
Copy link
Contributor

That namespace also contains IActiveScript and friends. Those aren't even Windows APIs.

https://learn.microsoft.com/en-us/dotnet/api/microsoft.visualstudio.debugger.interop?view=visualstudiosdk-2019

Can we move those out of Debug as well?

@mikebattista
Copy link
Contributor

There's another partition in Debug that I missed earlier.

https://github.com/microsoft/win32metadata/blob/main/generation/WinSDK/Partitions/Debug/settings.rsp

I think the APIs you're talking about are coming from all the activ* headers. Are you saying we should just exclude those?

@mikebattista
Copy link
Contributor

I don't know if the VS APIs you linked are the same, these seem to be related to Windows Script Host. In any case, I could move all those activ* headers to an .ActiveScript subnamespace.

@kennykerr
Copy link
Contributor

Sounds good.

mikebattista added a commit that referenced this issue Mar 23, 2023
@mikebattista
Copy link
Contributor

Debug and DirectShow have been refactored. The others will require some domain expertise to tease apart if at all, so I will leave them alone for now.

Closing for now as it sounds like the most problematic issues have been addressed. Feel free to reactivate if the changes aren't enough or you have more concrete feedback on the other namespaces.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
namespaces Feedback on namespace names or organization
Projects
None yet
Development

No branches or pull requests

4 participants