File: Internal\Navigation\InternalFSharpNavigableItem.cs
Web Access
Project: src\src\VisualStudio\ExternalAccess\FSharp\Microsoft.CodeAnalysis.ExternalAccess.FSharp.csproj (Microsoft.CodeAnalysis.ExternalAccess.FSharp)
// 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.
 
#nullable disable
 
using System;
using System.Collections.Immutable;
using Microsoft.CodeAnalysis.ExternalAccess.FSharp.Navigation;
using Microsoft.CodeAnalysis.Navigation;
using Microsoft.CodeAnalysis.Text;
 
namespace Microsoft.CodeAnalysis.ExternalAccess.FSharp.Internal.Navigation
{
    internal class InternalFSharpNavigableItem : INavigableItem
    {
        private readonly INavigableItem.NavigableDocument _navigableDocument;
 
        public InternalFSharpNavigableItem(FSharpNavigableItem item)
        {
            Glyph = FSharpGlyphHelpers.ConvertTo(item.Glyph);
            DisplayTaggedParts = item.DisplayTaggedParts;
            Document = item.Document;
            _navigableDocument = INavigableItem.NavigableDocument.FromDocument(item.Document);
            SourceSpan = item.SourceSpan;
        }
 
        public Glyph Glyph { get; }
 
        public ImmutableArray<TaggedText> DisplayTaggedParts { get; }
 
        public bool DisplayFileLocation => true;
 
        public bool IsImplicitlyDeclared => false;
 
        public Document Document { get; }
 
        INavigableItem.NavigableDocument INavigableItem.Document => _navigableDocument;
 
        public TextSpan SourceSpan { get; }
 
        public bool IsStale => false;
 
        public ImmutableArray<INavigableItem> ChildItems => ImmutableArray<INavigableItem>.Empty;
    }
}