Author |
Topic |
|
playdeadjakob
Junior Member
Denmark
21 Posts |
Posted - Oct 01 2020 : 09:09:09 AM
|
Typing FVector::R
With intellisense enabled I get FVector::RightVector as a suggestion. I've disabled it because it's slow, but now I get no suggestions. |
/Jakob |
|
feline
Whole Tomato Software
United Kingdom
19025 Posts |
Posted - Oct 01 2020 : 10:35:48 AM
|
It is possible that VA is not picking up Unreal Engine correctly, if so this would explain this problem.
First up, what do you have the following set to:
VA Options -> Unreal Engine -> Enable support for Unreal Engine 4 When a solution contains a project named UE4 Always
what location do you have Unreal Engine installed to on your system?
If you look in the VA Options dialog, at the C/C++ Directories page, and look at your list of stable include directories, are the various sub-directories for your Unreal Engine install listed here? If VA is picking up Unreal Engine correctly they should be. |
zen is the art of being at one with the two'ness |
|
|
playdeadjakob
Junior Member
Denmark
21 Posts |
Posted - Oct 01 2020 : 10:50:33 AM
|
Enable support for Unreal Engine 4 is on. I've changed it to always. No change.
We build our own engine and I sync it to a folder in D:\develop 2.0\UnrealEditor\Engine D:\develop 2.0\UnrealEditor\Engine\... is not listed.
It lists a plugin and Lightmass.
What sub directories would you expect to show up here?
|
|
|
feline
Whole Tomato Software
United Kingdom
19025 Posts |
Posted - Oct 01 2020 : 12:41:43 PM
|
All of the sub-directories in the Unreal Engine directory tree should be listed in the stable include directory list, which is clearly not happening here.
Can you please try the following test, and see if it helps. First create the directory:
C:\Program Files\Epic Games Open a command prompt inside this directory, and run the command:
mklink /J UE_4.24 "D:\develop 2.0\UnrealEditor\Engine"
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
"D:\develop 2.0\UnrealEditor\Engine"
And turn all instances into:
"C:\Program Files\Epic Games\UE_4.24\"
Save the changes and now reload the IDE and your solution.
Does this help to fix the problem? VA should parse all of your unreal engine source code the first time you load the solution, but on future loads it should not parse it again, since it will recognize that unreal engine does not change all that much or often.
Detecting Unreal Engine source code isn't quite as simple as it feels it should be, but we are looking into this:
case=105950 |
zen is the art of being at one with the two'ness |
|
|
playdeadjakob
Junior Member
Denmark
21 Posts |
Posted - Oct 02 2020 : 04:28:40 AM
|
Do I have to this for all the different version of the engine I am running and every time I get a new one in a different folder?
Does it have to be named 4.24? We are on 4.25.x and upgrading regularly.
I hope you are able to fix this. It's a really bad user experience. I considered uninstalling VA and running with the slow intellisense instead. |
/Jakob |
Edited by - playdeadjakob on Oct 02 2020 04:35:05 AM |
|
|
feline
Whole Tomato Software
United Kingdom
19025 Posts |
Posted - Oct 02 2020 : 05:57:40 AM
|
The exact name of the folder does not matter. Basically if you end up with the engine installed to, or appearing to be installed to a sub-directory under "C:\Program Files\" then VA should properly support Unreal Engine source code. However this doesn't always work, given how large the directory tree can get, which is where the symbolic links can help.
This is something we are looking into fixing, but it's not quite so simple to fix as we would like.
It is possible to have a mix of locally compiled Unreal Engine source code from github with downloaded Unreal Engine source code via the Epic Games Launcher, plus different versions of both. Obviously neither have guaranteed install paths. As a result detecting Unreal Engine and working out that it is a stable include directory, while it is also part of the solution you are opening, is sometimes rather complex. |
zen is the art of being at one with the two'ness |
|
|
playdeadjakob
Junior Member
Denmark
21 Posts |
Posted - Oct 02 2020 : 06:22:48 AM
|
It parsed, but it doesn't work. Still no suggestions when typing e.g. FVector::Z
I've been used to hitting ctrl+space to invoke edit.completeword. Right now I obviously just get the message: 'Failed due to IntelliSense disables' Is there a similar command in VA I should bind to this that might invoke it?
Another caveat is that regenerating project files nukes the change you wanted me to make. |
/Jakob |
Edited by - playdeadjakob on Oct 02 2020 06:31:53 AM |
|
|
feline
Whole Tomato Software
United Kingdom
19025 Posts |
Posted - Oct 02 2020 : 07:16:15 AM
|
Ah, I probably should have foreseen that regenerating the project would undo the file edits pointing at the folder junction... I have added a note to the case about this.
First things first though, lets try and fix FVector for you. The listbox is working on "FVector::" for me here, using VS2017 and VA 2382.0, so I am not sure why this isn't working for you.
If you place the caret into "FVector" and press Alt-Shift-G for the Goto Related menu, what, if anything, happens? You should get a menu, and the bottom item should be "Goto Member...", which will open a dialog listing all of the members of FVector.
If this isn't working for you what, if anything, happens when you press Alt-G on FVector? |
zen is the art of being at one with the two'ness |
|
|
playdeadjakob
Junior Member
Denmark
21 Posts |
Posted - Oct 02 2020 : 07:40:04 AM
|
VA_X.dll file version 10.9.2387.0 built 2020.08.25 VS2019
Goto related gives me definition and a Declarations menu.
Goto works. Takes me to the header file. |
/Jakob |
|
|
feline
Whole Tomato Software
United Kingdom
19025 Posts |
Posted - Oct 02 2020 : 07:58:58 AM
|
This sounds like it should be working... rather strange.
How did you disable IDE intellisense? The normal method is to set:
IDE tools menu -> Options -> Text Editor -> C/C++ -> Advanced -> IntelliSense -> Disable IntelliSense = True
What happens if you have a local variable of type "FVector" and try to access its members, e.g.
FVector simpleLocal; simpleLocal.|
Which version of Unreal Engine are you using? Did you download the Unreal Engine source code from github, or did you install it via the Epic Launcher, or even both?
Are you seeing this problem with other types, or just FVector? |
zen is the art of being at one with the two'ness |
|
|
playdeadjakob
Junior Member
Denmark
21 Posts |
Posted - Oct 02 2020 : 08:55:32 AM
|
I disabled using the method you describe.
I'm using 4.25.x.
I mainly get the engine from our SVN. When I need to make changes to UE4 I use a version from github and compile the engine myself. I also have a version downloaded from the epic launcher that I almost never use. It's only for comparing bugs with a vanilla version.
Same issue with FRotator. I've only recently turned off intellisense, which is when it started happening all the time, so I haven't had time to try it, since I can't really work without autocomplete. I've noticed autocomplete some of my own types starting to disappear as well. |
/Jakob |
|
|
feline
Whole Tomato Software
United Kingdom
19025 Posts |
Posted - Oct 02 2020 : 09:26:45 AM
|
Does Alt-Shift-G give you the "Goto Member..." option, which should be at the bottom of the menu?
If you use Alt-G to jump to the header file / class definition, and look at both the Alt-M menu and VA Outline, are these looking correct in the header file? I am wondering if somehow VA is having trouble parsing these header files, and thus does not know what class members the class contains.
Also, are you being taken to the correct / expected header file, or to a different header file that is outside of your solution? |
zen is the art of being at one with the two'ness |
|
|
playdeadjakob
Junior Member
Denmark
21 Posts |
Posted - Oct 06 2020 : 05:42:33 AM
|
Goto related gives me definition and a Declarations menu.
Goto gives me 3 header files to pick from. The top one being correct. |
/Jakob |
|
|
feline
Whole Tomato Software
United Kingdom
19025 Posts |
Posted - Oct 07 2020 : 10:20:44 AM
|
Apologies, it turns out that FVector is something of a special case, Unreal Engine has quite a few of these.
When I first load my solution the type "FVector" is shown as a preprocessor macro, based on VA's colour settings. If I now use Alt-Shift-G on it at this stage I only get two entries in the Goto Related menu, the same two you are seeing.
However, once I dismiss the menu with Escape VA updates its colouring and FVector is now shown as a class, and now when I use Alt-Shift-G on the type the goto related menu contains 5 items.
So you may well be running into the same initial effect, but somehow VA is not updating its self with a proper understanding of FVector.
If you show VA's Find Symbol dialog, Alt-Shift-S, and use the filter ".fvector." what do you see? The leading and trailing dot's indicate that we want a full word match, so you won't see symbols where "fvector" is only part of the symbol name. Testing here I get 232 matching symbols shown, the first of the two numbers in the dialogs title bar, and all of the FVector class members are listed in the dialog.
How does this compare to what you are seeing?
If you are able to post the paths, what are the paths to the three header files you see? For comparison, the Alt-Shift-G menu -> Declarations sub-menu gives me the three locations:
C:\Program Files\Epic Games\UE_4.24\Engine\Source\Runtime\Core\Public\Mac\MacSystemIncludes.h C:\Program Files\Epic Games\UE_4.24\Engine\Source\Runtime\CoreUObject\Public\UObject\NoExportTypes.h C:\Program Files\Epic Games\UE_4.24\Engine\Source\Runtime\Core\Public\Math\Vector.h
where the 3rd entry, "Vector.h" is the correct header file.
When you are in the correct header file, does VA show the correct information for this file in the Alt-M list and VA Outline? I am wondering if your local Vector.h file has been edited, and somehow one of the edits is confusing our parser. If so, this will normally show up in our understanding of the file. |
zen is the art of being at one with the two'ness |
|
|
playdeadjakob
Junior Member
Denmark
21 Posts |
Posted - Oct 08 2020 : 06:17:10 AM
|
After doing find symbols FVector turns yellow, but I still don't get autocomplete.
Declarations submenu gives me so many entries it doesn't fit on my 32" monitor. Looks like att forward declarations in generated files are in there. Goto stopped working for FVector. This worked before I did find symbol. Goto member is empty.
Bonus info: If I build the engine from source it works, but the iteration speed running from that is usually too slow for me. |
Edited by - playdeadjakob on Oct 08 2020 06:23:47 AM |
|
|
feline
Whole Tomato Software
United Kingdom
19025 Posts |
Posted - Oct 08 2020 : 09:04:35 AM
|
I am wondering if VA is picking up two slightly different versions of Unreal Engine at the same time in your solution. This would explain some of the problems you are seeing, but certainly does not explain why you are not seeing listboxes for FVector.
If you change the Find Symbol dialog filter to:
.fvector. * -=
to just look at the operator* members, excluding the *= members, how many do you get? I only have one here, and selecting it takes me to:
C:\Program Files\Epic Games\UE_4.24\Engine\Source\Runtime\Core\Public\Math\Vector.h
would you be able to post the full paths of the file / files that you are taken to for the operator* functions? I am just picking this since it is listed in your dialog, the precise method we use doesn't matter, but I am curious about the fact that you have at least 3 versions of this function, and I only have 1 version.
Trying a different approach to the same problem, if you look in VA's Open File in Solution dialog, Alt-Shift-O by default, and use the filter:
.vector.h
to again match for a whole word, I get just the two following files:
C:\Program Files\Epic Games\UE_4.24\Engine\Source\Runtime\Core\Public\Math\Vector.h C:\Program Files\Epic Games\UE_4.24\Engine\Source\Runtime\Experimental\ChaosCore\Public\Chaos\Vector.h
this is with the check box "Show only files in the current solution" turned On. |
zen is the art of being at one with the two'ness |
|
|
playdeadjakob
Junior Member
Denmark
21 Posts |
Posted - Oct 15 2020 : 04:23:06 AM
|
And do you want me to turn all instances in the project file into: "C:\Program Files\Epic Games\UE_4.24\"
every time I try out something new? |
/Jakob |
|
|
playdeadjakob
Junior Member
Denmark
21 Posts |
Posted - Oct 15 2020 : 04:52:45 AM
|
Find symbol for .fvector. * -= now yields me 0 results. I've done the whole replace path thing you initially asked me to do. |
/Jakob |
|
|
feline
Whole Tomato Software
United Kingdom
19025 Posts |
Posted - Oct 15 2020 : 05:03:17 AM
|
Because I don't understand what is going wrong here, or what might be triggering this problem, I am trying to remove as many variables as possible, so my tests and your system are as similar as possible, to try and find a difference that might explain the problems you are seeing.
If you make a simple, default new Unreal Engine game project, do you see the problem there? Would running any tests and edits in just a single small test game project help? This would avoid having to make any edits or changes to your main solution. At the same time, if there is no sign of the problem in a simple game project this would tell us something about the cause of the problem.
After doing the path replace, is VA picking up Unreal Engine at all? If you look at:
VA Options -> C/C++ Directories
then all of your Unreal Engine sub-directories should be listed in the stable include directories list. |
zen is the art of being at one with the two'ness |
|
|
playdeadjakob
Junior Member
Denmark
21 Posts |
Posted - Oct 15 2020 : 05:27:43 AM
|
After doing the path replace VA seems to be picking up the engine. Goto works with some slate classes that were not picked up before.
At first I though it was missing all of my own plugins and module, since goto did not work, but now it seems to have picked up these as well.
.fvector. * -= still doesn't yield anything.
At this point I don't think I can spend anymore work time on it. I'll either live with the replace path work around or try a different IDE. It seems the current combination of 3 engines and different project checkouts has caused some weird state. If I nuked everything and started over it might be better, but right now I need to get some work done. If I find the time to do the test you mention above I will reply here.
Thank you for all your help.
/Jakob |
/Jakob |
|
|
feline
Whole Tomato Software
United Kingdom
19025 Posts |
Posted - Oct 15 2020 : 06:59:28 AM
|
Apologies for all of the problems you have been having, and yes, sadly trying to pin down strange problems can take far to much time.
If you do find the time to have a look at a simple test solution that shows problems then I am here to help try and understand what is going wrong, and to find a work around if possible. I hope you find a working situation fairly quickly and painlessly. |
zen is the art of being at one with the two'ness |
|
|
|
Topic |
|