Whole Tomato Software Forums
Whole Tomato Software Forums
Main Site | Profile | Register | Active Topics | Members | Search | FAQ
User name:
Password:
Save Password
Forgot your password?

 All Forums
 Visual Assist
 Technical Support
 Exclude files (Unreal Engine)
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic  

ML_Umberto_Carletti
Junior Member

10 Posts

Posted - Jan 31 2025 :  06:16:42 AM  Show Profile  Reply with Quote
Hi,
I have a very big Unreal solution with many plugins. Without filters the symbols count is about 1.850.000. I am trying to reduce the symbol count using the .vscode/settings.json. I have ~180 pattern entries in the settings.json (mostly folder paths like "**/Engine/Source/Programs/**"). What I am noticing is:

1. The "Find Symbols" window is showing a reduced symbols count, but still showing some symbols from excluded patterns.
It seems like it's still parsing all the symbols from .cs files from the excluded patterns (it matches **/Engine/Source/Programs/**/*.cs).
When I try access those excluded symbols from this window, the source file is opened with a warning: "The file is excluded by a rule defined by .vscode/settings.json..."

What i would expect is that the symbol should not be shown at all in the "Find Symbol" window, but i would still be able to access the file if needed from visual studio without the annoying warning showing up all the time.

2. The "Open File in Solution" window is showing a reduced number of files but became very slow to load. It looks like it's parsing the files with the settings.json every time the window is opened.
In this case I would expect that the window load faster for having less files included.
Also in my opinion the solution still has those files in it and maybe should still show them in the "Open File in Solution" window. The filters should work only to exclude symbols, helping reducing the symbol count.

I'm using
VA_X64 10.9.2530 2024.07.30
DevEnv.exe 17.12.35521.163
msenv.dll 17.0.35514.174

Thanks in advance

feline
Whole Tomato Software

United Kingdom
19147 Posts

Posted - Jan 31 2025 :  07:41:10 AM  Show Profile  Reply with Quote
This is a LOT larger than any of my Unreal Engine test solutions. I am going to have to look for a larger test solution.

Is changing the setting:

VA Options -> Game Development -> Index Unreal Engine plugins (requires restart) = None / Referenced / All

an option for you? Assuming that you don't need VA to parse all of the plugins, this should help. If many of the plugins aren't referenced then this should have quite the effect.

Is the bulk of the code inside Unreal Engine and the plugins, or is it inside your game project?

Assuming you have:

VA Options -> Coloring and Attributes -> Show system symbols in italics

turned On, is VA showing the UE symbols in italics?

If you look at:

VA Options -> C/C++ Directories

do you have a long list of Unreal Engine directories listed under the stable include directory list? I am wondering if VA is picking up your UE solution as a UE solution properly. But even if it is, we might simply be running into a solution size problem here.

zen is the art of being at one with the two'ness
Go to Top of Page

ML_Umberto_Carletti
Junior Member

10 Posts

Posted - Jan 31 2025 :  08:50:24 AM  Show Profile  Reply with Quote
Thank you for the quick reply.

> Index Unreal Engine plugins (requires restart) = None / Referenced / All

This is set to "Referenced". I need to reference the plugins because actively work with many of them. I just want to exclude some of those with settings.json. And it's working but not for the .cs files for some reason.

I have the whole engine within my project folder and i build it from source. Most of the files parsed are from the Engine. https://dev.epicgames.com/documentation/en-us/unreal-engine/building-unreal-engine-from-source this is the setup.

>turned On, is VA showing the UE symbols in italics?
No, engine symbols are not Italics.

In C/C++ Directories under "Project defined" I have many path from the engine local to my project ex. "H:\<myproject>\Engine\Source\Runtime\RHI\Public", "H:\<myproject>\Engine\Plugins\<mylibrary>\Public". I am doing my test using "custom" and leaving the path list empty.
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19147 Posts

