T O P I C R E V I E W |
nofxboy1234 |
Posted - Mar 29 2020 : 11:22:44 AM Hi all :)
I'm using: VS Community 2019 Visual Assist build 2366
In a class declaration for UE4 I have:
class PROJECTSEASHELL_API AGirlCharacter : public ACharacter
{
GENERATED_BODY()
When I "Goto Member" on AGirlCharacter with "show symbols from base classes" ticked, it doesn't show symbols from base classes. If I "Goto Member" on ACharacter, it shows symbols from base classes just fine.
It's not a huge thing, just wondering why this is? |
30 L A T E S T R E P L I E S (Newest First) |
nofxboy1234 |
Posted - Jun 18 2020 : 10:35:03 AM quote: Originally posted by ChrisG
case=142090 is fixed in build 2380. https://support.wholetomato.com/default.asp?W404#2380
Thank you |
ChrisG |
Posted - Jun 18 2020 : 01:36:21 AM case=142090 is fixed in build 2380. https://support.wholetomato.com/default.asp?W404#2380 |
nofxboy1234 |
Posted - May 12 2020 : 10:06:54 AM quote: Originally posted by feline
This makes sense, and I see the problem now. I have added this to the case, so we understand this is having a bigger impact than it first seems to be having.
Part of the problem here is that the exact conditions to trigger this bug aren't obvious, as we saw. Which makes it a bit more tricky to pin down and solve.
Thank you |
feline |
Posted - May 12 2020 : 09:21:19 AM This makes sense, and I see the problem now. I have added this to the case, so we understand this is having a bigger impact than it first seems to be having.
Part of the problem here is that the exact conditions to trigger this bug aren't obvious, as we saw. Which makes it a bit more tricky to pin down and solve. |
nofxboy1234 |
Posted - May 11 2020 : 10:09:20 AM I'm mainly wanting to be able to quickly show base class symbols and jump into their code to see how they're implemented, and know what functionality is being provided in the background of my subclass. Oh yes, I've seen you can trigger Alt+Shift+G on variables and function calls. I guess that's why I'm thinking I can work around it by bookmarking and jumping to the base class word in the subclass declaration, to run Alt+Shift+G. I don't mind doing that now, I've kind of gotten used to it.
Thanks Feline, I appreciate the help. I can just wait until it's hopefully fixed one day, but at least VAX has a lot of functionality and many ways to do things, which provides ways to workaround an issue in most cases. |
feline |
Posted - May 11 2020 : 09:36:53 AM OK, now I see why this is a bigger problem than I had realized. I had been focusing on actually reproducing and tracking down the problem.
In a general sense, what problem are you trying to solve via the Goto Member dialog? I follow your example of finding a jump function, but are you trying to work out which functions you can override? Locate a specific member function of your current class?
Are you aware you can trigger Alt-Shift-G, and this Goto Member, on member variables, local variables and function calls? So, for example, you have a local variable of type AActor or ACharacter, you can trigger Goto Member on the variable or a function call on the variable.
I am trying to look for some way to help you work around this problem. |
nofxboy1234 |
Posted - May 11 2020 : 07:16:58 AM quote: Originally posted by feline
So the problem is that you are triggering Goto Member from different places inside your class, and are seeing the problem there as well?
What sort of places / scopes are you using, and seeing this problem with?
Hi Feline
Yip, if I trigger it from anywhere else inside that class, and it picks up that I'm trying to list that class' symbols, it gives that same result.
It happens anywhere in the scope of the ACharacter subclass, in this case. |
feline |
Posted - May 11 2020 : 07:09:05 AM So the problem is that you are triggering Goto Member from different places inside your class, and are seeing the problem there as well?
What sort of places / scopes are you using, and seeing this problem with? |
nofxboy1234 |
Posted - May 08 2020 : 12:19:00 PM quote: Originally posted by feline
Without re-reading this entire thread, my test case for the problem is the line, in a header file:
class MYPROJECT3_API AMyCharacter : public ACharacter
triggering Goto Member on "ACharacter" lists all of the members of this class and its base classes. Triggering Goto Member on "AMyCharacter" only lists the members declared in this class.
This is not a simple bug, as you have seen with us trying to pin it down and reproduce it on demand.
You mention a simple work around, don't you already have several? The bottom part of VA View, the Hovering Class Browser, shows the correct class information when hovering the mouse over "AMyCharacter".
Telling VA you want to implement virtual methods from the base classes works correctly.
If you want to use Goto Member to go to one of the base classes then you can just move along the line slightly and re-trigger the Alt-Shift-G menu.
You can search the information VA has on the classes via the Find Symbol dialog, which you can easily filter on both class and function name.
Or is this a more serious bug than I understand, that cannot be worked around so easily?
Hi Feline, I took your feedback into account and did some testing.
The workarounds I had earlier in the thread were dirty and fixed one thing, and broke another, unfortunately, so I'd rather not use those.
What is nice about GoTo Member, is the ability to find symbols by a word in their name, and it's filtered only to base class symbols. For example, I want to find a method that's related to "Jump". In Goto Member, I type "jump" into the filter, and it lists e.g. ACharacter.CanJump and ACharacter.Jump, and any other base class symbols with "jump" in them, very quickly.
In Find Symbol, I type "jump" into the filter, and it lists many symbols with Jump in the name, and not filtered to base classes of the current class. Is there a way to filter to only base classes in this dialog? That would be cool.
In VA View, I like that it shows an overview of base classes and symbols. Is there a way to search VA View for a keyword like "jump"? That could work too. I've checked the docs on Find Symbol and VA View and can't seem to find anything about filtering to base classes, but I'm new to Visual Assist, so maybe it is possible?
I could have VA View locked to the current class so I can see it's base classes, then use Find Symbol to filter with "acharacter jump", then "APawn jump", until I've checked through all the base classes one by one, but this is a much longer and inefficient way than using GoTo Member and typing "jump" once.
At the moment, looking at these options, it seems like the quickest way is probably to create a VA HashTag next to the base class name in the header file, then jump to it from anywhere in the Solution, and run GoTo Member. |
feline |
Posted - May 08 2020 : 10:17:24 AM Without re-reading this entire thread, my test case for the problem is the line, in a header file:
class MYPROJECT3_API AMyCharacter : public ACharacter
triggering Goto Member on "ACharacter" lists all of the members of this class and its base classes. Triggering Goto Member on "AMyCharacter" only lists the members declared in this class.
This is not a simple bug, as you have seen with us trying to pin it down and reproduce it on demand.
You mention a simple work around, don't you already have several? The bottom part of VA View, the Hovering Class Browser, shows the correct class information when hovering the mouse over "AMyCharacter".
Telling VA you want to implement virtual methods from the base classes works correctly.
If you want to use Goto Member to go to one of the base classes then you can just move along the line slightly and re-trigger the Alt-Shift-G menu.
You can search the information VA has on the classes via the Find Symbol dialog, which you can easily filter on both class and function name.
Or is this a more serious bug than I understand, that cannot be worked around so easily? |
nofxboy1234 |
Posted - May 08 2020 : 10:00:32 AM Thanks Feline, I sent an email to support on the 3rd of April. The case number is 142085. Oh no don't worry about the blueprint side of it, I'm just using it to prototype and then port logic to c++ afterwards. So I'm using blueprints visual scripting while I wait for a fix for c++ side of things. |
feline |
Posted - May 08 2020 : 09:50:29 AM I do work for Whole Tomato, I assume you sent an email to [email protected], if so, what case number was this assigned?
As I understand it blueprints are handled by macro generated code in Unreal Engine, but I know we do have some support for and handling of this. But since I only support, but don't actually use Unreal Engine, my knowledge of it is rather random and scattered. |
nofxboy1234 |
Posted - May 07 2020 : 1:31:06 PM Hi Feline, I've been exclusively using Blueprints in UE4 since VAX is not working as expected. I again tried re-installing/uninstalling UE4, Visual Studio, VAX and turning options on and off and still have the same issue. It's a bit frustrating that I've paid for this product and can't use it to it's full ability. Do you happen to work for Whole Tomato, and if so, could you follow up on this? I'm waiting to hear back from Support as they have logged the issue.
What really confuses me is, surely I can't be the only person in the whole wide world having this issue? How are other people getting it to work? I'd even take a dirty workaround for the meantime until it's fixed.
I see the potential of VAX and have really liked the working parts that I've seen so far, and I think that's why I'm just really disappointed with how long it takes to get a fix as a paying customer. |
nofxboy1234 |
Posted - Apr 21 2020 : 12:54:29 PM quote: Originally posted by feline
That's good to know. Obviously please do let us know if / when you encounter any other issues, or just think of something more we can do to help 
Thanks so much, I really appreciate it :)! |
feline |
Posted - Apr 21 2020 : 12:08:27 PM That's good to know. Obviously please do let us know if / when you encounter any other issues, or just think of something more we can do to help  |
nofxboy1234 |
Posted - Apr 21 2020 : 12:05:19 PM quote: Originally posted by feline
Are you seeing any other problems with VA's understanding of Unreal Engine, or just this? I have managed to reproduce this in a couple of different situations, but I still cannot pin down the actual trigger.
case=142090
Thanks Feline, no this is the only issue I've come across so far. |
feline |
Posted - Apr 21 2020 : 11:50:46 AM Are you seeing any other problems with VA's understanding of Unreal Engine, or just this? I have managed to reproduce this in a couple of different situations, but I still cannot pin down the actual trigger.
case=142090 |
nofxboy1234 |
Posted - Apr 15 2020 : 11:14:12 AM quote: Originally posted by feline
Sorry for the delay on getting back to you about this. I do have your game project, and now that I have installed the right, matching version of Unreal Engine, I am seeing the same problem here with the class member list. I just don't understand it, but at least I can now study it, thank you for the project files.
No problem, thanks for looking into it :)! Yes it's so weird. |
feline |
Posted - Apr 15 2020 : 10:39:29 AM Sorry for the delay on getting back to you about this. I do have your game project, and now that I have installed the right, matching version of Unreal Engine, I am seeing the same problem here with the class member list. I just don't understand it, but at least I can now study it, thank you for the project files. |
nofxboy1234 |
Posted - Apr 11 2020 : 04:59:00 AM Hi Feline, hope you're well :). Have you had a chance to test the solution linked? |
nofxboy1234 |
Posted - Apr 08 2020 : 09:04:52 AM quote: Originally posted by feline
Thank you for the screen shots. Apart from the number of class members shown in ACharacter, I am seeing the same results here, except that AMyCharacter is listing all of the inherited members.
I am going to update my version of Unreal Engine, to match yours, and see if this makes any difference.
Also, if possible, would you be able to zip up your test game solution, just the game directory its self, without Unreal Engine, to keep it smaller? If so, and I can get a copy, I can try it here, and see if somehow the game solution its self is a factor.
Here's the link, thank you!
https://drive.google.com/drive/folders/1KFVEkBfZkToJnWRBM3JONDmzOFMl2REe?usp=sharing |
nofxboy1234 |
Posted - Apr 08 2020 : 08:23:27 AM Thanks Feline, appreciate it! I'll post a google drive link here once uploaded. |
feline |
Posted - Apr 08 2020 : 08:07:45 AM Thank you for the screen shots. Apart from the number of class members shown in ACharacter, I am seeing the same results here, except that AMyCharacter is listing all of the inherited members.
I am going to update my version of Unreal Engine, to match yours, and see if this makes any difference.
Also, if possible, would you be able to zip up your test game solution, just the game directory its self, without Unreal Engine, to keep it smaller? If so, and I can get a copy, I can try it here, and see if somehow the game solution its self is a factor. |
nofxboy1234 |
Posted - Apr 07 2020 : 12:40:46 PM quote: Originally posted by feline
Everything is looking correct, you are getting the same results I am for these tests, except that the Goto Member dialog is listing the base class methods for me.
What happens if you trigger:
VAssistX -> Code Generation and Refactoring -> Implement Interface
on your derived class? I am wondering if you will get the same problem here or not.
Have you done a VA symbol database rebuild yet? Now that VA is finding Unreal Engine, I am wondering if this would help. It can just take a little while, since it causes VA to re-parse all of the Unreal Engine source code, and requires an IDE restart:
VA Options -> Performance -> Rebuild symbol databases
Hi Feline
Thanks, I did the tests. Here are the screenshots, starting with the derived class listed symbols and ending with derived class listed symbols after the tests. Unfortunately, no change yet.






