[PLUGIN] UE4 Visual Studio IntelliSense Macro Specifiers

Hi everyone.

I wrote a small extension for Visual Studio 2015.
It adds UCLASS, UFUNCTION, USTRUCT, UINTERFACE, UPROPERTY and metadata macro specifiers to VS IntelliSense.
v2.0 update:
LightBulb suggestions to remove invalid specifiers.

If you find it usefull\useless feel free to leave feedback or something.


VS Gallery: Download UE4 Intellisense VSIX
Sources: https://github.com/rxcompile/UE4Intellisense

347590c fix bug with specifiers with parameters (category=camera)
51c1c5b Update README.md
8bdefd1 +Added Suggetions provider
6ebc617 optimize regex for specifiers
ec7acd2 regex fixes
ad5c396 +metadata specifiers

Best regards, Anton.

Very nice indeed :slight_smile: I’ll grab that!

Yep, same here, thanks! :slight_smile:

Very awesome!

This is great, thanks! Definitely installing this.

My only concern is that with all of the extensions I need to make C++ usable in VS, loading the project is eventually going to take longer than compiling it :frowning: Resharper is already doing its best to make it that way it, haha.

This is super useful, only it doesn’t seem to work with ReSharper?

Unless there is something I’m not doing. Metadata specifiers are not showing up, even if I tell ReSharper to use native VS Intellisense. Macros normally always show u

Cant do much with perfomance issues you experience. This plugin is very simple, just registers new CompletionProvider and allocate static resources for completion suggestions on load.

Thanks for response.
Its very tricky to show metadata specifiers, so maybe i not cover all use cases. I appreciate if you can send a code sample where suggestions not show up inside meta=() specifier.

BTW Looking into making Resharper and\or VAX extension with same fuctional.

Don’t use Resharper with C++, it’s slow and will be the reason your VS locks up a lot.

Heh, no, I obviously don’t use Resharper with UE. Unfortunately I don’t have a 5000 GHz CPU. For smaller sized C++ projects it works fine though - it’s not as good as C# Resharper but it’s still quite useful. The problem with Resharper and UE4 is that the .generated.h files created by UnrealHeaderTool cause Resharper to re-parse all of the source code. So basically it works fine, you just have to never change any code or compile your project.

Pro tip: you can create a keyboard shortcut to disable Resharper (Resharper_ToggleSuspended in the VS shortcut settings). Very useful if you want to preserve your sanity when working with UE4!

Here are some functions I’ve defined in the header file for one of my classes.

	UFUNCTION(BlueprintCallable, Category = "Enemy")
		UMaterialInstanceDynamic* CreateAndSetDynamicMaterial(UPrimitiveComponent* Mesh, int32 ElementIndex);

	UFUNCTION(BlueprintCallable, meta = ( AutoCreateRefTerm = "ExcludedIndexes" ), Category = "Enemy")
		void CreateAndSetAllDynamicMaterials(UPrimitiveComponent* Mesh, TArray<int32> ExcludedIndexes);

	UFUNCTION(BlueprintCallable, Category = "Enemy")
		void SetMeshMaterialFlashAmount(UPrimitiveComponent* Mesh, float value);

	UFUNCTION(BlueprintCallable, Category = "Enemy")
		void SetFlashMaterialColour(float healthPercent, UPrimitiveComponent* Mesh, UCurveLinearColor* ColorCurve);	

On none of these, including UPROPERTY does intellisense appear with the usable specifiers for the used macro.

However, when not using ReSharper, the box appears with all the relevant specifiers as shown in the example in your first post.

This may be a conflict with ReSharper/VAX.

Oh, that. Yeah working with Reshaper\VAX is not guaranteed. I thought you talking about vanilla Intellisense not showing you some “meta” specifiers with this plugin.
Resharper use its own autocomplete solution which correlates with Intellisense. So you can use one or the other, not both.
This also applies to Visual Assist X.

Sold :smiley:
Thank you so much

UE4 intellisense v2.0

So, more than 100 people find that extention useful :slight_smile:
And i decide to make v2.0.
There is new cool (kind of) :

Yay! Now it suggests to delete not valid specifiers!

ToDo list:

  • add suggestions to remov one of collisioning specifiers (Blueptintable and NotBlueprintable).
  • fix user typos in specifiers names
  • ???

As always you can star project at https://github.com/rxcompile/UE4Intellisense.
Download at VS Gallery.

It will be cool if you provide some feedback and dont forget to leave requests. I am already running out of ideas what else can be usefull =)

Best Regards, Anton.

Grabbing this now, thanks bro


Just wanted to add that this extension is usable with ReSharper. As long as in the ReSharper intellisense options you set the intellisense to Visual Studio, instead of ReSharper’s implementation then it works fine. The upside being that ReSharper is still enabled, giving you intellisense (provided by VS) and ReSharpers formatting and code generation features.

As a plus, if you are running into low memory or performance issues I’ve found that disabling auto tune cached translation units in options>text editor>C++>advanced and setting it in the same page to a low number like 2 or 4 (depending on what it was previously set as) I’ve gotten a massive performance boost when using the editor and using intellisense in general.

Hopefully this can be of help to others too if people are having issues with Visual Studio performance and/or trying to get this nice extension working with a extension like ReSharper.

Thanks a lot RxDesu, Much appreciated.

Thanks RxDesu, I can finally stop misspelling these. Or writing a bunch of post its to go on my monitors…

This is like a second birthday for me.


Hey @RxDesu,

can you give me some hints on how to make it compatible with VS2017?

Thanks :slight_smile:

I tried converting the Addon to VS2017. It was my first ever try on working with VS-Extensions, so I have no idea what Im doing :smiley: But it seems to work.

Since this was my first try, I can’t guarrantee full functionality so you have been warned! From my own tests, it works with VS2017 Enterprise and Resharper C++.

Heres the VSIX:
Heres the Source Fork: GitHub - FrostByteGER/UE4Intellisense