Posted - Jan 31 2025 :  1:27:01 PM  Show Profile  Reply with Quote
Are you actually editing the engine, or just the plugins?

We have made some big improvements to the parsing speed in recent builds, which helped Unreal Engine solutions a lot, but your solution, as you are aware, is a lot larger, so those changes aren't helping as much.

Which version of UE are you building? I am assuming its version 5 or later, but that's an assumption. It looks like the best way to test / reproduce this here is to download and build the source code. I did this before, but it was with the version 4 source code.

I am seeing the same problem here with symbols in .cs files being parsed and listed in the Find Symbol dialog. That's really surprising, since I have just double checked, and symbols defined in .h files are being excluded correctly when the code files containing them are being filtered out with the settings file:

case=165478

zen is the art of being at one with the two'ness
Go to Top of Page

ML_Umberto_Carletti
Junior Member

10 Posts

Posted - Feb 03 2025 :  03:19:02 AM  Show Profile  Reply with Quote
Yes I'm also editing the engine. I'm using the latest engine version ue5.5.
With this setup it's like the engine is considered as game code, thus not shown in italics.

I would like to bring to your attention the slow down when opening the "Open file in solution". I think you can reproduce with a solution with many plugins and third party programs (many files and folders). the filtering through settings.json really hit the speed when showing all the files. I assume the file list is not cached, and the parsing through the settings.json is done every time the window gets opened. with many files in the sln and many filters that becomes problematic...

Lastly I'd like to take the opportunity to ask if there is any chance you will be adding UnrealHeaderTool runtime pre compilation to check unreal error before actually compiling. That would be very cool.

Thank you for all the support
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19147 Posts

Posted - Feb 07 2025 :  12:14:10 PM  Show Profile  Reply with Quote
I will set up a test case with the source code, thank you for confirming the version number.

A quick search on the Unreal Header Tool is getting me to this page:

https://dev.epicgames.com/documentation/en-us/unreal-engine/unreal-header-tool-for-unreal-engine

Which suggests it is possible to use:

IDE Tools menu -> External Tools...

to set up a tool command to run this compiler on the current header file. But I assume you are looking for something more automated. This is an interesting idea. I am just trying to work out how to describe the feature request.

You don't want to run this on all header files in the solution, that would be crazy. But how would we define the set of header files to check?

zen is the art of being at one with the two'ness
Go to Top of Page

ML_Umberto_Carletti
Junior Member

10 Posts

Posted - Feb 10 2025 :  04:25:25 AM  Show Profile  Reply with Quote
At the moment the UHT is run every time I hit compile.
Example:

MyFile.h

#inclue "myfile.generate.h"
#include "other-file.h"

when compiling I see this output:

Running Internal UnrealHeaderTool H:\myproj.uproject H:\myProjEditor.uhtmanifest -WarningsAsErrors
H:\MyFile.h(1): error : #include found after .generated.h file - the .generated.h file should always be the last #include in a header

I'd like the UHT to be run only on the current header opened.
What I would expect is that as soon as I open (or switch to) a .h file the UHT is run automatically on the file and underline any error. For the example case, I would expect that, as soon as I switch to MyFile.h, the line '#inclue "myfile.generate.h"' gets underlined in red, and when I hover my mouse, i get a window with the error:
"error : #include found after .generated.h file - the .generated.h file should always be the last #include in a header".

I would expect this behaviour to be activated from the VAOptions->Game Development->Unreal Engine->Run UHT on header files
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19147 Posts

Posted - Feb 11 2025 :  12:11:27 PM  Show Profile  Reply with Quote
Ah, now I see what you are thinking, and talking about. Would it make sense to model this after Code Inspection? I am thinking how when editing, once you pause, VA checks the file and reports any errors that are coming from clang-tidy. A similar method could work here, at least in theory. Then you would see the errors disappear as they are fixed.

Since this is limited to just the current header file, I am hoping it would be fairly responsive.

