﻿// 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;

namespace Microsoft.CodeAnalysis
{
    /// <summary>
    /// Specifies the options for how generics are displayed in the description of a symbol.
    /// </summary>
    [Flags]
    internal enum ObjectDisplayOptions
    {
        /// <summary>
        /// Format object using default options.
        /// </summary>
        None = 0,

        /// <summary>
        /// In C#, include the numeric code point before character literals.
        /// </summary>
        IncludeCodePoints = 1 << 0,

        /// <summary>
        /// Whether or not to include type suffix for applicable integral literals.
        /// </summary>
        IncludeTypeSuffix = 1 << 1,

        /// <summary>
        /// Whether or not to display integral literals in hexadecimal.
        /// </summary>
        UseHexadecimalNumbers = 1 << 2,

        /// <summary>
        /// Whether or not to quote character and string literals.
        /// </summary>
        UseQuotes = 1 << 3,

        /// <summary>
        /// In C#, replace non-printable (e.g. control) characters with dedicated (e.g. \t) or unicode (\u0001) escape sequences.
        /// In Visual Basic, replace non-printable characters with calls to ChrW and vb* constants.
        /// </summary>
        EscapeNonPrintableCharacters = 1 << 4,
    }
}
