Refactored the design of documents and snapshots to track the actual line terminators used in text instead of internally always normalizing line terminators to LF only.
Updated all methods for text retrieval to return document text with the actual line terminators by default, while still allowing normalization to other line terminator kinds.
Added properties to ITextSnapshot to return the inferred line terminator for a document snapshot's text and whether all lines uniformly use that same line terminator.
Added the ITextDocument.NormalizeLineTerminators method to ensure all line terminators in a document are of the same kind, and new edit actions to invoke its logic.
Added shorter-named values to the LineTerminator enumeration.
Added the ILineIndicatorTag interface for line-based indicator tags and updated line-based indicator APIs to use that interface.
Added SyntaxEditor.LineNumberMarginCurrentLineForeground and LineNumberMarginCurrentLineBackground properties.
Refactored the internal document text storage mechanism to improve performance and memory usage.
Changed the default value of TextStylePreview.Text from 'AaBbCcXxYyZz' to 'ij = I::oO(0xB81l);'.
Renamed several types and members to fix a misspelling of 'mergable' to the proper word 'mergeable'.
Updated the Language Designer to generate more modern code.
Updated regular expression search patterns to support non-capturing group syntax.
Updated the search overlay pane to render the Find textbox with a red border when invalid regular expression syntax is detected.
Updated the default editor context menu to show InputGestureText based on SyntaxEditor.InputBindings if the associated RoutedCommand does not have a KeyBinding.
Updated the SyntaxLanguage.PlainText property to return a cached instance.
Moved all regular expression-related types to the regex engine reimplementation in the Core assembly.
Merged the DisplayItemClassificationTypeProvider class into the BuiltInClassificationTypeProvider class.
Removed the Text assembly's DisposableObject class in favor of the DisposableObjectBase class in the Core assembly.
Refined the implementation of several core structures.
.NET Languages Add-on
Improved IntelliPrompt capabilities within top-level statements.
Shared
Added several new extension methods for DependencyObject that can be used to interact with the logical tree.
Added several new extension methods for Visual and Visual3D that can be used to interact with the visual tree.
Added support for numeric string formats (e.g., "0'*'") for NumericBadge.OverflowStringFormat.
Added InfoBar.IsSingleLineAllowed property that can be used to force a wrapped layout.
Added Card.IsResponsiveToPointerOver and IsResponsiveToPointerPressed properties that provide more discrete control over making a Card appear actionable.
Refactored licensing infrastructure and moved types to a new ActiproSoftware.Licensing namespace.
Created a new simpler licensing dialog that displays when necessary, guiding the user through next steps.
Moved the ObservableObjectBase class to the Core assembly in the ActiproSoftware namespace and improved APIs, including adding a SetValue method.
Moved the DisposableObjectBase class to the Core assembly in the ActiproSoftware namespace and made the Dispose method abstract.
Moved a few extension method classes to the Core assembly in the ActiproSoftware.Extensions namespace and improved APIs. The RoundMode, DateTimeFormatPattern, and DayOfWeekFormatPattern enumerations used by the extension methods were moved to the ActiproSoftware namespace.
Moved all types in the ActiproSoftware.Products.Logging namespace to the Core assembly in the ActiproSoftware.Logging namespace.
Moved the WeakEventListener class to the Core assembly in the ActiproSoftware namespace.
Updated DateRange.OverlapsWith logic to be inclusive of the start and end dates.
Updated some brush comparison logic.
Core
Added a new Core assembly that is referenced by all Actipro assemblies and contains various fundamental classes used across the product line.
Applications that use Actipro assembly references instead of NuGet packages must now also reference the Core assembly.
All
Added official support for Visual Studio 2026.
Added .NET assembly targets for .NET 10 and removed targets for .NET 6.
Added nullable reference type (NRT) annotations for all libraries and samples except some legacy/deprecated products.
Added MenuFactory that is used by all Actipro products which can be used to customize or replace built-in contextual menus.
Moved all assembly image and cursor resources to a root path level in each assembly.
Renamed the ActiproSoftware.Products namespace to ActiproSoftware.Properties.
Details for any breaking changes are in the 'Converting to v26.1' documentation topic.
Removed legacy XAML designer assemblies that are no longer supported by Visual Studio 2022 or higher.
To ensure a consistent API, all classes that implement INotifyPropertyChanged that do not derive from ObservableObjectBase have deprecated the NotifyPropertyChanged method in favor of new OnPropertyChanged and SetProperty methods that match ObservableObjectBase.
修复
SyntaxEditor
Fixed an issue where dragging an unnormalized selection of text could show the incorrect mouse drop cursor.
Actipro SyntaxEditor for WPF 25.1.42026年3月13日
功能
SyntaxEditor
Python Language Add-on
Improved how the Python resolver handles with statements.
Improved how the Python module loader processes string literal type annotations.
Improved support for Python return type annotations.
Shared
Added the TrustedCodeService class that manages dynamic loading of types in a secure-by-default manner. This change may be potentially breaking for certain rarely used features, so it's important to review the related documentation for details.
修复
SyntaxEditor
Fixed an issue where text containing extreme numbers of diacritics could cause problems with the text layout engine.
.NET Languages Add-on
Fixed an issue in the C# parser where nesting a record struct caused a parse error.
Actipro SyntaxEditor for WPF 25.1.32026年1月22日
功能
Python Language Add-on
Improved the Python resolver logic for resolving classes.
修复
Fixed an issue recently introduced in the Language Designer where lexical pattern group pattern types could incorrectly change from Regex to Explicit.
.NET Languages Add-on
Fixed an issue in the C# parser grammar where the 'record' keyword couldn't be used as a variable properly.
Shared
Fixed a rare exception that might be thrown from InfoBarPanel due to a negative calculated width of the center column.