Author |
Topic |
|
agaubatz
New Member
USA
2 Posts |
Posted - Jul 04 2018 : 1:53:09 PM
|
I've really appreciated all the UE4 specific features that have been added to Visual Assist lately. They've made my life a lot easier! And it's impressive given how non-standard and macro-magicy UE4's C++ is.
Obviously, I'm about to ask for more...
I use the "Implement Virtual Method" refactor all the time, but when I do, I almost always want to call "Super::MyFunctionName(Param1, Param2...)" and have to type it out. Could there be a setting or something that would include that base class call in the generated code?
It's easy to forget to call Super, and there are a lot of subtle bugs that can happen in UE4 projects if you do. For instance, forgetting to call "Super::BeginPlay()" can result in particle systems randomly not playing.
Thanks! |
|
feline
Whole Tomato Software
United Kingdom
19022 Posts |
Posted - Jul 04 2018 : 4:36:10 PM
|
To make calling the super function easier and quicker, you can add your own VA Snippet, with the body:
Super::$MethodName$($MethodArgs$);
or, to make it easier, simply open the VA Snippet editor, and paste in the following code from the clipboard:
<VA_Snippet> <Language>C++</Language> <Title>Call super class</Title> <Shortcut>super</Shortcut> <Description /> <Code>Super::$MethodName$($MethodArgs$);</Code> </VA_Snippet>
which will insert the snippet for you, along with its shortcut, "super" in this example.
You cannot currently tell VA to add this automatically as part of the refactoring command, since the symbol context does not exist until the code has been generated, but this is something we are aware of, and are looking to improve at some point:
case=9863 |
zen is the art of being at one with the two'ness |
|
|
sean
Whole Tomato Software
USA
2817 Posts |
Posted - Dec 03 2018 : 6:48:02 PM
|
In build 2301, when implementing virtual methods from engine base classes marked with UCLASS, Super::MethodName is automatically added to generated implementation (case=116702). |
|
|
|
Topic |
|
|
|