Whole Tomato Software Forums
Whole Tomato Software Forums
Main Site | Profile | Register | Active Topics | Members | Search | FAQ
User name:
Password:
Save Password
Forgot your password?

 All Forums
 Visual Assist
 Feature Requests
 Support of UE4
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic  

yatagarasu
Junior Member

14 Posts

Posted - Feb 21 2016 :  11:16:09 PM  Show Profile  Reply with Quote
Any plans to make support of Unreal Engine 4?
UE4 have it's sophisticated macros system of UPROPERTY and other such staff, would be cool to have support of editing and refactoring them with VA. I know a lot of UE4 dev's use VA, because standard Intelliscence does not handle UE4 source code well.

feline
Whole Tomato Software

United Kingdom
18727 Posts

Posted - Feb 22 2016 :  2:37:08 PM  Show Profile  Reply with Quote
We are considering this, but it is not currently a priority so I am not sure if or when something will appear:

case=86215

In the short term, you might find turning on deeper macro parsing helps:

https://wholetomato.fogbugz.com/default.asp?W363

zen is the art of being at one with the two'ness
Go to Top of Page

yatagarasu
Junior Member

14 Posts

Posted - Feb 25 2016 :  01:59:37 AM  Show Profile  Reply with Quote
Actually macro parsing is not a problem. Visual Assist works ok with UE macros, parses Super:: typedef well and generally works great, far better than Resharper c++.
What I think is needed is refactoring tools, or some edit dialog for setting all those UPROPERTY flags and modifiers.
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
18727 Posts

Posted - Feb 25 2016 :  12:29:48 PM  Show Profile  Reply with Quote
Assume I know nothing at all about UE, can you post a simple code example to explain what you are talking about and looking for?

What are the UPROPERTY flags and modifiers? Just macros, or something else? Custom refactoring commands, just for UE, are unlikely, but if this is just C++ code, then why not use the current refactoring tools?

zen is the art of being at one with the two'ness
Go to Top of Page

yatagarasu
Junior Member

14 Posts

Posted - Feb 26 2016 :  07:57:50 AM  Show Profile  Reply with Quote
Ughhh... Ok, Unreal Engine have it's own metadata markdown system, based on define. Any reflected field in the class looks something like that,

UCLASS(ClassGroup = (MyGameObjects))
class ASomeActor
{
//...

UPROPERTY(Category = "Logic", VisibleInstanceOnly, BlueprintReadOnly, meta = (AllowPrivateAccess = "true"))
class UBaseDroneStateMachine* StateMachine;
};

Any class, struct, enum, class field or class function can be labeled with such Umacros. This Umacros have some possible arguments which are described in documentation, like here https://docs.unrealengine.com/latest/INT/Programming/UnrealArchitecture/Reference/Classes/Specifiers/index.html
Most of them are just flag values, some of them have string value (or bool) like Category, some of them are nested into meta group.

For now VA does not suggest any of them, when you type, only if you already typed one, VA somehow manages to suggest them (idk how it works =))), but usually VA suggest something completely unrelated. Would be cool to have some meaningful suggestions when typing these macros. And maybe some dialog to set them through a GUI way. (but that is just a dream)

Most of work with Unreal Engine is about filling this macros, so help of some tool would be great for developers. These macros are used to support Unreal Engine reflection system.


Go to Top of Page

yatagarasu
Junior Member

14 Posts

Posted - Feb 26 2016 :  08:01:54 AM  Show Profile  Reply with Quote
Also there is strict naming convetion in UE, like all UObject derived classes names start with U letter, except AActor derived classes which start from A letter, and all other classes can be named from whatever letter, but usually start from F )

Idk if VA type name suggestion scheme can be tweaked to ommit first letter from search. Because sometimes names are grouped by some rules, but their first letter differ. Like ADroneActor, UDroneBrainComponent, FDroneDescription.
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
18727 Posts

