protected override Task ProduceTagsAsync(
            TaggerContext <BraceHighlightTag> context, DocumentSnapshotSpan documentSnapshotSpan, int?caretPosition, CancellationToken cancellationToken)
        {
            var document = documentSnapshotSpan.Document;

            if (!caretPosition.HasValue || document == null)
            {
                return(Task.CompletedTask);
            }

            var options = GlobalOptions.GetBraceMatchingOptions(document.Project.Language);

            return(ProduceTagsAsync(
                       context, document, documentSnapshotSpan.SnapshotSpan.Snapshot, caretPosition.Value, options, cancellationToken));
        }