T O P I C R E V I E W |
exeq |
Posted - Sep 27 2020 : 10:03:43 AM 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? |
15 L A T E S T R E P L I E S (Newest First) |
feline |
Posted - Oct 23 2020 : 06:58:27 AM 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. |
Bargest |
Posted - Oct 23 2020 : 02:59:50 AM 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.
|
feline |
Posted - Oct 22 2020 : 1:43:15 PM 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. |
Bargest |
Posted - Oct 22 2020 : 07:15:13 AM 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 |
feline |
Posted - Oct 09 2020 : 11:15:20 AM 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. |
Bargest |
Posted - Oct 09 2020 : 07:25:50 AM 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
|
feline |
Posted - Oct 09 2020 : 06:50:38 AM 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. |
Bargest |
Posted - Oct 09 2020 : 03:55:26 AM 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 |
feline |
Posted - Oct 08 2020 : 3:49:00 PM 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. |
Bargest |
Posted - Oct 08 2020 : 12:06:53 PM 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. |
feline |
Posted - Oct 07 2020 : 10:36:02 AM 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? |
Bargest |
Posted - Oct 06 2020 : 04:45:11 AM 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
|
feline |
Posted - Sep 30 2020 : 08:18:31 AM 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? |
exeq |
Posted - Sep 29 2020 : 4:37:28 PM 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. |
feline |
Posted - Sep 28 2020 : 05:38:24 AM 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. |
|
|