Code Writer v4.1 has been released to the Microsoft Store, containing a number of fixes for errors seen since the v4.0 release.

What’s New

FIXED: Several errors that could cause crashes.

About Code Writer

Code Writer is a free text and code editing app, downloadable from the Microsoft Store, and is used by thousands of people each day. Version 4.x requires the Windows 10 Fall Creators Update (version 1709) or later.

If you are a Universal Windows app developer, you can download a free evaluation of our Universal Windows Controls to use in your own apps. Code Writer makes use of our SyntaxEditor, Docking/MDI, PropertyGrid, and Editors controls. SyntaxEditor is of particular interest because it lets you add advanced code and text editing to your own apps.

We are pleased to announce the release of the 2019.1 version of our UWP Controls. This version includes the massive SyntaxEditor enhancements and updates we’ve been working on that have previously been described as “SyntaxEditor vNext” in the blog.

This announcement post contains the detailed list of updates in the 2019.1 version. Please be aware that Windows 10 Fall Creators Update (version 1709) or later and usage of the Microsoft's free 'Win2D.uwp' NuGet package are now required.

We also have published a maintenance release for the 2018.1 version. All of the updates are listed in this announcement post, and are included in the 2019.1 version codebase as well.

Cross-Platform Design

The internals of SyntaxEditor have been heavily refactored to support a cross-platform API across the WPF, UWP, and WinForms platforms. This allows SyntaxEditor features for the three platforms to be kept in sync moving forward. The 2019.1 WPF version of SyntaxEditor is already out and the WinForms version will follow later this year.

Text Rendering

Text rendering is many times faster than in the previous versions, making an enormous leap forward in performance.

Carets and Selection

Multiple Selections

Editing with multiple carets

Multiple selections, each with their own caret, are now supported. A new selection can be added by holding the Ctrl key when clicking in the text area or clicking on the selection or line number margins. Most edit actions have been refactored to fully support multiple selections. For instance, pressing Shift+Right Arrow will extend all of the selections by one character.

Typing and copy/paste with multiple selections

Copying text from multiple selections unions the selected text, joining each range's text with a line terminator. Pasting multi-line text into a view with the same number of selections as text lines being pasted will replace each selection with a related line from the pasted text.

Caret Movement

Carets now support movement at both the start and end of word wrapped lines.

The caret in virtual space past the end of a line

Virtual space is now supported at the end of lines when a new option is enabled. Block selections can be made in virtual space at the end of lines, even without line end virtual space being enabled. This prevents the caret from snapping to an offset when making a block selection, which can sometimes be problematic.

Drag/Drop

Text drag and drop support has been added, allowing text to be quickly moved around the editor.

Search Overlay Pane

A new search overlay pane displays over the upper-right of the active editor view when Ctrl+F (find mode) or Ctrl+H (replace mode) are pressed in a multi-line editor. A toggle mode button on the search overlay pane switches between find and replace modes, and all common search options are supported via toggle buttons and other controls. The search overlay pane can be closed by clicking the X button or by pressing Esc.

Basic find and replace operations are available in the search overlay pane

Ctrl+F3 will open the search overlay pane without focusing it, and will search forward for the currently-selected text. Ctrl+Shift+F3 will do the same but will search backwards.

F3 will search for the next match of the previously-used search options. Shift+F3 will search for the previous match of the previously-used search options.

If the SyntaxEditor.IsSearchResultHighlightingEnabled property is true, the search results can be highlighted while the search overlay pane is open. Closing the search overlay pane, clears the search result highlights.

IntelliPrompt

Vector Images

All Metro images are vector-based and show crisply in high DPI

The Metro Light and Metro Dark common image sets are now in vector form and render beautifully in high DPI.

Completion Filters

Completion filter buttons can narrow down the items in the list, such as all .NET types

Completion filters have been updated so when there are multiple active filters with the same ICompletionFilter.GroupName, any one of those filters can includes an item. Toggle button completion filters were changed to appear unchecked when they aren't active, which is more natural.

Ctrl Key Opacity Changes

