Tweets by @Actipro
Please take some time to learn more about us and our product offerings.
Another highly-requested feature, drag and drop, has been implemented and is ready to go in SyntaxEditor for WPF in the 2011.2 version. This feature allows SyntaxEditor to drag and drop text within itself, or with external controls.
In today’s post, I’d like to show off another highly requested feature coming to SyntaxEditor for WPF/Silverlight in the 2011.2 version: code fragments!
There are often cases where a customer wants to use our advanced C#/VB languages from the .NET Languages Add-on to allow the user to edit either a method body, or even simply an expression. The problem is that for automated IntelliPrompt to continue working, there must be a valid containing class, member, etc. In these scenarios though, the developer doesn’t generally want the end user to be able to see or edit those.
Code fragments is a perfect solution for this scenario. Documents now allow you to optionally set header and footer text. When set, this text is prepended (header) and postpended (footer) to the document snapshot’s text when it is submitted to the language’s parser.
Here’s the new sample for this feature:
You can see that the middle editor is normally what an end user would see, just a set of C# statements. However when the C# parser gets text from that editor to parse, it actually sees the concatenation of the header/fragment/footer text together, and builds an AST and reports syntax errors accordingly. In the screenshot, there is a syntax error squiggle line after firstItem since it expects a close parenthesis.
In the screenshot above, I’ve displayed a completion list for the firstItem variable. This variable was implicitly typed to be an int because its initializer came from the result of a LINQ method on a List<int>, which came in as a parameter from the containing method in the header text.
That’s really cool stuff! With this feature you can now edit statements or an expression in an editor with full IntelliPrompt capabilities. And this all will work seamlessly with any custom language too!
This new feature will be released as part of the 2011.2 version.
In our last couple posts, we revealed the new IntelliPrompt parameter info features coming to SyntaxEditor for WPF/Silverlight in the 2011.2 version. Today I’d like to show off another highly-requested feature coming in that version: single-line edit mode.
Many of our customers have asked for the ability to have a single-line mode without any scrollbars that would still have all the editing and visualization capabilities of SyntaxEditor, and that’s just what will be delivered in v2011.2.
A new SyntaxEditor.IsMultiLine property can be set to false to make the editor render like this:
In the top editor, we’re using the advanced XML language in the Web Languages Add-on. You can see how I started typing a new tag and I have full syntax highlighting and automated IntelliPrompt, just like in a normal multi-line SyntaxEditor control. Squiggle lines are also present, indicating syntax errors.
We’re very excited to get this new feature out into your hands in the next version.
These features can also be implemented in your own custom languages as well, since the .NET Languages Add-on uses the core parameter info UI model provided with the SyntaxEditor control. In the upcoming 2011.2 version of SyntaxEditor, we’ve added documentation and new samples that show how to enhance your own languages with automated IntelliPrompt parameter info.
Let’s see some screenshots of the new samples:
The parameter info UI will also be available for use by any other custom language implementations as well, and we’ll be adding new samples to show such usage. Without further ado, let’s see the new functionality as it is implemented for the .NET Languages Add-on.
This screenshot shows the parameter info displayed for a C# variable’s indexer. The variable is implicitly typed and resolves to List<int>. Note how both the documentation comments for the indexer and the documentation comments for the current parameter are displayed.