fdefelici / vs-funreal

Visual Studio extension to smooth the workflow of Unreal Engine C++ developers
MIT License
27 stars 7 forks source link

Ensure FUnreal is active only on Unreal Project #32

Closed fdefelici closed 3 months ago

fdefelici commented 3 months ago

Rules to contraints a VSIX package seems to be missing the feature to link a package activation at the existance of a specific file (.uproject) https://learn.microsoft.com/en-us/visualstudio/extensibility/how-to-use-rule-based-ui-context-for-visual-studio-extensions?view=vs-2022

Currently, during package initialization, FUnreal internal feature configuration are stopped when detection that a solution is not related to Unreal. Anyhow, adding some new features to FUnreal, using Package Attributes (like options page), it is no more possible to avoid that this feature are loaded.

The only way seems to have an "entry point" Package that does it's own business logic to undestand if current solution is Unreal related or not. If yes, a second Package "full featured" can be loaded.

fdefelici commented 3 months ago

Not possible implement "EntryPointPackage loads FullFeaturedPackage", because of VSCT file that is always loaded by VS due to [ProvideMenuResource("Menus.ctmenu", 1)] attribute. So Extension menu will always be visile.

As a workaround, Extension menu as been made of DynamicVisible buttons (same strategy used for the Context Menu). So they become visible only when a VS Solution for Unreal is detected.