The Actipro Blog

All the latest UI control development news from Actipro

SyntaxEditor .NET Languages Add-on - Lambda Expression IntelliPrompt


We’ve been adding some more updates to the SyntaxEditor .NET Languages Add-on for WPF/Silverlight in preparation for what might be the final 2011.1 maintenance release, and some of these are really exciting. 

Today I’d like to show a couple highly requested features for the add-on:  automated IntelliPrompt for lambda expressions and generic method type parameter inference.  That’s a mouthful, but it’s really helpful for advanced coders.  Let’s see some examples of how it works.

Generic Method Type Parameter Inference

Generic methods are C#/VB methods that have type parameters.  Generic methods can be invoked in one of two ways.  In the first way, you explicitly indicate the type arguments.  In the second way, you don’t indicate type arguments.  Instead, the compiler figures them out based on the parameters that are passed to the method.


In the screenshot above we have defined an Echo generic method that takes a T type parameter and returns a T value.  Our sample implementation just returns the same value that is passed in.

Back on line 9, we declare a variable called echo that gets implicitly typed from the result of the Echo method invocation.  We could have explicitly called the Echo method like: Echo<int>(1).  However in the sample we chose to implicitly call it instead.  Our resolver engine knows that we passed an integer literal to the method.  It figures out that Echo’s T type argument is an int and thus an int is the return value.  Then echo gets implicitly typed as an int, which we can see when we hover over it on the next line.  More...

SyntaxEditor .NET Languages Add-on - More Documentation Comment Editing Enhancements


The past few days we’ve been showing glimpses of enhancements being made for documentation comment editing in C#/VB when using the SyntaxEditor .NET Languages Add-on for WPF/Silverlight.  Today I’d like to show a video of yet some additional new features.

Documentation Comment Editing Features

These new features have been added to the .NET Languages Add-on and will be available in the next build:

  • Auto-insertion of stub comments when typing /// (C#) or ‘’’ (VB)
  • Auto-insertion of /// (C#) or ‘’’ (VB) when pressing Enter in a documentation comment
  • Auto-insertion of end tag when ending a start tag by typing a > character
  • Completion list that intelligently displays documentation comment tags based on current context
  • Quick info tips that display type/member documentation comments both from source files and binary assemblies, when comments are available

Watch a Video

Click the image below to watch a short video showing some of the new features:


SyntaxEditor .NET Languages Add-on - Documentation Comment Display Part 2


Several days ago, we showed how XML documentation comments from source files were making their way into the quick info tips when editing C#/VB (via our SyntaxEditor .NET Languages Add-on for WPF/Silverlight).

Today I’d like to show the other half of that, namely how XML documentation comment files for .dlls can also be pulled in and have their contents displayed in quick info.

In the WPF add-on, any time a binary assembly (from a .dll) file is referenced, probing will take place to try and locate a related .xml documentation comment file.  If found, it will be made available for use.  We have an  optimized design that streams its so that it’s never fully loaded in memory.

In the Silverlight add-on, we can’t access the normal folders where assemblies live due to security restrictions.  However if the Silverlight application is full trust, or if it embeds the .xml documentation files via other mechanisms like manifest resources, it can manually wire up the documentation comment files for use.

Once documentation comment files are available to a binary assembly, the documentation for types/members can be displayed in quick info.


In the screenshot above, we hover over the List<T>.Add method call.  Note how the summary documentation comments show.


In the next screenshot, we see a completion item description tip for the Enumerable.Count() extension method.  Again the proper summary documentation comments show.

These features make it much easier for end users to know what each type/member does and bring the add-on one big step closer to VS-like editing capabilities.  They will be in the next maintenance release.

SyntaxEditor .NET Languages Add-on - Documentation Comment Auto-Generation


Today I’d like to show some new enhancements to the SyntaxEditor .NET Languages Add-on for WPF/Silverlight that are coming in the next build: documentation comment auto-generation.

Say that you are starting to type some XML documentation comments for a method:


Note that on line 70 we have already typed // and are about to type a third / character.  With the new features for the next build, it will auto-insert appropriate stub documentation comments like this:


Following insert, the caret is moved between the summary tags so that documentation typing can begin immediately.

These same features work in Visual Basic as well and really make it easier for end users to quickly document code.

SyntaxEditor .NET Languages Add-on - Documentation Comment Display Part 1


Today I’d like to show some more enhancements to the SyntaxEditor .NET Languages Add-on for WPF/Silverlight, coming in the next build: documentation comment display for types/members defined in source code.



In the Silverlight SyntaxEditor screenshot above, you can see the mouse is hovered over a reference to the ConsoleWriter class.  Our add-on shows a quick info tip containing information about the type, and now even includes the XML comment summary for the type as well.  More...

SyntaxEditor .NET Languages Add-on - Upcoming Completion List Enhancements


In recent days, we’ve continued working on enhancements for the SyntaxEditor .NET Languages Add-on for WPF/Silverlight, specifically in the area of IntelliPrompt completion lists.  Today I’d like to show off some of these enhancements.

Auto-Display When Typing New Words

We’ve been able to update the completion provider to watch for certain scenarios when typing new words.  Such as after a using keyword.  In a number of scenarios where we know what is expected next, we are now automatically showing the completion list when the first letter of a new word is typed.


In the C# screenshot above, we’ve typed the using keyword, then space, then the letter s.  The completion list knew that namespaces are expected next, so it automatically showed a list of available namespaces, without the need for the user to press Ctrl+SpaceMore...