|
feline |
Posted - Apr 07 2020 : 11:41:21 AM Everything is looking correct, you are getting the same results I am for these tests, except that the Goto Member dialog is listing the base class methods for me.
What happens if you trigger:
VAssistX -> Code Generation and Refactoring -> Implement Interface
on your derived class? I am wondering if you will get the same problem here or not.
Have you done a VA symbol database rebuild yet? Now that VA is finding Unreal Engine, I am wondering if this would help. It can just take a little while, since it causes VA to re-parse all of the Unreal Engine source code, and requires an IDE restart:
VA Options -> Performance -> Rebuild symbol databases |
nofxboy1234 |
Posted - Apr 06 2020 : 11:59:29 AM quote: Originally posted by feline
This looks normal and correct now, it is how my Unreal Engine systems and solutions look. But for me the members list of the derived class shows the inherited members as well.
What are you getting when you trigger Alt-Shift-G on AMyCharacter? Are any base classes listed in the "Base Classes" sub-menu?
Lets try this from another angle as well. Can you please trigger Find References on "BeginPlay()" in your AMyCharacter. Right click into Find References Results and make sure that you have turned On "Display inherited and overridden references" in the context menu. Are you getting more than one reference picked up?
Ok awesome :). Here are my results:


|
feline |
Posted - Apr 06 2020 : 11:46:55 AM This looks normal and correct now, it is how my Unreal Engine systems and solutions look. But for me the members list of the derived class shows the inherited members as well.
What are you getting when you trigger Alt-Shift-G on AMyCharacter? Are any base classes listed in the "Base Classes" sub-menu?
Lets try this from another angle as well. Can you please trigger Find References on "BeginPlay()" in your AMyCharacter. Right click into Find References Results and make sure that you have turned On "Display inherited and overridden references" in the context menu. Are you getting more than one reference picked up? |
nofxboy1234 |
Posted - Apr 05 2020 : 11:20:54 AM I installed UE_4.23 alongside 4.24, but this time I installed it directly to C:/Program Files/Epic Games/ so it's next to the junction folder. As you can see from the following screenshots, this fixed the doubling up of base class symbols shown in "Goto Member" of the parent class that was happening in the last test and the keywords you mentioned are now italicized.
But now the subclass "Goto Member" is not showing base class symbols haha. Getting closer!



|
nofxboy1234 |
Posted - Apr 04 2020 : 2:41:45 PM Hi Feline, I tested replacing the relative paths too, and now I can see base class symbols for the subclass of ACharacter :)! Thank you!
Unfortunately now when I view "Goto members", it has 2 entries for each same symbol -> 1 for the C:\UE_4.24 and 1 for the C:\Program Files\epic Games\UE_4.24. Do you know how to fix this? I see "Project defined->Source files" has the "C:\UE_4.24\" folders listed and "Project defined->System include files" has the "C:\Program Files\Epic Games\UE_4.24\" folders listed.
Also, the UPROPERTY keyword is not italicized as you mentioned near the beginning of this thread, which doesn't seem to affect anything, but would be nice to check on this.
What do you think causes the "c++ directories" issue? Would I have to do this for each Solution?
|
nofxboy1234 |
Posted - Apr 04 2020 : 11:40:23 AM I did notice in those 2 files that there were still relative paths to C:\UE_4.24, but I only replaced the absolute paths to point to the new location. Should I replace those too? |
|
|