|
// 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,
}
}
|