The logic for making IntelliPrompt popups and the new search overlay pane semi-transparent when the Ctrl key is held has been refactored and improved. A brief delay was added before the opacity change occurs.

Splitting

Splitting the editor to show two stacked views is now possible.

Splitting a view, and the new option to drag to the bottom to keep the top view

The view splitter can be dragged to the bottom of the view to remove the split and keep the top view.

Scrolling and Zooming

Touch Scrolling

Smooth inertia-based touch scrolling has been added.

Auto ScrollBar Visibility

The horizontal and vertical scrollbars now support an Auto visibility option that will only display then when necessary.

Horizontal Scrolling

ScrollBar Acceleration

The vertical scrollbar accelerates its scrolling speed the longer you hold the up or down button.

Scroll API

New programmatic scroll methods were added that allow for aligning an anchor line to the top/center/bottom of a view with a specified pixel displacement, or scrolling by pixels.

Margins

Line Number Customization

A new line number provider language service was added that allows for complete customization of how line numbers are rendered in the line number margin. In addition, a property was added to the document that sets the line number for the first line in the document, defaulting to one.

Ruler Margin

A new optional ruler margin has been added.

Indicator Glyphs

The rendering of built-in indicator glyphs was improved.

TextStylePreview Control

The TextStylePreview control has been added that renders a highlighting style.

.NET Languages Add-on

IntelliPrompt completion list toggle button filters were added for the various kinds of items displayed in the list. The IntelliPrompt completion filter UI (toggle buttons and tabs) only shows based on the available items in the unfiltered list. For instance, if there are no types in the list, no 'Types' toggle button filter is visible.

Python Language Add-on

IntelliPrompt completion list toggle button filters were added for the various kinds of items displayed in the list. The IntelliPrompt completion filter UI (toggle buttons and tabs) only shows based on the available items in the unfiltered list. For instance, if there are no classes in the list, no 'Classes' toggle button filter is visible.

Web Languages Add-on

Full XML schema support, including validation and automated IntelliPrompt, has been added to the XML syntax language.

Edit Box Decimal Place Rounding

All numeric edit boxes in Editors now allow you to specify the exact decimal place at which to round numeric values.

A DoubleEditBox that rounds to three digits

SyntaxEditor Touch Interaction

Touch-based input for operations such as scrolling, zooming, and selection have been greatly refined so that they are more natural.

IntelliPrompt Quick Info and Parameter Info

The previous build started supporting the use of syntax highlighting for foreground colors. A problem was that it was using some app resources for background colors, meaning some scenarios could occur where the foreground text would blend with the background.

The fix for this problem made in this new build is to use the editor view's background color as the background of the quick info and parameter info tips. That ensures the foreground colors always render in a readable way in regards to the background.

Code Writer v4.0 is a major update for Code Writer and is currently being published to the Microsoft Store.

Since there have been so many improvements and updates made to the core editor control (which is our upcoming v2019.1 UWP SyntaxEditor control) as part of this release, we are gradually rolling the update out.

What’s New

New features shown include zoomed text area and multiple selections/carets

ADDED: New version of the core text editor control with massive performance improvements.

ADDED: Multiple selections added via Ctrl+Click, each with their own caret.

ADDED: Hold down a scrollbar's arrow for several seconds to cause scroll speed to increase.

ADDED: Drag and drop support.

ADDED: Improved logic for several edit commands.

ADDED: Improved IntelliPrompt UI in general, now with vector images.

ADDED: The Ctrl+W close command closes the app if no documents are open.

About Code Writer

Code Writer is a free text and code editing app, downloadable from the Microsoft Store, and is used by thousands of people each day. Version 4.x requires the Windows 10 Fall Creators Update (version 1709) or later.

If you are a Universal Windows app developer, you can download a free evaluation of our Universal Windows Controls to use in your own apps. Code Writer makes use of our SyntaxEditor, Docking/MDI, PropertyGrid, and Editors controls. SyntaxEditor is of particular interest because it lets you add advanced code and text editing to your own apps.