• Products
  • Download
  • Purchase
  • Support
  • Company
Actipro Software company logo
Twitter Follow Actipro RSS Subscribe (RSS Feed)

The Actipro Blog

Tag Cloud

  • aero
  • blog
  • docking
  • editors
  • gauge
  • intelliprompt
  • navigation
  • propertygrid
  • ribbon
  • shared library
  • silverlight
  • syntaxeditor
  • themes
  • views
  • winforms
  • wpf

Latest Twitter News

November 21, 2011 at 11:14 AM
#WPF Studio 2011.2 is out now! Includes enhanced themes for native WPF conrtols and new SyntaxEditor features. http://t.co/uEMCaGPG

September 26, 2011 at 1:25 PM
If you'd like to see our #WPF / #Silverlight SyntaxEditor code editor control ported to Metro, provide feedback here: http://t.co/xXBNIDTi

September 15, 2011 at 8:31 PM
If you want to see SyntaxEditor eventually show up in Win8's #xaml UI, be sure to add your support to this MS thread: http://t.co/FBjz6TuC

August 15, 2011 at 1:47 PM
New SyntaxEditor IntelliPrompt parameter info feature docs/samples ready for the 2011.2 #WPF and #Silverlight releases. http://t.co/ezoYIjv

August 2, 2011 at 2:40 PM
First look at new automated IntelliPrompt parameter info coming to our C#/VB editor control in #WPF / #Silverlight http://t.co/CUz6O1T

Twitter Follow us on Twitter

Month List

  • 2012
    • February (3)
    • January (2)
  • 2011
    • December (2)
    • November (7)
    • October (2)
    • September (1)
    • August (5)
    • July (3)
    • June (6)
    • May (5)
    • April (8)
    • March (4)
    • February (5)
    • January (9)
  • 2010
    • December (9)
    • November (10)
    • October (4)
    • September (8)
    • August (12)
    • July (9)
    • June (7)
    • May (6)
    • April (7)
    • March (6)
    • February (6)
    • January (4)
  • 2009
    • December (2)
    • November (2)
    • October (12)
    • September (3)
    • August (11)
    • July (10)
    • June (6)
    • May (3)
    • April (7)
    • March (6)
    • February (8)
    • January (10)
  • 2008
    • December (10)
    • November (2)
    • October (3)
    • September (5)
    • August (5)
    • July (8)
    • June (4)
    • May (4)
    • April (10)
    • March (8)
    • February (1)
    • January (2)

Category List

  • RSS feed for ActiproActipro (289)
  • RSS feed for Blog SummaryBlog Summary (13)
  • RSS feed for GeneralGeneral (34)
  • RSS feed for In developmentIn development (150)
  • RSS feed for New featuresNew features (140)
  • RSS feed for New productNew product (30)
  • RSS feed for PromotionPromotion (2)
  • RSS feed for SilverlightSilverlight (71)
  • RSS feed for Tips and tricksTips and tricks (4)
  • RSS feed for Visual Studio 2008Visual Studio 2008 (2)
  • RSS feed for Windows FormsWindows Forms (20)
  • RSS feed for Windows VistaWindows Vista (10)
  • RSS feed for WPFWPF (235)
  • RSS feed for XAMLXAML (23)

About Us

Actipro Software is a leading provider of .NET user interface controls for the WPF, Silverlight, and WinForms frameworks, and is most well-known for their SyntaxEditor syntax-highlighting code editor control.

Please take some time to learn more about us and our product offerings.

In development at Actipro – November 2008

November 20, 2008 at 11:21 PM
by Bill Henning (Actipro)

We’ve had a lot of requests from customers asking what we’re currently focusing our development efforts on.  Let me post some details on the work we’re doing right now.

SyntaxEditor for WPF

SyntaxEditor continues to be a main focus for our development time.  The past several weeks we’ve been more into the backend document/parsing functionality which is why we haven’t posted many updates here in the blog.  Unfortunately with those things, there isn’t much to show.  :)

Today I’d like to talk about a couple new features that have been in development recently.

Reducing Memory and Processing for Large Files

A key enhancement that we’ve been focusing on is making strong efforts to dramatically improve support for large files.

A previous post (Large file editing in SyntaxEditor for WPF looks great so far) described a number of improvements we already made in that area.

One key drawback to how SyntaxEditor 4.0 does semantic parsing (not normal lexical parsing for highlighting) is that it creates a full text string copy of the document right before parsing occurs and the semantic parsing works on that.  While this is fast and ok for small-medium size documents, there are two bad things about this design.  First, it takes time to construct a full string copy of the document.  Usually this is pretty fast in practice though.  The more important thing is the memory usage involved.  We now essentially have two full copies of the document in memory, one stored by the document and the copy that will be used for semantic parsing. 

