Whole Tomato Software Forums
Whole Tomato Software Forums
Main Site | Profile | Register | Active Topics | Members | Search | FAQ
 All Forums
 Visual Assist
 Technical Support
 Goto Member not showing base class symbols

You must be registered to post a reply.
Click here to register.

Screensize:
UserName:
Password:
Format: BoldItalicizeUnderlineStrikethrough Align leftCenterAlign right Insert horizontal ruleUpload and insert imageInsert hyperlinkInsert email addressInsert codeInsert quoted textInsert listInsert Emoji
   
Message:

Forum code is on.
Html is off.

 
Check to subscribe to this topic.
   

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?

© 2023 Whole Tomato Software, LLC Go To Top Of Page
Snitz Forums 2000