Subscribe (RSS)

Quick Links

Recent Posts

Tags

Categories

Archive

About Actipro

Actipro Software has been creating .NET user interface control products for Windows Forms since its inception. More recently, Actipro has become a pioneer in the .NET 3.0 WPF control development arena.
Monday, 8 September 2008 05:32 by Bill Henning

SyntaxEditor .NET Languages Add-on's IntelliPrompt improvements

We just released build 276 of SyntaxEditor and its add-ons.  This build has more general tweaks and bug fixes, along with some major updates to the IntelliPrompt capabilities for C#/VB via the .NET Languages Add-on.

Here are some of the major new updates.  There are a lot of small enhancements in IntelliPrompt across the board as well.

Anonymous Types

IntelliPrompt now works for anonymous types.  It will construct a type definition behind the scenes that contains the properties you specify and will use that type definition for constructing IntelliPrompt UI.

Anonymous

SyntaxEditor showing a member list for a property that is several levels deep in anonymous types

In the screen above, both abc and def are implicitly defined anonymous types.  You can see how SyntaxEditor correctly identifies the Now property on the abc anonymous type as a DateTime.

Extension Method Application

We have really enhanced the way that we determine which extension methods are applied to various types.  In previous builds there were a number of cases where extension methods could be applied to inappropriate types.  With our new code updates, the add-on attempts to resolve the parameters down to really determine if an extension method applies to a type, even if the type is a complex generic one.

Extension1 

A member list showing how extension methods are applied properly based on the source type

In the screen above, note how the AGoodTextExt extension method appears in the member list, while ABadTestExt does not since the latter is for enumerable int objects, not enumerable char objects.

Extension Method Quick/Parameter Info

The code updates also include some more updates to the quick and parameter info that is displayed for extension methods.  It will attempt to resolve the generic parameters into their "real" types for display to the end user.

Extension2

A member list showing how LINQ's Enumerable extension methods have been applied to a list variable, and how the quick info correctly displays the return value as IEnumerable<int>

In the screen above, the quick info used to say IEnumerable<T> in previous builds, but now says IEnumerable<int>.  We will be making other improvements in this area in the future.

Implicit Variable Declarations in VB

While our C# implementation has had var support for a while, we now have implicit variable declarations working in VB as well.

VBImplicit

A member list displayed for a variable that was implicitly declared

In the screen above, SyntaxEditor correctly displays the members for the ApplicationException type since that type was used to initialize the variable var.

Tags:   , ,
Categories:   New features | Windows Forms
Actions:   E-mail | Permalink | Comments (2) | Comment RSS



Tuesday, 15 July 2008 02:15 by Bill Henning

SyntaxEditor .NET Languages Add-on IntelliPrompt Improvements

We just released build 275 of SyntaxEditor and its add-ons.  This build has a lot of minor tweaks and bug fixes that have been made over the last 2-3 months.

In addition there have been some major enhancements in the .NET Language Add-on's IntelliPrompt capabilities.

Delegate Improvements

SEDelegates

A demo of how a delegate can be called like a method with full IntelliPrompt

Delegates now have full IntelliPrompt capabilities, just like calling methods.  Note how in the screenshot above, a generic delegate is called and a DateTime value is properly returned as the value.  The member list shows the members of the DateTime return value.

Generic Methods

SEGenMethods

A member list displayed for the result of a generic method call

Generic methods can have their return type defined by the parameter that is passed to them.  In the example above, a field called ADateProp which is of type DateTime, is passed as a parameter to the generic method Echo.  IntelliPrompt correctly recognizes that per the definition of Echo, the return type is also DateTime.

Constructed Types

SEConstructedType

Parameter info displayed for a method invoked directly off a constructed type

This feature has been highly requested... IntelliPrompt that functions on a constructed type expression.  In the screenshot above, the Append method's parameter info is displayed, following a new StringBuilder() call.

Beginnings of Lambda Expressions

SELambda

A member list displayed for a lambda expression variable

Lambda expressions are a new concept in the latest C# and VB updates by Microsoft.  In the example above, a member list is displayed for the x variable introduced in a lambda expression.  IntelliPrompt determines that x is a DateTime based on the Func<DateTime, bool> declaration.

