Suggestion for improving Visual Assist/Resharper in UE4

The size of the UE4 codebase causes some problems for Intellisense and plugins like VAX and R++. Mostly it’s up to the implementers of those addons to provide enhanced support for UE4, but I think there is one thing Epic could do which would make a big difference for anyone using these kind of tools.

Currently, a UE4.vcxproj is generated within the intermediate folder of each UE4 project. This means the bulk of the processing of engine source files by the above programs, which can take a while and needs to be done on every engine update at least, is done again for each UE4 project. As a contracter/plugin developer, I have lots of UE4 projects in active development, so this time really adds up.

From what I can see, the generated engine VC project files are identical between UE4 projects, with two exceptions:

  1. Relative path to engine files.
  2. Potentially some discrepancies in the preprocessor definitions relating to _API defines for plugin modules.

It seems to me that it shouldn’t be too hard to share a single .vcxproj for a given engine installation, between all UE4 projects associated with that installation. This could live in the engine intermediate directory and be referenced by the per-project generated VC solution files. I’m not 100% sure on point 2 above, but I’d think the macros for all plugins in the engine could be added here, without worrying about whether or not they are enabled in individual projects. After all these settings are not used for actually building anyway.

I’d be interested if this is feasible, and if so whether it’s something Epic would be willing to address, or otherwise accept a PR for.

Actually, Visual Assist now does this.

Visual Assist will only parse the shared UE4 engine code one time, and share the database across your UE4 game solutions.

Note that this only works if the UE4 engine files are located in the program files directory. If you install the UE4 engine files to another location (such as the GitHub distribution) you will have to parse the UE4 engine code for each game solution.

They’ll still have to parse it incase you’ve made modifications to the engine source. Might be a quicker way around it but they still have to parse it at the end of the day.