The Actipro Blog

All the latest UI control development news from Actipro

Is there interest in a syntax-highlighting code editor control (SyntaxEditor) for Silverlight?

We’ve had several people e-mail us asking if our SyntaxEditor for WPF product will be ported to Silverlight.  Our efforts in this area will depend on how much interest there is in such a product.

SyntaxEditor for WPF is the premier syntax-highlighting code editor control for WPF.  A potential Silverlight version could contain a large subset of the features found in the WPF version.

We want to know what all you Silverlight devs out there think!  Please post some comment replies here or e-mail us and answer as many of the questions below as you can.  Your feedback will help determine if we move forward on a SyntaxEditor for Silverlight or not.


  1. The biggest question… is a syntax-highlighting code editor control something you would actually purchase and use in your Silverlight applications?
  2. Please rank in priority order the required features you would need at a minimum to make the control worth purchasing.
  3. Please rank in priority order the optional features that you’d like to see, but wouldn’t be absolutely necessary.
  4. If the information isn’t confidential, please give a general description of what you would be doing with the control and how specifically you’d be using it in your Silverlight applications.

Thanks for your comments!

Filed under: Actipro, Silverlight

WPF Studio integrates with and adds features to the official Microsoft WPF DataGrid

In the most recent WPF Studio 2009.1 builds, we've integrated with and enhanced Microsoft's open source WPF DataGrid.


The WPF DataGrid (from the WPF Toolkit) comes packed with lots of features and has very active and helpful community forums. Actipro has built two add-ons for the WPF DataGrid and added a variety of samples.  More...

SyntaxEditor for WPF adds robust hit testing features

The lastest build of SyntaxEditor for WPF added a very robust hit testing feature.  This is something that has been in the WinForms version for SyntaxEditor for a while and has been highly requested by our WPF customers.

The feature allows you to provide a Point (generally a mouse location) and SyntaxEditor returns detailed information about what is under the Point.  You can get offsets, text positions (line/col), text, tokens, etc.  More...

Filed under: Actipro, New features, WPF

SyntaxEditor for WPF’s MGrammar add-on adds AST construction and error reporting features

SyntaxEditor for WPF, our syntax-highlighting code editor control, has just made some big improvements to the Oslo Dataflow (MGrammar) Add-on.  The enhancements include the ability to asynchronously parse text and return AST and syntax error results.  These updates appear in the latest WPF Studio build.

What is the Oslo Dataflow (MGrammar) Add-on?

The add-on is a free component that any SyntaxEditor for WPF customer can use.  It allows you to easily integrate parsers created via MGrammar with SyntaxEditor.  Previously, the add-on supported tokenization (lexing) and was able to drive syntax highlighting within the editor, all with just a few lines of code, as described in this previous post.

Parsing, AST construction, and error reporting

The add-on now includes a new DataflowParser class that implements IParser.  When registered with your language, documents using the language that are changed (generally by user typing) automatically log a request to have parsing done.  The parsing requests are queued and call back to the IParser on a worker thread.  At this point the IParser performs a parsing operation.  In the case of DataflowParser, the parsing operation is a call to Oslo’s DynamicParser.  Our DataflowParser then returns an object of type IDataflowParseData, which has a property containing the AST graph node result along with a list of IParseError objects, if any.  The IParseError objects indicate syntax errors that occurred during the parse.


The screenshot above shows the updated sample included with WPF Studio.  It now listens to the document’s ParseDataChanged event, which is an event that fires whenever the document’s ParseData property is updated.  From this event, we write out the AST in the pane on the right and list the errors, if any, on the bottom.  More...

Filed under: Actipro, New features, WPF

WPF Studio 2009.1 build 505 released

We just posted a new WPF Studio build that addresses a measure issue found in the build 504 SyntaxEditor completion list.  It also updates the completion list to auto-resize the width based on current items in the list when filters are applied.

RibbonWindow received a number of changes to make it function and look better in Windows 7.  DataGrid got a minor Aero theme tweak and Editors got a small bug fix.

The new build is now live.

Filed under: Actipro, New features, WPF

WPF Studio 2009.1 build 504 released, adding DataGrid functionality, SyntaxEditor enhancements, and much more

We’ve just released WPF Studio 2009.1 build 504.  This is a huge update and includes some major new functionality that we’ll talk about in more detail over the coming days.  In this post though, let’s do a brief overview of some of the larger updates.

See our related forum announcement for exact details on what updates were made in each product.


DataGrid for WPF

After a lot of user demand, we’ve added DataGrid functionality to WPF Studio.  I’ve talked a lot about Actipro’s desire to embrace open source solutions as we move forward.  Here is another instance.

A lot of developers may not realize it but Microsoft has created an official WPF DataGrid that is open source and part of their CodePlex WPF Toolkit project.  The DataGrid is slated to be part of .NET 4.0’s native controls as well.  The DataGrid has many of the core features you’ll find in any grid offering.


What we’ve done is made a number of extra enhancements and behaviors, and added them to an open source project of our own.  This project also includes new Office themes that match the look of our other controls, along with updated system themes that look better than the default.  Best of all, we’ve made the control take advantage of our ThemeManager so that you can switch themes on the fly.

Our open source Contrib add-on is available on CodePlex at:

We have taken things another step forward by offering an interop assembly that makes it simple to integrate our the masked and part-based editors in our Editors for WPF product with the DataGrid.

Be sure to download the build 504 evaluation to see the new DataGrid functionality in action.


SyntaxEditor for WPF

MGrammar add-on gets asynchronous parsing, error reporting features

The MGrammar add-on has been updated to use our parsing framework.  Now when the Oslo Dataflow add-on is being used, as the end user types in the SyntaxEditor, a parse request is queued up and dispatched to a worker thread.  The worker thread parses the entire document in the SyntaxEditor and builds an AST and list of syntax errors.  These are returned back to the SyntaxEditor asynchronously, with no UI thread blocking.