Note that not all Lambda expression IntelliPrompt works at this time but we will continue to improve IntelliPrompt in all areas as we move forward.

Enjoy the updates!

Tags:   , ,
Categories:   Actipro | New features | Windows Forms
Actions:   E-mail | Permalink | Comments (0) | Comment RSS



Wednesday, 9 April 2008 09:12 by Bill Henning

SyntaxEditor Generic Method IntelliPrompt Enhancements

The latest build 274 of SyntaxEditor's .NET Language Add-on includes several improvements for generic method support.

First, if you call a generic method (defined as T GenMethod<T>()) passing the generic parameter type like (GenMethod<int>().), the member list that is displayed will be for int.

GenericMethods

Demonstrates how the generic extension method ElementAt is applied to a string array twice and SyntaxEditor correctly recognizes the final return value is a char

Second, generic methods on extension methods now resolve types properly as well.  This is especially useful with Linq as you can see in the screenshot above.  Above, ElementAt is a generic extension method defined on Linq's Enumerable class.  The first time it is applied, the string type is returned and the second time it is applied, the char type is returned.

We still have a little more work to do with generic methods but these are some great steps forward!

Tags:   , ,
Categories:   Actipro | New features | Windows Forms
Actions:   E-mail | Permalink | Comments (0) | Comment RSS



Wednesday, 19 March 2008 04:32 by Bill Henning

New SyntaxEditor .NET Languages Add-on IntelliPrompt Features

The latest build of the .NET Languages Add-on released today includes some great new features related to automated IntelliPrompt.

Extension Methods

This build adds IntelliPrompt support for extension methods, a new feature found in C# 3.0 and VB 9.0. 

Extension methods allow you to define new methods on existing types without having to sub-class or recompile the original type.  This means you can add functionality directly to types for which you don't have source code.

 ExtensionMethodsSource

The member list displayed for an Int32 parameter, showing how source-defined extension methods are applied

In the sample above, note the extension method ToStringExt is defined on the static ExtMethodProvider class.  In the TestMethod, we press "." to show a member list for its Int32 parameter val and that locates the ToStringExt method, including it in the available members for the Int32 parameter.

Extension methods can be defined in compiled assemblies or in code as above.  The most common use of extension methods is with LINQ.

ExtensionMethodsLinq

A member list displayed for a string array variable, showing how extension methods from LINQ's classes have been added to the normal members that appear on an array

Delegates

The latest build adds IntelliPrompt support for delegates.

Delegate

The parameter info tip displayed for a delegate invocation

EditorBrowsableAttribute Support

Support for recognition of the EditorBrowsable attribute is now available.

 EditorBrowsable

Note that the member list shows an entry for _AVisibleClass but not for _AnInvisibleClass since that class has EditorBrowsable(Never) applied to it

When the EditorBrowsable(EditorBrowsableState.Never) attribute is applied to a type or member, that type or member will no longer appear in member lists.

The attribute is recognized for both assembly-defined and source-defined types and members.

Tags:   , ,
Categories:   Actipro | New features | Windows Forms
Actions:   E-mail | Permalink | Comments (0) | Comment RSS



Tuesday, 11 March 2008 15:56 by Bill Henning

SyntaxEditor .NET Languages Add-on Adds Generic Type IntelliPrompt

The latest build for SyntaxEditor's .NET Languages Add-on now includes complete generic type IntelliPrompt functionality.

DotNetAddOnGenericTypeMembe

A parameter info tip displayed for a generic type... notice how it has resolved the return type to String

This has been a highly requested feature by customers.  Now you can fully utilize the power of generic types such as generic collections, etc. with the .NET Languages add-on.

For instance, in the screenshot above, after you would complete the indexer reference and press ".", the member list that would display would be for type String.  Type String was declared as the "U" generic parameter in MyCollection, which was passed down to the base Collection generic type.  Therefore the String type was used to construct Collection.  With the most recent build, SyntaxEditor's .NET Languages Add-on can recognize that and provide proper IntelliPrompt related to it.

Enjoy the new features!

Tags:   , ,
Categories:   Actipro | New features | Windows Forms
Actions:   E-mail | Permalink | Comments (0) | Comment RSS