In This Article

Converting to v22.1

All of the breaking changes are detailed or linked below.

SyntaxEditor Drag and Drop Updates

The Drag and Drop functionality has been enhanced to provide more control over the experience.

Previously, any non-null value assigned to the PasteDragDropEventArgs.Text property within a handler for the SyntaxEditor.PasteDragDrop event would indicate that drag-and-drop was allowed, but this limited advanced scenarios such as drag-and-drop with custom objects or dropping onto read-only documents. Going forward, the accepted operation assigned through PasteDragDropEventArgs.DragEventArgs will be used to indicate Copy, Move, or None operations. Refer to the Drag and Drop topic for details on customizing drag operations.

SyntaxEditor Tagging Updates

Previously, any ITagger which implemented the IDisposable interface would be disposed when detached from an instance of the TagAggregatorBase class. Since taggers are frequently reused, this could lead to issues if the tagger was accessed after it was disposed.

New ITaggerBase.NotifyTagAggregatorAttached and ITaggerBase.NotifyTagAggregatorDetached methods have been added for more granular control over the lifecycle of a tagger. Taggers which derive from TaggerBase can override the OnTagAggregatorAttached and OnTagAggregatorDetached methods to respond to these notifications and more accurately determine if/when a tagger should be disposed.

The following changes were made to tagging-related interfaces:

SyntaxEditor Python Language Add-on Updates

The Python parser grammar has been updated to support v3.9.5 syntax.

Python v2.x has been officially end of life for some time now, so we removed support for it. The PythonVersion enum was removed, and all APIs that had a PythonVersion parameter have had that parameter removed.

SyntaxEditor .NET Languages Add-on Updates

The C# parser grammar has been updated to support v8.0 syntax.

SyntaxEditor RegexCompletionItemMatcherBase Updates

The RegexCompletionItemMatcherBase.GetRegex method added an additional argument in v22.1.1 to indicate if the regular expression should include capture groups. Previously, all regular expressions included the capture groups, and this could impact matching performance when capture groups were unnecessary.

Any custom classes which derive from RegexCompletionItemMatcherBase will need to add the additional argument and update the logic to only use capture groups (i.e., parenthesis) in the pattern when requested.