ご理解の方。 TagsChangedはVisual Studioによって処理され、UpdateAtCaretPositionが返された後GetTagsを呼び出します。呼び出しシーケンスは次のとおりです(Runtime Flowを使用して作成)。
void BraceMatchingTagger.CaretPositionChanged(CaretElement{_blinkInterval=530, _newOpacity=1., _preferredXCoordinate=2., _preferredYOffset=88., _displayedHeight=15., _displayedWidth=1., _updateNeeded=false, _isClosed=false, _emptySelection=true, _isHidden=false, _forceVirtualSpace=false, _caretGeometryNeedsToBeUpdated=true, _isContainedByView=true, _overwriteMode=false}, CaretPositionChangedEventArgs)
void BraceMatchingTagger.UpdateAtCaretPosition(CaretPosition)
. BraceMatchingTagger.GetTags(NormalizedSnapshotSpanCollection)
. <GetTags>d__20.System.Collections.Generic.IEnumerable<Microsoft.VisualStudio.Text.Tagging.ITagSpan<Microsoft.VisualStudio.Text.Tagging.TextMarkerTag>>.GetEnumerator()
true <GetTags>d__20.MoveNext()
true BraceMatchingTagger.FindMatchingCloseChar(SnapshotPoint{position=27}, {, }, 7, .)
. <GetTags>d__20.System.Collections.Generic.IEnumerator<Microsoft.VisualStudio.Text.Tagging.ITagSpan<Microsoft.VisualStudio.Text.Tagging.TextMarkerTag>>.get_Current()
true...false <GetTags>d__20.MoveNext()
void <GetTags>d__20.System.IDisposable.Dispose()