Posted - Feb 26 2016 :  12:52:53 PM  Show Profile  Reply with Quote
VA won't suggest symbols it does not know about. So if you want VA to know to suggest other symbols, you need to tell VA about them. A simple way of doing this is to add code like this to one of your files:

// telling VA symbols to suggest
#if 0
#define Category
#define VisibleInstanceOnly
#define BlueprintReadOnly
#endif


VA parses inactive code, so it will pick up the symbols as macros, so they will become known symbols that can be suggested.

Next, have you tried using VA Snippets for inserting some of the repeating pieces here? Inserting specific blocks of code / text is what VA Snippets are designed for:

http://docs.wholetomato.com/default.asp?W171

If you are going to have a group of related snippets, which seems possible here, this setting might help:

https://wholetomato.fogbugz.com/default.asp?W325

For excluding the first name from the search, where are you searching? The Find Symbol dialog searches all of the name, so you can start typing the middle of the name. For listboxes, the two settings:

VA Options -> Enhanced Listboxes -> Allow Acronyms and Shorthand
VA Options -> Enhanced Listboxes -> Prefer Acronym matches

are designed to help with typing part of the name, e.g. the middle of the name.

zen is the art of being at one with the two'ness
Go to Top of Page

yatagarasu
Junior Member

14 Posts

Posted - Feb 28 2016 :  05:04:47 AM  Show Profile  Reply with Quote
Thanks for hints, i will try them.
Go to Top of Page

yatagarasu
Junior Member

14 Posts

Posted - Oct 24 2016 :  04:38:25 AM  Show Profile  Reply with Quote
Another question for UE4 support - does VA reads project directories correctly?
UE4 generate nmake file project's, but it fills Source Directories in project properties.



But whole tomato does not show these folders in Source folder list defined by project.



So I don't know if Tomato is using these paths or not? And can they be used if not?
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
18727 Posts

Posted - Oct 25 2016 :  6:38:17 PM  Show Profile  Reply with Quote
Which IDE and version of VA are you using?

I have just created a simple VS2015 C++ console project with VA 2114. The solution contains a single project. When I then edit the project settings to add a Source Directory, and restart the IDE just to make sure that everything has been saved, and VA has had a chance to read it, the new directory is being listed in the VA options dialog.

So this should work, and does work under these conditions.

zen is the art of being at one with the two'ness
Go to Top of Page

ChrisG
Whole Tomato Software

USA
299 Posts

Posted - Oct 25 2016 :  7:10:17 PM  Show Profile  Reply with Quote
The issue is that the directories are listed under NMake, and not under VC++ Directories. Because of this Visual Assist does not see the additional include directories. (or if it does, it does not list them)

Go to Top of Page

ChrisG
Whole Tomato Software

USA
299 Posts

Posted - Oct 25 2016 :  7:15:59 PM  Show Profile  Reply with Quote
Or, did you have a different problem, yatagarasu?
Go to Top of Page

ChrisG
Whole Tomato Software

USA
299 Posts

Posted - Oct 25 2016 :  9:45:36 PM  Show Profile  Reply with Quote
One of our developers just cleared this up:

"The VA Options dialog only displays the directories that are defined in the VC++ Directories page. VA does read the nmake directories, but doesn't consider those directories to be 'platform' dirs -- so aren't displayed in the VA Options dialog.

The VA C/C++ Directories page only displays Platform directories -- symbols defined in those directories are considered 'system' symbols and are rendered with italics in the editor when the italic option is set. Since the UE directories are specified in the nmake configuration, symbols defined in the engine won't be rendered with italic."

So, Visual Assist is reading the directories properly, and you should not have to do anything special to make Visual Assist work with Unreal Engine 4.
Go to Top of Page

sean
Whole Tomato Software

USA
2817 Posts

Posted - Mar 09 2017 :  12:12:46 AM  Show Profile  Reply with Quote
case=86215 is implemented in build 2210.
Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Reply to Topic
 Printer Friendly
Jump To:
© 2023 Whole Tomato Software, LLC Go To Top Of Page
Snitz Forums 2000