I have put together a test for large numbers of files being excluded, and the effect on the Open File in Solution dialog. The results are a mess, no wonder you are having problems here. I have put in a bug report for this:

case=165513

zen is the art of being at one with the two'ness
Go to Top of Page

ML_Umberto_Carletti
Junior Member

10 Posts

Posted - Feb 12 2025 :  03:24:09 AM  Show Profile  Reply with Quote
Yes you are right and you phrased it better. It is actually code inspection with UHT. It makes sense to run it only on the current header live while you are writing code (maybe when you pause if there are code changes from last run, or every n seconds, or a combination of both).

Thank you very much for your support with the problems related to the settings.json.
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19147 Posts

Posted - Feb 13 2025 :  10:39:41 AM  Show Profile  Reply with Quote
This is a very interesting idea, and if it can be made to work, it makes a lot of sense, and is clearly going to be very helpful, since catching the errors without needing to do a full build all of the time is going to be most welcome. I have put in a feature request for this to see what our developers make of it:

case=165519

zen is the art of being at one with the two'ness
Go to Top of Page

ML_Umberto_Carletti
Junior Member

10 Posts

Posted - Feb 14 2025 :  03:25:03 AM  Show Profile  Reply with Quote
Thank you very much for your time. I'm looking foreward for the next releases!
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19147 Posts

Posted - Feb 14 2025 :  07:46:04 AM  Show Profile  Reply with Quote
Please be aware that none of these changes / bugs have been done yet, so don't get to excited about these for the next release.

I am currently trying, and failing, to get UE 5 main branch to compile. So I did another code update from github, and am running another compile, in the hope that it will help.

zen is the art of being at one with the two'ness
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19147 Posts

Posted - Feb 24 2025 :  12:41:19 PM  Show Profile  Reply with Quote
I have been trying for days now, and I simply cannot get UE 5.5 or 5.4 to compile.

It doesn't seem to matter how many times I grab the latest code from GitHub, or re-generate the solution files, but I always end up with the UE5 project in Visual Studio 2022 flagged with a small red "stop" icon, telling me that the project is being ignored. I have double checked that I have set the right configuration.

Web searches aren't turning up anything useful so far either.

zen is the art of being at one with the two'ness
Go to Top of Page

CliffyP
Ketchup Master

63 Posts

Posted - Feb 24 2025 :  1:19:46 PM  Show Profile  Reply with Quote
quote:
Originally posted by feline

I am currently trying, and failing, to get UE 5 main branch to compile.



Main branch is a hot branch.. can't expect it to always compile. Use Release instead.
Go to Top of Page

ML_Umberto_Carletti
Junior Member

10 Posts

Posted - Feb 25 2025 :  05:48:28 AM  Show Profile  Reply with Quote
I just tried with a fresh repo. Following https://dev.epicgames.com/documentation/en-us/unreal-engine/downloading-unreal-engine-source-code#downloadingthesourcecode I:
1. git clone https://github.com/EpicGames/UnrealEngine in S:\UnrealEngine
2. run setup.bat
3. run GenerateProjectFiles.bat
4. oepend UE5.sln
5. from Soultion Explorer: right click on UE5 project -> build

this succesfully built the editor.

I also created a new project in S:\UnrealEngine\Games\MyProject from the newly built editor UI. This created MyPProject.sln. Then:
1. opend the MyProject.sln
2. from SolutionExplorer, right click on MyProject -> Set As Startup Project
3. f5 to build and run with default configuration (Development Editor - Win64).

It compiled my project and opend the editor with the Engine I built (ue 5.5.3).
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19147 Posts

Posted - Feb 27 2025 :  1:54:39 PM  Show Profile  Reply with Quote
I am using Github Desktop for my git client, but hopefully that won't matter. I had Unreal Engine cloned into:

