As mentioned in a previous post, we have been working on refactoring the core internal implementation of our SyntaxEditor code editor control on the WPF, UWP, and WinForms platforms. This effort (codenamed vNext) is being made to bring all three platforms onto the same codebase for easier updating moving forward, and to enhance features wherever possible.
The past three weeks or so, we've been plugging along on refactoring a lot of the internals of SyntaxEditor's IntelliPrompt UI features so that the same codebase can be shared across the WPF, UWP, and WinForms platforms.
While the WPF and UWP version's APIs are pretty much staying the same (with a couple minor tweaks to completion filters), the WinForms version will see some massive new capabilities, especially with completion.
IntelliPrompt Features Summary Video
Let's dig in and see a visual summary of some amazing completion list features that will be available in the all three SyntaxEditor vNext platforms. This video shows the WPF SyntaxEditor editing a Python document using our advanced Python Language Add-on.
Toggle Button and Tab Completion Filter UI
The completion list allows for toggle button and tab filters to be added. Toggle button filters allow you to check the kinds of items you wish to see in the completion list. If nothing is toggled, then all results are displayed. Tab filters let you select between two or more main options, with one being an "All" option.
While the current WPF and UWP versions already support toggle button and tab filter UI, this is a new feature for the WinForms version. And in vNext, the toggle buttons work more like they do in Visual Studio 2017.
Filtering Unmatched Items
As you type, the completion list filters out items that don't match. This is an option already available in the WPF/UWP versions, but is new for the WinForms version.
Matched Text Highlights
When typing text, the letters in each item that match will be highlighted in the list. This feature makes it clear why an item is matched and is especially useful when not filtering unmatched items, or using some more advanced item matcher algorithms like acronym or shorthand.
This feature is already available in the WPF version, but is new for the UWP and WinForms versions.
Python Language Add-on
As described in this previous post, the Python Language Add-on is new for the WinForms version of SyntaxEditor.
We've also updated the IntelliPrompt completion in the add-on to dynamically show toggle button and tab filter UI based on the items that are present. For instance, in the animation above when there were no classes available in the list, there was no "Classes" toggle button in the UI.
As described in this previous post, the WPF and UWP Metro icons used in IntelliPrompt have been drawn from scratch as vector icons and will render crisp and clear on any high DPI monitor.
The WinForms version is getting Metro icons as well, whereas they only had Classic icons before.
We have IntelliPrompt completion, parameter info, and quick info completed for all three platforms. Next is to knock out code snippet UI and then all IntelliPrompt features should be about done.