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

The Actipro Blog

Tag Cloud

  • apps
  • blog
  • charts
  • code writer
  • docking
  • editors
  • intelliprompt
  • micro charts
  • navigation
  • propertygrid
  • ribbon
  • shared library
  • silverlight
  • syntaxeditor
  • themes
  • universal
  • views
  • web site
  • winforms
  • winrt
  • wpf
  • xaml

Tweets by @Actipro

Month List

  • 2018
    • April (1)
    • February (1)
    • January (2)
  • 2017
    • December (2)
    • November (3)
    • October (1)
    • August (1)
    • July (1)
    • June (1)
    • May (1)
    • April (1)
    • March (3)
    • January (2)
  • 2016
    • December (1)
    • November (1)
    • October (1)
    • August (3)
    • July (2)
    • June (1)
    • May (3)
    • April (2)
    • March (5)
    • February (8)
    • January (2)
  • 2015
    • December (1)
    • November (3)
    • October (4)
    • August (3)
    • July (4)
    • June (2)
    • May (5)
    • April (6)
    • March (1)
    • February (2)
    • January (3)
  • 2014
    • December (2)
    • November (2)
    • October (4)
    • September (10)
    • August (2)
    • July (1)
    • June (2)
    • May (5)
    • April (3)
    • March (8)
    • February (6)
    • January (5)
  • 2013
    • December (4)
    • November (5)
    • October (7)
    • September (5)
    • August (3)
    • July (6)
    • June (6)
    • May (7)
    • April (7)
    • March (9)
    • February (2)
    • January (7)
  • 2012
    • December (4)
    • November (7)
    • October (5)
    • September (7)
    • August (5)
    • July (9)
    • June (11)
    • May (12)
    • April (6)
    • March (11)
    • February (11)
    • 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 SubBlog Actipro (571)
  • RSS feed for SubBlog Apps (18)
  • RSS feed for SubBlog Blog Summary (34)
  • RSS feed for SubBlog Customer Showcase (1)
  • RSS feed for SubBlog General (44)
  • RSS feed for SubBlog In development (248)
  • RSS feed for SubBlog New features (300)
  • RSS feed for SubBlog New product (79)
  • RSS feed for SubBlog Promotion (3)
  • RSS feed for SubBlog Silverlight (203)
  • RSS feed for SubBlog Tips and tricks (5)
  • RSS feed for SubBlog Universal Windows (23)
  • RSS feed for SubBlog Visual Studio 2008 (2)
  • RSS feed for SubBlog Windows Forms (46)
  • RSS feed for SubBlog Windows Vista (10)
  • RSS feed for SubBlog WinRT (95)
  • RSS feed for SubBlog WPF (424)
  • RSS feed for SubBlog XAML (50)

About Us

Actipro Software is a leading provider of .NET user interface controls for the WPF, UWP, 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.

SyntaxEditor Navigable Symbol Selector Part 1

July 9, 2012 at 9:09 AM
by Bill Henning (Actipro)

BlogPostBanner

Our next 2012.1 builds of SyntaxEditor for WPF and Silverlight will be adding a new ancillary control to the SyntaxEditor product:  NavigableSymbolSelector.

Navigable Symbols

Navigable symbols are symbols declared within a document to which the end user may wish to move their caret.  For instance in a language such as C#, navigable symbols would be things like type and member declarations.

A new language service has been added that can optionally be implemented.  Its only task is to return navigable symbols for a document that uses the language.  It's implemented in such a way that a multi-level hierarchy of navigable symbols can be created.

This sort of feature can be used to help drive the UI of external controls such as a type/member drop-down or even a document outline treeview.  These sort of external controls can help the end user visualize a document's structure, and the content for each item in the controls can fully utilize rich markup (images, colors, etc.).

NavigableSymbolSelector Control

The new NavigableSymbolSelector control is our implementation of a control similar to Visual Studio's type/member drop-downs.  It attaches to a SyntaxEditor instance and checks to see if the language supports the new INavigableSymbolProvider service.  If so, it uses that service to populate its drop-down(s).

A "Simple" Language Sample

Let's see how this looks in our "Simple" language sample.  We've updated one of our Getting Started series samples to implement this new service and show drop-down UI (via NavigableSymbolSelector) within a toolbar:

NavigableSymbolSelectorSimple

For our "Simple" language, we've told the NavigableSymbolSelector to show a single drop-down, which will render the list of functions declared in the editor.

Run-Time Functionality

Basically if we do these simple tasks:

  • Add a NavigableSymbolSelector control to the UI.
  • Bind it to a SyntaxEditor instance.
  • Implement the INavigableSymbolProvider language service on the current language.

We get all this functionality for free from the NavigableSymbolSelector control:

  • Automatic display of all symbols defined in the current document, that updates as document changes occur.
  • Symbols are sorted alphabetically within the drop-down.
  • As the editor caret moves, the selected symbol in the drop-down is automatically updated to be the closest enclosing or nearby symbol.
  • When the end user clicks on a different symbol in the drop-down, the caret navigates to that symbol declaration.
  • When the caret is not directly within a symbol's declaration but is near one, it will appear grayed out.  This helps the end user visualize whether they are actually in a valid symbol declaration or not.  (WPF only)

We've designed this control to work directly with the new INavigableSymbolProvider language service.  This allows any custom language to fully support the control.

Summary

These new features will be in the next 2012.1 builds of our WPF and Silverlight controls.

By default the control displays two drop-downs, and we'll show this in our next blog post, where we demonstrate the implementation of the INavigableSymbolProvider language service and usage of the new NavigableSymbolSelector control with our .NET Languages Add-on's languages.

TaskDownload TaskLiveDemo TaskBuyNow

Tags: wpf, silverlight, syntaxeditor, intelliprompt
Filed under: Actipro, In development, New features, Silverlight, WPF
Permalink | Comments (0)

Related posts

SyntaxEditor Navigable Symbol Selector Part 2In our previous post, we talked about the new NavigableSymbolSelector control being added to the nex...SyntaxEditor XML Add-on - Navigable SymbolsToday I'd like announce a great new feature coming to the SyntaxEditor Web Languages Add-on (WPF, Si...SyntaxEditor grammar/AST framework part 2: Introduction to symbols and EBNF termsIn the previous post, we gave an overview about what we’ll be covering in this multi-part walkthroug...

Pingbacks and trackbacks (1)+

October 1, 2012 at 04:15  

Actipro Blog 2012 Q3 Posting Summary

Actipro Blog 2012 Q3 Posting Summary

The Actipro Blog - WPF, WinRT XAML, Silverlight, and WinForms Development

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