F:\src_github\UnrealEngine
I have deleted this from github desktop, and fully deleted the entire directory tree from the hard drive. Then I grabbed the Unreal Engine main branch into "F:\UnrealEngine\"

Then "setup.bat", for the prerequisits
Then "GenerateProjectFiles.bat" which gets me a "UE5.sln"
Open the generated SLN file...



I have made sure I have the correct configuration selected, and restarted VS2022.

I am left to conclude there is a problem with this machine, but I have no idea what or where to look. I have compiled Unreal Engine 4 from source code before on this machine.

I am going to have to start over from scratch on a new test machine.

zen is the art of being at one with the two'ness
Go to Top of Page

ML_Umberto_Carletti
Junior Member

10 Posts

Posted - Feb 28 2025 :  04:57:52 AM  Show Profile  Reply with Quote
From the screen you sent it looks like you are missing visual studio components to game develop in unreal. Did you install the missing components? you can also try to follow this
https://dev.epicgames.com/documentation/en-us/unreal-engine/setting-up-visual-studio-development-environment-for-cplusplus-projects-in-unreal-engine#newvisualstudioinstallation
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19147 Posts

Posted - Feb 28 2025 :  07:58:50 AM  Show Profile  Reply with Quote
I am so used to Visual Studio telling me to install extra bits I was just ignoring the yellow box. Especially since UE 4.x compiled just fine.

I have just installed all of these extras. I then did a reboot, to make sure, and re-ran "GenerateProjectFiles.bat" to make sure any changes had been accounted for. Then open the UE5.sln, and the same result. The solution and UE5 project are both marked ignore.

Clearly there is some problem with this machine, but I have no idea what, or where to look for it.

I need to find the space for a new, clean VM, since the git tree for all of this is 260 GB on its own! This is going to be a fairly large VM...

zen is the art of being at one with the two'ness
Go to Top of Page

ML_Umberto_Carletti
Junior Member

10 Posts

Posted - Feb 28 2025 :  08:57:03 AM  Show Profile  Reply with Quote
You could just delete the git tree, I don't think you need the whole history of the git project. That would make the directory smaller. Also about the "Ignored" thing, from a quick look on google it looks like related to source control, and the fact that files are ignored from the source control shouldn't prevent you from compiling. Did you try to build the editor after having downloaded all the missing VS components? Also I guess the "ignored" symbol would disappear if you'd make a fork and have the engine on your own git.
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19147 Posts

Posted - Mar 03 2025 :  09:17:25 AM  Show Profile  Reply with Quote
I always looked in the folder:

Epic Games\UE_5.5\Engine\Binaries\Win64
for "UnrealEditor.exe" or failing that, for "UE4Editor.exe" or anything else sounding helpful, but never found it. So I concluded this ignored icon mattered.

Currently, I have started with a new, empty Windows 11 machine. Its a virtual machine, configured with 16 processors and 32 GB of RAM, but I am wondering if this is enough. I have installed VS2022, GitHub Desktop, downloaded the source code, done all of the steps...

I am still getting the ignore icon, and I am currently at about 15 crashes of Visual Studio trying to build the UE 5 main trunk. The list of exe files in the folder "Epic Games\UE_5.5\Engine\Binaries\Win64\" is:

F:\GitHub\UnrealEngine\Engine\Binaries\Win64\CmdLink.exe
F:\GitHub\UnrealEngine\Engine\Binaries\Win64\crashpad_handler.exe
F:\GitHub\UnrealEngine\Engine\Binaries\Win64\EpicWebHelper.exe
F:\GitHub\UnrealEngine\Engine\Binaries\Win64\iostore_analysis.exe
F:\GitHub\UnrealEngine\Engine\Binaries\Win64\LiveCodingConsole.exe
F:\GitHub\UnrealEngine\Engine\Binaries\Win64\MinidumpDiagnostics.exe
F:\GitHub\UnrealEngine\Engine\Binaries\Win64\radpatcher.exe
F:\GitHub\UnrealEngine\Engine\Binaries\Win64\UnrealTraceServer.exe
F:\GitHub\UnrealEngine\Engine\Binaries\Win64\UnrealVersionSelector-Win64-Shipping.exe
F:\GitHub\UnrealEngine\Engine\Binaries\Win64\zen.exe
F:\GitHub\UnrealEngine\Engine\Binaries\Win64\zenserver.exe

