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
 Parsing
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic  

exeq
New Member

Sweden
2 Posts

Posted - Sep 27 2020 :  10:03:43 AM  Show Profile  Reply with Quote
Im using Visual Assist alot with unreal engine. Every time i open a project it has to parse for like 30min, doesn't visual assist remember from my other projects? or does it have to parse every single time i make a new project?

feline
Whole Tomato Software

United Kingdom
17027 Posts

Posted - Sep 28 2020 :  05:38:24 AM  Show Profile  Reply with Quote
What do you have:

VA Options -> Unreal Engine -> Enable support for Unreal Engine 4
When a solution contains a project named UE4
Always

set to?

If you look at:

VA Options -> C/C++ Directories

does your list of VA stable include directories include your Unreal Engine directories? If VA is picking up Unreal Engine correctly then all of the sub-directories in your Unreal Engine directory tree should be included in this list.

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

exeq
New Member

Sweden
2 Posts

Posted - Sep 29 2020 :  4:37:28 PM  Show Profile  Reply with Quote
VA Options -> Unreal Engine -> Enable support for Unreal Engine 4
Is set to "When a solution contains a project named UE4"

and in

VA Options -> C/C++ Directories
it says at the bottem "C:/UnrealEngine/UE_4.25/Engine/Source/Programs/UnrealLightmass/Public"
thats the only thing i can see about unreal engine in C/C++ Directories.
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
17027 Posts

Posted - Sep 30 2020 :  08:18:31 AM  Show Profile  Reply with Quote
Is Unreal Engine actually installed to the directory:

C:/UnrealEngine/UE_4.25/

If so, can you please try the following test. First create the directory:

C:\Program Files\Epic Games
Now open a command prompt inside this directory, and run the command:

mklink /J UE_4.25 "C:\UnrealEngine\UE_4.25\"

Where the second path is the directory where you have installed / placed Unreal Engine. This will create a directory link inside the Windows file system, so while Unreal Engine will appear to exist inside this Program Files sub-directory, is still where it was originally installed.

Now make sure all instances of the IDE are closed, and then go into the directory that holds your game solution. From here you should find in the following files:

Intermediate\ProjectFiles\UE4.vcxproj
Intermediate\ProjectFiles\UE4.vcxproj.filters

Open both files in a text editor, and do a search and replace for the old Unreal Engine path to the new Unreal Engine path, so in this case search

"C:\UnrealEngine\UE_4.25\"

And turn all instances into:

"C:\Program Files\Epic Games\UE_4.25\"

Save the changes and now reload the IDE and your solution.

Does this fix the problem, allowing VA to detect and parse Unreal Engine correctly, and to remember that it has been parsed, so it only gets parsed the once?

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

Bargest
New Member

6 Posts

Posted - Oct 06 2020 :  04:45:11 AM  Show Profile  Reply with Quote
I have almost the same problem. But in my case, VASSITXdatabase breaks regularly in addition to reparsing every new project

I've tried this test, it partially worked: C/C++ Directories got filled with a bunch of UE4 directories
but when I created the new project it began parsing again

Intermediate\ProjectFiles\UE4.vcxproj.filters has relative paths so didn't change them

Edited by - Bargest on Oct 06 2020 04:45:40 AM
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
17027 Posts

Posted - Oct 07 2020 :  10:36:02 AM  Show Profile  Reply with Quote
Are you working with more than one instance of the IDE open at the same time? VA keeps a separate symbol database for each opened instance of the IDE, so if you open two instances of the IDE at the same time then VA will parse everything, including Unreal Engine, for each instance of the IDE.

When you say the VA database breaks regularly, what do you mean? Just that VA is reparsing Unreal Engine, or something else?

If you create a new game project in the Unreal Editor then this will, I suspect, point to your actual Unreal Engine install location, rather than the "local" install location created with the "mklink" command. If so then VA won't realise that this is the Unreal Engine stable include library, and will parse it every time you open the solution. Does this sound like what is happening here?

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

Bargest
New Member

6 Posts

Posted - Oct 08 2020 :  12:06:53 PM  Show Profile  Reply with Quote
One IDE instance in 99% of the time.

By "breaking database" I mean it sometimes forgets the existence of some UE4 classes. Fre example: can't use Alt+G to open FMath class definition, or instead of jumping to FVector definition it jumps to vector from chaos plugin. Because of that, I'm forced to rebuild the database and this causes me to wait for 2-3 projects of reparsing

And creating new project did point using path through mklink ("C:\Program Files\Epic Games\UE_4.25\..." instead of "Z:\UnrealEngine\UE_4.25\...")