So you may be asking, why is a copy made for semantic parsing?  The reason is that semantic parsing works on a worker thread so that it doesn’t interfere with the UI response speed.  Say you kick off a semantic parsing operation and while it’s executing the user is typing more into the document.  That would cause issues if the semantic parser was referencing the live document since all of a sudden, offsets may be invalid.  Therefore the semantic parser has its own immutable copy of the document text at the time the parser started, and we don’t need to worry about issues introduced by threading and user modifications during parsing.

Back to what’s new.  Now we have a way that stores text and is able to reuse most of the memory between text changes.  Best of all, each copy of the text between changes is completely immutable.  This means that:

  1. The text copies are completely thread-safe since they are immutable.
  2. There is no complete reconstruction of the text needed for passing to a semantic parser, thereby reducing processing time.
  3. Most of the memory used to store two or more copies of the text (between changes) is shared between the copies, thereby reducing overall memory usage dramatically.

So as you can see, with some of the improvements we’ve been working on, this will really help with editing large files where processing speed and memory usage issues come into play.

Custom Highlighting of Text

A lot of customers in the past have request an ability to integrate into the syntax highlighting engine and change certain spans before they are displayed to the end user.  We’ve developed a nice system that should allow for this.

Essentially the language first runs its lexer to parse text and determine how it should be highlighted.  Then you can optionally add in classes to layer on top of that.  Each layer can look at previously run layers and view them, alter them, or add completely new spans for syntax highlighting that override ones in previously run layers.

How can this be used?  Say you are using a C# language that we develop but you want to highlight instances of URLs in comments, and lets assume our C# language doesn’t do that by default.  This is where you’d let our default language syntax highlighting run, then you add in a layer on top of that which can examine the highlighting spans and even see the tokens used to create them.  You can look for comment text and if you find some, examine the text for a URL.  If found add a new syntax highlighting span in your own layer that overrides the highlighting in the lowest layer and underlines the text.  Each layer gets “merged” together so you could just have your span say to add underlines but use the lowest layer’s colors.

This is still work in progress but the concepts are mostly in place already and we see this as introducing a whole new level of flexibility that isn’t available in SyntaxEditor 4.0.

Alpha Version

We get daily emails asking for a release date.  We want to get everything completed as fast as possible but we are taking our time and trying to develop a solid framework that should support a new generation of code editing functionality.  That being said we are getting closer to having an alpha version with limited functionality ready for closed testing.  We still have some pieces to get in place first but we are getting closer each day.  Keep an eye on this blog.  We’ll post more details soon.

Editors for WPF

The second main product we’re working on is Editors.  This product’s controls are intended to be used embedded in grids, property grids, or used standalone.

One of the core controls that will be offered in the Actipro Editors product is a parts-based editor. This editor will be extremely useful for working with objects like DateTime, as it allows the individual fields, such as the month or year, to be modified and configured independently. For example, this means that the "month" can be restricted to a static list of items (e.g. Jan, Feb, Mar, etc.) or the "day of the month" can be restricted to a specific range based on the current month (e.g. 1-28/29 for February).

Additionally, an associated spinner control can be used to update the active field, such as the "day of the month" or the "year". A drop-down button will be available, which can show a popup using any control or controls. These controls can be used to edit any or all of the fields. For example, a calendar and clock could be used (as seen in Microsoft Vista) to modify either the date or time of a DateTime object.

We plan on offering several controls that derive from the parts-based editor and are specifically designed for some common types, such as DateTime. This will get you up and running faster for the common types, while still allowing you to build your own parts-editor for your own types.

There are a lot of other features that we planned for this control, which we’ll get into in future posts.

Tags: wpf, syntaxeditor, editors
Filed under: Actipro, In development, WPF
Submit to DotNetKicks...
Permalink | Comments (1)

Related posts

Actipro Blog 2008 Q4 posting summaryWe’ve been very active with the Actipro Blog over the past year and plan on continuing to use ...Actipro's WPF Product Roadmap - June 2008We've had a lot of interest from customers regarding our product roadmap for WPF development.  ...Actipro's WPF Product Roadmap - August 2008Our previous WPF product roadmap posting presented the post-WPF Studio v4.0 development goals we hav...

Comments

December 1, 2008 at 06:34  

Christoph Brändle

awesome, the new editor i am looking forward too, i suggested something like that, so well done

Christoph Brändle

Comments are closed
Copyright © 1999-2012 Actipro Software LLC. All rights reserved.
Home Actipro Software | Products | Download | Contact Us