SyntaxEditor - Debugging Indicators

by Avatar Bill Henning (Actipro)
Wednesday, March 13, 2013 at 1:42pm

BlogPostBanner

Last week we blogged about how indicators are coming to the WPF and Silverlight SyntaxEditor controls in their 2013.1 versions.  Indicators are special "tagged" regions of text that optionally display a glyph in the indicator margin or highlight the text range with special styles.

In that previous post, we showed off bookmark indicators.  Today, I'd like to show off the other two built-in kinds:  breakpoints and current statement indicators.

Visual Debugging

A new QuickStart we are adding is a simulated debugging experience.  It allows you to set breakpoint indicators on various C# lines and then enter a debugger break state when executing the code.

Debugging1

You can see how three breakpoint indicators have been added.  Our implementation of breakpoint indicators includes an IsEnabled property.  When set to false, the indicator renders differently to reflect its disabled state.

Breakpoints in this sample can be added via the Toggle Breakpoint toolbar button.  Or alternatively, you can click the indicator margin (where the glyphs appear) to toggle a breakpoint.  We include the full source code for showing how to interact with that margin by intercepting mouse events.

Let's click the Run button.

Debugging2

The first breakpoint is located and we set a current statement indicator.  This kind of indicator uses a yellow arrow glyph and renders the background of its contained text in yellow.  It is set up to be higher in z-order than breakpoints.

This screenshot also shows how content providers for quick info can be set up for when the mouse hovers over a glyph.  The displayed quick info content can be generated on-demand.

Let's click the Run button again.

Debugging3

The current statement indicator uses the built-in indicator search API to locate the next enabled breakpoint.  It skips over the one in the middle that is disabled and lands on the third breakpoint.

Summary

Although the debugging experience here is simulated, by hooking up these indicator features to a debugger for your language, you can easily implement a full debugging UI for your code editor.

These new features and sample will be in the 2013.1 version.

TaskDownload TaskLiveDemo TaskBuyNow

SyntaxEditor - Bookmark Indicators

by Avatar Bill Henning (Actipro) - 2 comments
Thursday, March 7, 2013 at 1:40pm

BlogPostBanner

One of the feature areas we're adding to WPF and Silverlight SyntaxEditor controls is the ability to create indicators, which are special "tagged" regions of text that optionally display a glyph in the indicator margin or highlight the text range with special styles.

Several built-in indicator types will come with SyntaxEditor, one of them being bookmarks.

Bookmark Indicators

Bookmarks are line-based indicators, meaning they associate themselves with a single line of text.  Even as the line gets edited, they remain associated with a single full line.  They move around with the same logic found in Visual Studio's code editor.

Let's see what they look like:

Bookmarks

In this screenshot, we show three bookmarks rendered in the indicator margin on the left.  Our default implementation of bookmarks only renders glyphs in the margin, and doesn't highlight the marked line in the text area in any way (but you could optionally do this too if you wanted).

The toggle bookmark button checks to see if a bookmark is already on the caret's line.  If there is one, it removes it.  If there isn't one, it adds a new bookmark.  Clear all bookmarks removes them all from the document.

The previous and next bookmark buttons use our indicator search API to find another indicator based on an initial line.  In this case, we pass in the line that contains the caret and find the previous/next indicator.  If one is found, we move the caret to that line.

Summary

These features will be in the 2013.1 versions of the WPF and Silverlight SyntaxEditor controls.

We are still working on the design and implementation of indicators.  If you have any feature suggestions, now is the time to contact us!  Please comment here or e-mail us with your ideas and questions.

TaskDownload TaskLiveDemo TaskBuyNow

SyntaxEditor .NET Languages Add-on - VB Text Formatter

by Avatar Bill Henning (Actipro)
Wednesday, January 30, 2013 at 8:24pm

BlogPostBanner

Today I'd like to show off another new feature coming to the WPF and Silverlight .NET Languages Add-on:  Visual Basic text formatting!

As mentioned in our previous post, a similar feature is being added for the C# language.  Text formatters beautify code, making it more readable by adjusting whitespace.

Visual Basic Text Formatting Example

Let's see an example of some messy VB code loaded up in SyntaxEditor:

VB1

After formatting the document, the result is:

VB2

That's much nicer!

Intelligent Modifications

As described in a previous post, the best part about the text formatting feature is that SyntaxEditor only adjusts ranges it needs to.  It doesn't do a mass replace of the whole document.  For instance on line 23, it tweaks the leading whitespace on the line and removes the space before the end parenthesis, but doesn't touch the rest of the line.

All of the various text change operations involved in the formatting are merged into a single atomic text change that is added as a single undo stack item.  This makes it easy for the end user to quickly undo any formatting changes that were made.

Summary

These features will be in the 2013.1 versions of the WPF and Silverlight SyntaxEditor .NET Languages Add-on.

TaskDownload TaskLiveDemo TaskBuyNow

SyntaxEditor .NET Languages Add-on - C# Text Formatter

by Avatar Bill Henning (Actipro)
Wednesday, January 23, 2013 at 11:07am

BlogPostBanner

Today I'd like to show off a new feature coming to the WPF and Silverlight .NET Languages Add-on:  C# text formatting!

Text formatters beautify code, making it more readable by adjusting whitespace.

C# Text Formatting Example

Let's see an example.  Here is some messy C# code loaded up in SyntaxEditor:

CSharpFormatter1

When we format the document, the result is:

CSharpFormatter2

That's a lot more readable!  The text formatter also has an option for whether open curly braces appear on the same or next line.

Intelligent Modifications

The best part about this feature is that SyntaxEditor only adjusts ranges it needs to.  It doesn't do a mass replace of the whole document.  For instance on line 7, it does a tweak of the leading whitespace on the line but doesn't touch the rest of the line.

All of the various text change operations involved in the formatting are merged into a single atomic text change that is added as a single undo stack item.  This makes it easy for the end user to quickly undo any formatting changes that were made.

Summary

These features will be in the 2013.1 versions of the WPF and Silverlight SyntaxEditor .NET Languages Add-on.

TaskDownload TaskLiveDemo TaskBuyNow

New Maintenance Releases of WPF/Silverlight Controls

by Avatar Bill Henning (Actipro)
Monday, January 14, 2013 at 1:15pm

We just published new maintenance release of both the WPF and Silverlight controls.  These new builds fix a SyntaxEditor problem that we introduced in the previous maintenance release, and also have several other minor SyntaxEditor tweaks and fixes in them.

Update details are described here:

We recommend that you get these latest v2012.2 maintenance releases.