Hello all!
I bring to you my first Visual Studio extension: Specifier Editor!
I’ll just use the description from my gallery page since it conveys the information well enough:
**"A simple tool that adds a right-click context menu in the code editor, which opens a simple editor with (most) possible specifier options available for UE4 code tags (such as UPROPERTY, UFUNCTION, etc.)
This tool can generate an entire tag from a single code tag word, or edit an existing tag by parsing the contents.
This is my first Visual Studio Extension and my first time working with WPF; bugs are probably to be expected."**
Demo gify: SpecifierDemo1 4 GIF | Gfycat (Updated)
not exactly sure how to embed these and the original gif is too big it seems
So why use this if I have all the tags memorized?
Good question! Obviously you don’t have to, but I think this tool is great for new UE4 programmers and veterans alike. It organizes the tags into a nice UI that is easy to navigate and work with. In my case, I am porting code from a bp only project into a Cpp project, and having to make all of these specifiers for the large amount of variables present is going to be a headache…why not make it easier?
Installation instructions:
Simply search for ‘SpecifierTool’ in Visual Studio’s online extension window (Tools -> Extensions and Update -> Select the ‘Online’ tree on the left, type into the search box in the upper right), then click ‘Download’ and follow the prompts.
Or you can do a manual install by downloading from this link: Visual Studio Gallery page
If you would like to update your copy, simply follow these same instructions (the Extension window will provide an update option)
If you cannot update the extension via the Extension window, simply uninstall the extension and reinstall it.
Uninstallation instructions:
Simply remove it via the Extension manager (similar to the steps in Installation).
Changelog:
Version 1.3:
- Fixed bug involving partial word matches in specifier tags (i.e. 'Config' and 'GlobalConfig', etc.)
- Fixed case-sensitivity search preventing specifiers from being picked up if they did not match the expected case
- Greatly improved theme colors
- 'Theme aware' color selection to match the Visual Studio color theme
- Added UIMin, UIMax, ClampMin, ClampMax for UPROPERTY
- Added Units to UPROPERTY with all valid unit types
- Added ToolTip and ShortTooltip to all specifiers
Version 1.2:
- Added support for VS2017
Version 1.1:
- Added new option "Generate Specifier Here" in the same right-click context menu as the Edit Specifier command. This allows quick selection of a specifier and will generate it at the cursor position (and immediately open the editor)
- Added keyboard shortcuts (default: Alt-W for Generate Specifier, Alt-E for Edit Specifier)
Version 1.0:
- initial release
Notes/Future plans/Bugs/etc:
- This extension currently only supports Visual Studio 2015 + 2017!!!.
- The specifiers list can be edited in the Options menu under ‘Specifier Editor’. You can remove tags and rearrange their order there for each specific tag as you see fit.
- Specifiers that used a comma-seperated list (such as HideCategories) are not supported at current
- The context option does not currently detect which file type it’s editing; so the extension can be used outside of .cpp/.h files (whether this will change or not is undecided)
- Some specifiers may be flat-out missing; if so, feel free to notify me and/or link documentation to them
- All meta/advanced specifiers are hard-coded at the moment
- The parsing will ignore consecutive specifiers placed together without spaces; the first specifier found programmatically will be used
- In the future, tooltips and/or links to documentation pages for specifiers should be added
- In the future, should probably gray out/disable/uncheck specifiers that are not compatible with each other (such as EditDefaultsOnly with EditAnywhere)
- Option changes may not save. Probably something I am doing wrong with the configuration code; will look into it later on
No eta on any changes ever because this project is merely done in my spare time
Now without further adieu:
Download: Follow ‘installation instructions’ or manual download
Feel free to leave feedback/comments/etc. about it!