About Actipro SyntaxEditor for UWP

A syntax-highlighting code editor control and parsing suite.

Actipro SyntaxEditor for UWP is a powerful text editing control that is packed with features for efficient code editing, including syntax highlighting, code outlining, parsing, line numbers, block selection, IntelliPrompt UI, zooming and adornments. It  has many of the same code editing features found in the Visual Studio code editor.

Actipro SyntaxEditor for UWP is designed for use in online IDE (integrated development environment) applications, however there are many other applications out there than can take advantage of such a control. Over 20 sample languages are included to get you started (such as C#, HTML, Javascript, and more), and optional premium add-ons with advanced functionality for editing C#, VB, XML, and JavaScript are available as well. For developers who need to support editing other code languages, custom syntax languages can be developed and distributed with your applications. Actipro offers a unique parser framework with SyntaxEditor that features grammars written in C#/VB using EBNF-like notation, customizable AST construction, advanced error handling/reporting, easy code injection, a complete debugger UI, and much more. It's also simple to integrate any external parser with SyntaxEditor.

Actipro SyntaxEditor for UWP Features

  • Syntax Highlighting - Highlighting styles can be completely customized by the end user for each code language. SyntaxEditor comes with syntax highlighting for over 25 languages.
  • Code Outlining (Folding) - The end user can collapse ranges of text defined by the language. A small adornment represents the collapsed text, and hovering over it shows the contained text.
  • Selection Modes - While standard continuous selection mode is generally used, a special block selection mode is available that supports simultaneous editing of multiple lines.
  • Indicators - Indicators are special 'tagged' regions of text that display a glyph in the indicator margin and optionally highlight the text range with special styles. Text range-based (e.g. breakpoint) and line-based (e.g. bookmarks) indicators are supported.
  • Adornments - A powerful adornment layer system allows for any sort of custom UI elements (images, shapes, and even controls) to be added anywhere within the text area. Easily add squiggle lines, background highlights, or any other decoration to text.
  • Search (Find/Replace) - A flexible search API is built into the control with the ability to highlight matches. End users can use incremental search to search without UI, or the search view control that has a ready-to-go find/replace user interface.
  • Word Wrap - When word wrap is enabled, long lines will wrap at the editor view's edge to a new line so that all text can be visible without horizontal scrolling.
  • Single-Line Mode - An optional single-line mode renders the control like a regular TextBox, but with all the syntax-highlighting, selection, IntelliPrompt, and other features that make SyntaxEditor great.
  • Split Views - Split the editor into multiple resizable views so that different portions of the same document can be viewed and edited in the same editor control.
  • Undo and Redo - Edits to a document are tracked in undo and redo stacks, allowing an end user to backtrack to an earlier version of the document's text.
  • Block Indent/Outdent - Select multiple lines and press Tab to block indent them to the next tab stop, or Shift+Tab to outdent them.
  • Visible Whitespace - Tab and space characters can optionally be represented by glyphs that show which character generated whitespace.
  • Delimiters - Languages can easily support delimiter (bracket) highlighting and delimiter auto-completion.
  • Drag and Drop - Drag and drop text within the editor view, or externally to/from other applications where you can determine the drop's textual representation.
  • Margins - Line number, outlining, selection, ruler, and word wrap editor view margins ship with the control. Custom margins can be created as well.
  • Printing - Built-in dialogs support configurable document printing. Document title, line number, word wrap glyph, and page number margins are included.
  • Bi-Di Editing and IME - All text is edited in Unicode characters and bi-directional editing is fully supported. IME can be used to input extended character glyphs.

This product is fully-loaded with additional advanced features like over 100 edit actions, line modification marks, commenting/uncommenting, auto-case correct, current line highlighting, read-only regions, code block selection, mouse wheel zooming, clipboard operations, a default context menu, macro recording and playback, text statistics, export to HTML/RTF and much more.

IntelliPrompt - IntelliPrompt UI features are an aid to the end user that support code completion and provide contextually-aware information about surrounding code.

  • Completion List - Displays a number of auto-complete options for the end user to choose in response to Ctrl+Space. Features include description tips, filters, numerous matching algorithms, matched text highlights, and more.
  • Parameter Info - Displays helpful popup hints about an invocation that is being typed, and its parameters. Multiple invocation overloads can be displayed in a single popup, using arrow keys to toggle between them.
  • Quick Info - Provides detailed information about what is at the current caret location or under the mouse. Use the mini-HTML markup language to apply rich formatting to the displayed text.
  • Code Snippet Selection - Shows a completion list for navigating through code snippet folders and selecting an applicable code snippet to insert. Code snippets use the same Visual Studio file format.
  • Code Snippet Templates - Each code snippet can declare multiple fields of text. When a code snippet template session is activated, the text is inserted and the end user can tab between the fields to edit their values.
  • Navigable Symbols - Drop-downs positioned above the editor can show all available root symbols (generally types) and members within the selected root symbol. The selections update as the caret is moved in the editor.

Premium SyntaxEditor Language Add-ons - Enhance the SyntaxEditor code-editing experience with features like parsing, syntax error reporting, automated code outlining, and IntelliPrompt.

  • .NET Languages Add-on - Advanced C# and Visual Basic syntax language implementations.
  • Web Languages Add-on - Advanced XML, JavaScript, and JSON syntax language implementations.
  • Python Language Add-on - Advanced Python syntax language implementation.
    • These premium add-ons are sold separately from SyntaxEditor and control bundles.

Documents and Syntax Languages

  • Documents - Documents are edited by SyntaxEditor and provide access to the text being edited. Each document is associated with a syntax language that provides the control with editing feature configurations and logic.
  • Snapshots - The complete document text is available any time via snapshots, where each snapshot is an immutable versioned thread-safe copy of the text at the time it was created.
  • Lexers - Lexing is the process of scanning text and using logic or pattern-matching to break it up into meaningful tokens. These tokens drive syntax highlighting and are examined by a higher-level parser.
  • Parsers - Parsing can run in a worker thread and is the process of performing syntax and/or semantic analysis on a text, and outputing some sort of parse data, generally an AST (abstract syntax tree) and syntax error collection.
  • Syntax Languages - SyntaxEditor comes with over 25 open source syntax languages that feature syntax highlighting:
    • Assembly
    • Batch file
    • C
    • C#
    • C++
    • CSS
    • HTML
    • INI file
    • Java
    • JavaScript
    • Lua
    • Markdown
    • MSIL
    • Pascal
    • Perl
    • PHP
    • Powershell
    • Python
    • RTF
    • Ruby
    • SQL
    • VBScript
    • Visual Basic
    • XAML
    • XML
      • Need to support other code languages? No problem, you can custom develop syntax languages using all of SyntaxEditor's rich feature set.

LL(*) Parser Framework - The LL(*) Parser Framework is Actipro's own framework for constructing robust text parsers that work standalone or with code editor controls.

  • The framework features grammars that are written in C#/VB using EBNF-like notation, customizable AST construction, advanced error handling/reporting, easy code injection, a complete debugger UI and much more.

Other Features

  • Code Fragments - There can be situations where an end user should only see and edit the contents of a specific method or property, or perhaps only a certain statement or expression. Code fragments support this scenario, enabling full parsing and automated IntelliPrompt.
  • Language Designer - This application ships with SyntaxEditor and aids in the creation of syntax languages. It can perform code generation for a number of language features and even includes a debugger for grammars written using the LL(*) Parser Framework.