WPF Studio build 503 was just released and includes a lot of updates to our WPF products, some being major new features. I’ll review some of the big updates made to SyntaxEditor and Docking/MDI below.
 |
SyntaxEditor for WPF
Lexical parsing terms renamed to fit industry standards
In the previous builds, we called the object that performed lexical analysis a lexical parser. After preparing to add our new syntax/semantic parsing core framework, we renamed instances of the term “lexical parser” to “lexer”. This allows us to use the industry standard pair of terms “lexer” and “parser” going forward where a lexer is what performs lexical analysis, and a parser is what performs syntax/semantic analysis.
Multi-threaded core parser framework support added to languages
The addition of parser support to SyntaxEditor is a huge step forward for the product since it brings us closer to being able to implement the add-ons we have in our SyntaxEditor for WinForms product. What is a parser? As mentioned above, it’s anything that performs syntax/semantic analysis. Our additions in this build provide an automated mechanism where text changes in a document can auto-trigger a call to a parser via a worker thread to parse document text and return a result asynchronously. Most often, the result is some sort of AST, syntax error list, symbol tree, etc. We don’t yet have a grammar that will generate ASTs like we did in WinForms, however our parser mechanism is very open and easy to use. So it’s simple to wire up your own parser code or a call to any third party parse like MGrammar or ANTLR.
Two new QuickStarts demonstrating how to implement a parser
Two new QuickStarts have been added that show off how to create a basic parser for a language, have it called from a worker thread on text changes, and respond in the UI when the parse data result is returned asynchronously.
|
 |
Docking/MDI for WPF
Magnetism
Magnetism is a feature that kicks in when dragging rafting windows or standard MDI windows. When the corners or edges of the window being dragged get close to another corner/edge, the dragged window will snap itself next to the stationary window. You have total control over the sensitivity of the magnetism and how far apart the windows will snap.
Tab appearance customization, tinting, and blinking
Docking windows now have a number of properties that help you use custom brushes for tab display in various mouse states. In addition to that, tabs can be tinted to any color. This allows for tabs to be easily rendered similar to those in OneNote. Via the use of this feature, you can also create blinking tabs to notify the user that attention is required.
Easy primary document retrieval and change notification
Due to popular request, IMdiHost (the core MDI host interface implemented by both TabbedMdiHost and StandardMdiHost) now has a new PrimaryWindow property and PrimaryWindowChanged event. This property tells you the “main” document in the MDI area.
Icons for WindowControl
Icons will now show up on WindowControl, and accordingly on standard MDI windows.
Eight new QuickStarts
That’s right, we’ve added eight new QuickStarts with build 503 to show off both new features and some other interesting existing features. Be sure to check them out.
|