none of which seem to be the one I want.

The instructions really do seem clear enough, so I have no idea why I cannot get this to work.

zen is the art of being at one with the two'ness
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19147 Posts

Posted - Mar 03 2025 :  12:41:41 PM  Show Profile  Reply with Quote
One step forward, one step back...

I had to double the allocated RAM to the VM, but I now got a "UnrealEditor.exe" out of the compile.

But when I run it, I get a fatal error. "The game has crashed and will close"

Due to:

Fatal error - unable to read manifest from ...UnrealEditor.modules

Probably related to the compiler errors, which start with the fascinating:

Severity Code Description Project File Line Suppression State Details
Error C2039 'system_clock': is not a member of 'std::chrono' UE5 F:\GitHub\UnrealEngine\Engine\Plugins\Media\BlackmagicMedia\Source\BlackmagicCore\Private\BlackmagicInputChannel.h 39

zen is the art of being at one with the two'ness
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19147 Posts

Posted - Mar 14 2025 :  1:25:12 PM  Show Profile  Reply with Quote
I had yet another look at this, and this time, Unreal Engine decided to build successfully.

I have absolutely no idea why it decided to build and work this time, and not any of the previous times. Very confusing, so I don't want to touch it if I don't have to. But what matters is that I can finally actually run some tests, and do some investigating of this.

For the record, the test game project I created is:

First Person
C++
Target Platform = Desktop
Quality Preset = Maximum
Starter Content = On

First observation, I got this working before installing Visual Assist. So VA had to do a full VA symbol database build when I first loaded this game solution. Using VS2022 and VA 2547 this was finished in just a few minutes. I didn't time it, but certainly I didn't get the "come back in a few hours" parsing time that I have sometimes seen with older versions of VA and really massive solutions.

zen is the art of being at one with the two'ness
Go to Top of Page

ML_Umberto_Carletti
Junior Member

10 Posts

Posted - Mar 17 2025 :  06:47:30 AM  Show Profile  Reply with Quote
Nice! I have no idea why it didn't work before...

Anyway, with all the plugins and modules in our code base, a have a total of 1.890.941 symbols. I rebuilt the database and it took several minutes (i didn't profile the timing but i'd say 10 min). This is acceptable for the first time, than I switch to parsing only modified files.

From the "Open files in Solution" I see 88.438 files. And that is why I would like to exclude from parsing some plugins that we don't need to be parsed with VA.
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19147 Posts

Posted - Mar 18 2025 :  12:28:37 PM  Show Profile  Reply with Quote
When you re-load Visual Studio, VA should only need to parse any files that have changed. The only times this won't apply are if you have triggered a VA symbol database, or loaded an "extra" instance of Visual Studio. For me, re-loading Visual Studio, and loading this large solution again, I am not even seeing messages about VA doing any parsing at all. This is expected though, since nothing has been changed.

Reparsing does happen automatically after a crash, but we have already covered this, and it should not be a problem.

For an extra instance, each instance of Visual Studio gets its own copy of the VA symbol database, to stop problems where the databases overlap. Given the solution size, I only mention this to be complete, and it should not be much of an issue.

Does this match your experience, that there is only limited parsing most of the time?

I have already put in a case for C# files still being parsed, even though they have been excluded.

zen is the art of being at one with the two'ness
Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Reply to Topic
 Printer Friendly
Jump To:
© 2023 Whole Tomato Software, LLC Go To Top Of Page
Snitz Forums 2000