I'm probably gonna reinstall all UE4 versions to C:\Program Files\Epic Games\ and just move another location with links.
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
17027 Posts

Posted - Oct 08 2020 :  3:49:00 PM  Show Profile  Reply with Quote
I have another user reporting problems with FVector as well, but so far I have not been able to reproduce their problem here. So it is interesting that this is one of the classes that you are seeing a problem with.

Do you have more than one version of Unreal Engine source code on your system, or just one version?

Did you download and compile the source code from github, or did you use the Epic Launcher to download the source code?

Which version of Unreal Engine are you currently working with? Is it 4.25, or is this just an example version number?

Next time you see a problem with FMath or FVector, or any other class, before triggering a VA symbol database rebuild can you first try opening VA's Find Symbol in Solution dialog, Alt-Shift-S by default, and filter on

.fmath.

or

.fvector.

the dot at the start and end indicates start and end of word, so you will only get symbols with this exact word in their name, so VA should be just listing these classes.

Are you seeing the classes and their member functions listed correctly? What happens if you press Enter on one of the member functions, are you taken to the correct location?

I am trying to work out if VA still understands these classes are part of Unreal Engine. It is possible that there is something in your game project that is confusing our parser, which is why VA is not working well there, but our understanding of the Unreal Engine classes might still be correct when listed here.

Alt-G is context aware, so if our understanding of the current context is wrong, then this can cause Alt-G to fail while we still know about FMath or FVector.

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

Bargest
New Member

6 Posts

Posted - Oct 09 2020 :  03:55:26 AM  Show Profile  Reply with Quote
I'm using 4.25 mostly, but have 4.24 installed, they are unmodified and one instance of each
All versions are from Epic Launcher

FMath, FVector is the only example that I could remember at the moment of posting a reply. It forgot about IPropertyHandle yesterday, sadly I didn't read the message before rebuilding

Depending on how lucky I'm it will take from day to around a week to test
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
17027 Posts

Posted - Oct 09 2020 :  06:50:38 AM  Show Profile  Reply with Quote
On the surface this sounds like a normal configuration, so I don't know why you are having these problems. As you say, hopefully it will be a long time before the problem comes back again.

The fact that the problem can take several days to appear is interesting. Do you restart your IDE or your machine during these days, or does the IDE stay open all of the time? So far this seems to be a very rare problem, so system up time should not matter, but it is a possible clue.

Can you please have a look at:

VA Options -> C/C++ Directories

the easiest method here is probably to copy out the list of stable include directories and place it into a text file. A little bit of sorting, or find and replace will let you remove all of the UE 4.25 paths from the list of directories. Are there any 4.24, or other "suspicious" paths in the list of include directories?

I am wondering if VA is somehow pulling in parts of both versions of Unreal Engine. If so this could help to explain what is going wrong.

Another simple experiment for the same idea, with your solution open can you please look in VA's Open File in Solution dialog, Alt-Shift-O by default, and filter it on "4.24" to see if any files with 4.24 in their path, so files from the other version of Unreal Engine, are being listed? Please check with "Show only files in the current solution" both On and Off, just to be sure.

I would be interested in knowing if any files from the other version of Unreal Engine show up once the problem starts happening. It is possible that if something in your code, or something you are doing, is referencing the other version of Unreal Engine this could be part of the problem. Just a guess, but it is hopefully a quick and simple test.

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

Bargest
New Member

6 Posts

Posted - Oct 09 2020 :  07:25:50 AM  Show Profile  Reply with Quote
Problem appearing depends on my activity with projects and not time, I couldn't replicate it, but I feel it's caused after moving around classes, rebuilding project files etc. I can't pinpoint it yet

Visual studio closed and opened multiple times a day and I disable PC for the night.
In yesterday's case it happened during work(not instantly on IDE open) after I migrated some classes between projects.

And there are not 4.24 includes or files in Solution dialog and C/C++ Directories
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
17027 Posts

Posted - Oct 09 2020 :  11:15:20 AM  Show Profile  Reply with Quote
Interesting, and strange. Do you have:

VA Options -> Performance -> Parse all files when opening a project

turned On or Off? I am trying to work out what might be triggering this bug for you. For example, if this setting is turned Off, and you open a cpp file that happens to include "triggers_the_problem.h" then this would cause the header file to be parsed, triggering the confusion.

Under normal conditions, if you use Alt-G on "FVector" what happens? Testing this here, with VS2017, VS2017 and UE 4.24 I get a list of 4 possible locations to jump to:

