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
New Member

6 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
19110 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
New Member

6 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
19110 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
New Member

6 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
19110 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
New Member

6 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
19110 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
New Member

6 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
19110 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
New Member

6 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
19110 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
  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