File: Completion\CompletionItemFlags.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;
 
namespace Microsoft.CodeAnalysis.Completion;
 
[Flags]
internal enum CompletionItemFlags
{
    None = 0x0,
 
    /// <summary>
    /// Indicates this <see cref="CompletionItem"/> is cached and reused across completion sessions. 
    /// This might be used by completion system for things like deciding whether it can safely cache and reuse
    /// other data corresponding to this item.
    ///
    /// TODO: Revisit the approach we used for caching VS items.
    ///       https://github.com/dotnet/roslyn/issues/35160
    /// </summary>
    Cached = 0x1,
 
    /// <summary>
    /// Indicates this <see cref="CompletionItem"/> should be shown only when expanded items is requested.
    /// </summary>
    Expanded = 0x2,
 
    CachedAndExpanded = Cached | Expanded,
}
 
internal static class CompletionItemFlagsExtensions
{
    public static bool IsCached(this CompletionItemFlags flags)
        => (flags & CompletionItemFlags.Cached) != 0;
 
    public static bool IsExpanded(this CompletionItemFlags flags)
        => (flags & CompletionItemFlags.Expanded) != 0;
}