File: SemanticSearch\SearchExceptionDefinitionItem.cs
Web Access
Project: src\src\Features\Core\Portable\Microsoft.CodeAnalysis.Features.csproj (Microsoft.CodeAnalysis.Features)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
 
using System;
using System.Collections.Immutable;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.CodeAnalysis.FindUsages;
using Microsoft.CodeAnalysis.Navigation;
using Microsoft.CodeAnalysis.Tags;
 
namespace Microsoft.CodeAnalysis.SemanticSearch;
 
internal sealed class SearchExceptionDefinitionItem(string message, ImmutableArray<TaggedText> exceptionTypeName, ImmutableArray<TaggedText> stackTrace, DocumentSpan documentSpan)
    : DefinitionItem(
        tags:
        [
            WellKnownTags.Error
        ],
        displayParts:
        [
            .. exceptionTypeName,
            new TaggedText(TextTags.Punctuation, ":"),
            new TaggedText(TextTags.Space, " "),
            new TaggedText(TextTags.StringLiteral, message),
            new TaggedText(TextTags.Space, Environment.NewLine),
            .. stackTrace
        ],
        nameDisplayParts: exceptionTypeName,
        sourceSpans: [documentSpan],
        classifiedSpans: [],
        metadataLocations: [],
        properties: null,
        displayableProperties: [],
        displayIfNoReferences: true)
{
    internal override bool IsExternal => false;
 
    public override Task<INavigableLocation?> GetNavigableLocationAsync(Workspace workspace, CancellationToken cancellationToken)
        => Task.FromResult<INavigableLocation?>(null);
}