Actipro SyntaxEditor for WinFormsSyntaxEditor is a powerful text editing control that is packed with features for efficient code editing, including syntax highlighting, line numbers, block selection, IntelliPrompt UI, split views, code outlining, semantic parsing, ASTs, and much more. |
SyntaxEditor 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, split views, single-line mode, custom languages, and much more. It has many of the same code editing features found in the Visual Studio code editor. SyntaxEditor is designed for use in 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 editingC#, VB, and XML are available as well. Feature DetailSyntaxEditor is a syntax-highlighting code editor control that allows you to bring a Visual Studio-like code editing experience into your own applications. You'll find a wealth of editing and visualization features right out of the box. Syntax HighlightingHighlighting styles can be completely customized by the end user for each code language. SyntaxEditor editing HTML with language transitions to CSS, Javascript, etc. Advanced Editing CapabilitiesSyntaxEditor has all the advanced editing capabililies you'd expect to find in a premium code editor, such as:
Over 100 edit actions are included with SyntaxEditor that cover everything from basic caret movement and selection to features such as tabification, character/word/line transposition, etc. Word wrap, line modification marks, block selection, visible whitespace, and a bookmark IntelliPromptCompletion ListThe completion list popup is used to display a number of code completion options to the end user, not only providing intelligent information about the code being edited, but also improving the productivity of the end user by supporting "Ctrl+Space" functionality. A completion list that has a description tip displayed Description tips show more information about items via the use of rich formatted content. Parameter InfoIntelliPrompt 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. They support our mini-HTML markup language that applies rich formatting to the displayed text. Parameter info displayed for a VB Console.WriteLine call Quick InfoQuick info tips can be used to give more information about what is at the current caret location or under the mouse. Just like parameter info, they support our special markup language. Quick info displayed for an XML attribute Code SnippetsA code snippet is a fragment of code or text that you can store in an Visual Studio-compatible XML file and reuse at a later time. When a code snippet is activated, it inserts its text into SyntaxEditor. Selecting a code snippet to activate If any fields are declared in the code snippet, they are highlighted within the inserted code. This allows the end-user to easily identify what data needs to be entered to complete the code snippet. If more than one field use the same declaration, then the secondary fields are flagged as dependent on the primary field for the declaration. They automatically update whenever the text in the primary field is updated. Editing the fields of an activated code snippet Smart TagsThe IntelliPrompt smart tags flag text characters with a small box that appears underneath the text. Whenever the mouse hovers over the box, a larger box containing an icon and a drop-down arrow is displayed, along with a tooltip if tooltip text is provided. Clicking on the popup triggers an event in which you can respond by displaying a dialog or a menu. A smart tag popup opened, following a paste Code Outlining (Folding)SyntaxEditor has complete support for code outlining, also known as code folding. Syntax languages can automatically choose where to create outlining nodes (based on tokens, AST's, etc.) or the end user can choose to create outlining nodes via selected text. When a node is collapsed, a customizable text adornment denotes where the collapsed node is. Hover the mouse over the adornment to see the collapsed node's text. SyntaxEditor showing automatic code outlining of CSS code Certain nodes such as #region nodes can be marked to collapse by default. The outlining margin renders the outlining node hierarchy and allows for easy toggling of outlining node expansion. IndicatorsSpan indicators are indicators that apply to a range of text. Spelling errors (indicated by wavy lines) and breakpoints are excellent examples. Span indicators flow and can resize with text as it is modified. They can render the contained text using alternate foreground and backgrounds, draw custom marks, and render a glyph in the indicator margin. Demonstration of some span and line indicators Line indicators, such as bookmarks, apply to a single document line and can render a glyph in the indicator margin. They track with a specific document line so if lines are inserted above the line with a line indicator, the line indicator is moved down with its designated line. Bracket HighlightingWhen the caret is next to a defined bracket, such as parenthesis or curly braces, highlights can render the bracket and its matching bracket. Hotkey commands are available to jump or select to the matching bracket. Single-Line Edit ModeSyntaxEditor supports a single-line mode that renders just like a regular TextBox. This enables you to have a simple TextBox but with all the syntax-highlighting, selection, IntelliPrompt and other features that make SyntaxEditor great for editing code. A SyntaxEditor in single-line edit mode, editing a HTML snippet MarginsWhile the SyntaxEditor editor views have numerous built-in margins (indicator, line number, outlining, etc.), SyntaxEditor offers an extensibility point where a custom margin can be added to editor views. Documents and LanguagesSyntax LanguagesSyntax languages are a core piece of the text/parsing framework. They basically encapsulate all functionality for a particular code language that is being used within a SyntaxEditor control. This is everything from various types of parsing all the way to simpler features like determining word breaks or performing line commenting. Over 20 full source sample language definitions are included with SyntaxEditor for common languages like Assembly, Batch files, C, C++, C#, CSS, HTML, INI files, Java, JScript, Lua, MSIL, Pascal, Perl, PHP, PowerShell, Python, RTF, SQL, VB.NET, VBScript, and XML. Custom language definition can easily be created, thereby making it possible to build a code editor for any proprietary language. Mergable LanguagesWhile SyntaxEditor's flexible dynamic language definitions allow for nearly any language to be defined, sometimes it is necessary for more than a single language to be used. An ASP.NET language would most likely have HTML as a root language with tokens that can transition into ASP.NET, CSS, JScript, and VBScript languages on the fly. SyntaxEditor fully supports transitions between parent languages to child languages. This feature allows you to support the complicated language switching requirements of modern web languages and code generation templates. Lexers and ParsersLexing is the process of scanning text and breaking it up into meaningful tokens that can be examined by a higher-level parser, and used to drive syntax highlighting features in the editor. Regular expression-based and hand written lexers are supported. Parsing is the process of performing syntax and/or semantic analysis on a text, and outputing some sort of parse data, generally an AST. SyntaxEditor supports the automated calling of parsers via worker threads following text changes. Any custom or third-party parser can be called and used with SyntaxEditor. Code FragmentsCode fragment editing is useful in situations such as where you want an end user to only see and edit the contents of a specific method or property, or perhaps only a certain statement or expression. When using any language that has a parser, this type of editing is easily achieved with SyntaxEditor. Automated IntelliPrompt features for the language continue to function normally too. Code fragment editing is achieved by setting a header and footer text property on the document. Neither the header nor footer are visible to the end user but for parsing purposes, they are pre- and post-pended to the document's text being edited by the end user. This allows for a complete, valid document to be parsed, even though the end user is only modifying a portion of it. Parser GeneratorA parser generator is a tool that takes a language grammar that you define and builds a code-based parser from that. The parser is intended to be used in the semantic parsing stage of the of the document modification parsing sequence. SyntaxEditor includes a parser generator than can be used to help support features like AST construction and syntax error reporting. The SyntaxEditor parser generator builds a top-down parser that uses LL(k) and outputs code that is easy to read like a recursive descent parser. Export to HTML and RTFSyntaxEditor has built-in functionality for exporting syntax-highlighted text content to a string or file in HTML and/or RTF formats. Options are also available for auto-copying text in these formats when clipboard operations are performed. Text StatisticsText statistics are a powerful feature that provide statistics about text in a document. By default, there are numerous text statistics available such as line, sentence, word, character counts, and even readability scores. Languages can choose to customize the statistics by supplying additional ones like commented-line counts, etc. Searching (Find/Replace)General Search FunctionalityAll of the standard find/replace options are available, such as match case, match whole word, search up, multiple search pattern providers (regular expressions, wildcards, etc.), scope options, etc. Regular expression searches return captures and support substitutions. Find/Replace DialogA find/replace dialog is included with SyntaxEditor that provides all the functionality you'd find in an IDE. PrintingThe display of various Print and Print Preview dialogs is as easy as a simple method call. SyntaxEditor includes a number of settings that affect printouts only, and not the editor views. A WYSIWYG print preview dialog Other ControlsSyntaxEditor comes packaged with a FontDropDownList control that can be used on an Options dialog to select a non-Symbol Font for use in a SyntaxEditor. The FontDropDownList control filters out any symbol fonts such as WingDings and shows any fixed-width fonts in bold type. FontDropDownList and TextStylePreview controls SyntaxEditor also includes a TextStylePreview control that can be used on an Options dialog to demonstate text style settings to an end user. The TextStylePreview control supports the display of foreground color, background color, font, border around text, wave lines, and more. It can display exactly how a highlighting style affects text. Add-onsSyntaxEditor offers a number of premium add-ons that can be used to integrate advanced parsers and pre-built syntax languages with your applications. Optional Premium Add-ons (Sold Separately).NET Languages Add-onThe .NET Languages Add-on provides automated IntelliPrompt completion lists, parameter info, quick info, code outlining, parsing, AST construction, syntax error reporting, a resolver, and more for C# and Visual Basic documents. Automated IntelliPrompt features for C# and VB All you have to do is configure a "project resolver" with references to other assemblies and code, and you instantly get a Visual Studio-like editing experience. Web Languages Add-onThe Web Languages Add-on provides automated IntelliPrompt completion lists, quick info, code outlining, parsing, AST construction, validation, syntax error reporting, end tag auto-complete, formatting, and more for XML documents, driven using XML schemas. Automated IntelliPrompt features for XML Quickly create advanced XML editors with SyntaxEditor and this add-on. |