The MGrammar Integration sample has been updated to show an AST and error list that are built asynchronously as you type.

Free ANTLR add-on added

A popular request for years has been the ability to integrate the ANTLR parser with SyntaxEditor.  With today’s release, this is now easy and can be done with very little code.  The ANTLR add-on allows you to enable automated asynchronous parsing calls to the ANTLR parser, similar to the functionality described above for MGrammar.

This previous blog post describes the functionality in detail.

A new sample project has been added to demo this add-on.

Completion list enhancements (auto-shrink, performance improvement)

We’ve implemented another popular request item for completion lists: the ability to auto-shrink the visible list of completion items as the end user types.  This functionality is found in Visual Studio when editing VB files.

See this previous blog post for details and a series of screenshots showing the functionality.

The performance of the completion list item matcher algorithms has been improved in a number of areas too.

Hit testing

This build adds the ability to perform detailed hit testing within SyntaxEditor.  You simply pass it a Point and it returns an object that tells you everything you need to know about what is at that location.  We’ve added a new QuickStart to show off the hit testing feature.

Brainstorming SyntaxEditor for WPF’s IntelliPrompt signture info

We’re currently working on multiple SyntaxEditor for WPF features at the same time, while brainstorming some others that will be implemented in the future.  One of the features we plan on implementing in the future is signature info, which is akin to the feature known as parameter info in Visual Studio 2008.  The term “signature” is used in the VS 2010 object model and does make more sense than “parameter” since sometimes the displayed items in the popup don’t have parameters.

We’d like to know what features you’d like to have implemented for signature info.  We have some initial ideas laid out here but some helpful comments from our customers would be:

  • How would you like to populate the data for this feature?
  • What sort of object model design would you like?  We know there will be an ISignatureInfoSession, but should we separate things out to have the “items” of the session be called ISignature, and have each one of those have zero or more ISignatureParameter items?  This way the signature could more easily know which parameter is current and therefore which to bold.
  • Which options would you like to see?
  • Have any other suggestions?

Please post comments here or email us with suggestions.  Now is the time to get your thoughts in!

Filed under: Actipro, In development, WPF

Actipro Blog 2009 Q2 posting summary

What we accomplished

Quarter 2 of 2009 was extremely busy for us.  It saw the introduction of two new major WPF products: SyntaxEditor for WPF and Editors for WPF.  Both were part of the WPF Studio 2009.1 release and WPF Studio customers with active subscriptions received them free.

This release also included a new, more cost-effective bundle called WPF Essentials, which includes Docking/MDI, Editors, Navigation, Ribbon, Wizard, and the Shared Library, all for the low cost of $399.  If you are looking to get into WPF development, you won’t find a better bundle than that.

Since the release, we have continued enhancing our SyntaxEditor and Editors products.  SyntaxEditor saw UI-related find/replace functionality added and languages started using the service locator pattern.  Editors added a new TimeSpanEditBox and interop functionality was provided that allowed Editors to be easily used within PropertyGrid.  We added support for the Microsoft Pixel Shader Effects (WPF FX) Library with our transition controls.

Blog post list

Here is a quick categorized list of blog postings made in quarter 2 of 2009.  Sorry this is coming very late but better late than never!  We’ll make sure we are more on schedule next time.  More...


Next SyntaxEditor for WPF build adds completion list auto-shrink option

We’re really excited to announce a new option coming in the next SyntaxEditor for WPF build that automatically filters out items in a completion list that don’t match the currently typed text.  This feature can be seen in action when editing Visual Basic code in Visual Studio 2008.  The completion list essentially hides items that can’t be matched with the text you’ve typed, allowing you to drill down and focus on the important items instead of keeping the entire list of items visible.

The next build introduces a new ICompletionSession.CanFilterUnmatchedItems boolean property that when set to true enables this feature.  We’ve also updated our completion list filtering QuickStart in the next build to show off the feature (see highlighted CheckBox):


Unmatched item filtering in action

Let’s walk through an example to show how it works.

Filter1 We press Ctrl+Space to show the completion list.  No text is used to initialize the list so all items are visible.

Filter2 We now type an i character, which removes a number of items that don’t contain an i in them.  Note that in this sample we have our acronym and shorthand item matchers active, not just the standard starts-with item matcher.  Therefore if an i is found anywhere in an item’s text, it will be considered matchable.  More...

Filed under: Actipro, New features, WPF

SyntaxEditor for WPF to add integration with ANTLR parsers

We’re very excited to officially announce that the next build of WPF Studio will contain a new assembly that makes it easy to automatically call an ANTLR-generated parser via worker threads whenever SyntaxEditor document text changes.  This new assembly will be included free for use by any of our SyntaxEditor for WPF customers.

What is ANTLR?

ANTLR, ANother Tool for Language Recognition, was created by Terence Parr and is one of the most widely-used parsing frameworks available.  ANTLR is a framework for constructing recognizers, interpreters, compilers, and translators from grammatical descriptions containing actions in a variety of target languages. ANTLR provides excellent support for tree construction, tree walking, translation, error recovery, and error reporting.

New Sample to Demonstrate ANTLR Add-on

We’ve built a new sample project that demos a calculator parser generated by ANTLR.  This new sample project will be in the next WPF Studio build.


The sample has a SyntaxEditor instance at the lower left.  You can enter a simple integer mathematic equation into the editor.  When text changes occur, SyntaxEditor uses its advanced parsing framework to call an ANTLR parser in a worker thread.  The parser returns its AST result back to the document asynchronously when it completes.  More...

Filed under: Actipro, In development, WPF