Mac\MacSystemIncludes.h:7 #define FVector FVectorWorkaround
Vector.h:30 struct FVector{...}
CoreUObject\Public\UObject\NoExportTypes.h:363 struct FVector{...}
IOS\IOSSystemIncludes.h:8 #define FVector FVectorWorkaround

the ChaosCore plugin vector header isn't listed for me, but using VA's Open File in Solution dialog, and the filter ".vector.h" I am seeing this as one of the files in the UE project, so part of my solution.

I am wondering how this compares to what you are seeing normally, and if, once the problem happens, Alt-G on FVector takes you directly to the ChaosCore version of vector.h or if you get an Alt-G menu first.

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

Bargest
New Member

6 Posts

Posted - Oct 22 2020 :  07:15:13 AM  Show Profile  Reply with Quote
Finally caught the bug. FText, FString, FName got broken. I've opened the project after regenerating files, it started parsing, bug appeared.

Alg-G doesn't work for them except for FText, where it jumps to StatsViewColumn typedef TFunction<FText... obviously out of desperation(manual search for the first possible definition?)

Solution dialog(Alt+Shift+S) shows methods for FText, FString, FName properly, but jumping using Alt+G to the header file with definitions is not possible(eg. UnrealString.h for strings)

Parse all files when opening a project is on

UPD. Checked C/C++ Directories, UE4 directories disappeared again(because project generation reset them to UE4 location instead of "C:\Program Files\Epic Games"), after changing paths in ProjectFiles they've returned, VA started parsing again and it got fixed. So it seems installing UE4 outside of "C:\Program Files\Epic Games" might be the problem here

Edited by - Bargest on Oct 22 2020 07:37:52 AM
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
17027 Posts

Posted - Oct 22 2020 :  1:43:15 PM  Show Profile  Reply with Quote
VA not picking up the Unreal Engine directories if Unreal Engine is not installed under

C:\Program Files
is a known problem, but it's not a simple fix, since reliably detecting Unreal Engine, given you can have more than one version installed at one time is a bit tricky:

case=105950

testing this here, with Unreal Engine source code downloaded from github and compiled, instead of running the Unreal Engine editor directly, I ran the command:

<JUNCTION>\Engine\Binaries\Win64\UE4Editor.exe

which in this case was actually:

C:\Program Files\Epic Games\UE_github\Engine\Binaries\Win64\UE4Editor.exe

which, without the junction, is the actual file:

C:\src_github\UnrealEngine\Engine\Binaries\Win64\UE4Editor.exe

I then created a new, default C++ game project in Unreal Engine Editor, which when loaded into Visual Studio is using the junction path for the Unreal Engine, so VA is correctly picking up the UE directory, as if my github source code had been checked out and compiled under "C:\Program Files\".

Are you able to try the same basic approach on your system, accessing / running the UE Editor as if it was installed under the junction folder? I am wondering if this will keep the junction paths when updating the solution for you.

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

Bargest
New Member

6 Posts

Posted - Oct 23 2020 :  02:59:50 AM  Show Profile  Reply with Quote
Hmm. New projects are working correctly now, they are using "C:\Program Files\Epic Games".
I had symlinks before and junctions now, not sure if there is a difference in behavior.

Anyways, I think it was all fixed when I've made links in "C:\Program Files\Epic Games" and it breaks only because old projects are not using junction path. Need figure out how to fix that, but it's not VA issue now.

Thank you for your help.
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
17027 Posts

Posted - Oct 23 2020 :  06:58:27 AM  Show Profile  Reply with Quote
For existing projects, if you make sure all instances of the IDE and the Unreal Engine Editor are closed, and then look in the base directory for each of the existing projects, you should find the files:

Intermediate\ProjectFiles\UE4.vcxproj
Intermediate\ProjectFiles\UE4.vcxproj.filters

Open both files in a text editor, and do a search and replace for the old Unreal Engine path to the new Unreal Engine path, so in this case search

"C:\UnrealEngine\UE_4.25\"

And turn all instances into:

"C:\Program Files\Epic Games\UE_4.25\"

Save the changes and now reload the IDE and your solution. This should fix these projects for you, and in theory, if when you edit / update them in the Unreal Engine Editor, you load the editor via the junction path when the Editor updates the project it should keep on using the junction path.

I believe there is a difference between symbolic links and junction points, but to be honest I am not really sure of the details. I have the vague impression that the symbolic link is more "obvious", less low level, and the junction link is a more low level operation, and so more transparent to most programs.

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:
© 2019 Whole Tomato Software, LLC Go To Top Of Page
Snitz Forums 2000