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 ITaggerIDisposable
interface would be disposed when detached from an instance of the TagAggregatorBase
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
The following changes were made to tagging-related interfaces:
- New ITaggerBase interface added which is implemented by ITagger
. - The
Close
method,Closed
event, andTagsChanged
event were moved from ITaggerto ITaggerBase. - New ITagAggregatorBase interface added which is implemented by ITagAggregator
. - The
TagsChanged
event was moved from ITagAggregatorto ITagAggregatorBase.
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.