File: src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\EditorConfig\Parsing\Sections\SectionMatch.cs
Web Access
Project: src\src\RoslynAnalyzers\Roslyn.Diagnostics.Analyzers\Core\Roslyn.Diagnostics.Analyzers.csproj (Roslyn.Diagnostics.Analyzers)
// 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.
 
namespace Microsoft.CodeAnalysis.EditorConfig.Parsing;
 
internal enum SectionMatch
{
    /// <summary>
    /// Most exact section match for a language. Will always match all files for the given language.
    /// </summary>
    /// <remarks>
    /// - for C# this is [*.cs]
    /// - for Visual Basic it is [*.vb].
    /// - If both language are specified it is [*.{cs,vb}]
    /// </remarks>
    ExactLanguageMatch = 0,
    /// <summary>
    /// Exact section match for a language with unknown file patterns. Will always match all files for the given language.
    /// </summary>
    /// <remarks>
    /// An exact match but with some unknown file patterns also matching
    /// example for C#: [*.{cs,csx}] 
    /// This will not be the case if only C# was specified and a VB pattern is found
    /// (or vice versa)
    /// </remarks>
    ExactLanguageMatchWithOthers = 1,
    /// <summary>
    /// An exact section match for a language with other known language patterns. Will match all files for the given language as well as other known languages.
    /// </summary>
    /// <remarks>
    /// Given this pattern [*.{cs,vb}] for C# this is considered a match (since it matches all C# files).
    /// Even though it also matches for Visual Basic.
    /// </remarks>
    AnyLanguageMatch = 2,
    /// <summary>
    /// Matches the file pattern according to the editorconfig specification but is a superset of an exact language match.
    /// </summary>
    /// <remarks>
    /// Patterns such as [*c*] or [*s] would match for C# in this case (being a superset of *.cs)
    /// </remarks>
    SupersetFilePatternMatch = 3,
    /// <summary>
    /// Matches the file pattern according to the editorconfig specification but is a supset of an exact language match.
    /// </summary>
    /// <remarks>
    /// Patterns such as [*.Tests.cs] would match for C# if the file being considered is UnitTests.cs
    /// </remarks>
    FilePatternMatch = 4,
    /// <summary>
    /// Matches [*].
    /// </summary>
    SplatMatch = 5,
    /// <summary>
    /// Matched because section is global and therefore always matches.
    /// </summary>
    GlobalSectionMatch = 6,
 
    /// <summary>
    /// Matches any valid pattern except for global section.
    /// </summary>
    AnyButGlobal = SplatMatch,
    /// <summary>
    /// Matches any valid pattern.
    /// </summary>
    Any = GlobalSectionMatch,
 
    /// <summary>
    /// Section did not match and is not applicable to the file or language.
    /// </summary>
    NoMatch = 100,
}