using System.Collections.Generic;
using System.Globalization;
namespace Microsoft.VisualStudio.Text.PatternMatching
{
///
/// Defines context for what should be considered relevant in a pattern match.
///
public sealed class PatternMatcherCreationOptions
{
///
/// Used to tailor character comparisons to the correct culture.
///
public readonly CultureInfo CultureInfo;
///
/// A set of biniary options, used to control options like case-sensitivity.
///
public readonly PatternMatcherCreationFlags Flags;
///
/// Characters that should be considered as describing a container/contained boundary. When matching types, this can be the '.' character
/// e.g. Namespace.Class.Property, so that the search can tailor behavior to better match Property first, then Class, then Namespace.
/// This also can work with directory separators in filenames and any other logical container/contained pattern in candidate strings.
///
/// signifies no characters are container boundaries.
///
public readonly IReadOnlyCollection ContainerSplitCharacters;
///
/// Creates an instance of .
///
/// Used to tailor character comparisons to the correct culture.
/// A set of biniary options, used to control options like case-sensitivity.
///
/// Characters that should be considered as describing a container/contained boundary. When matching types, this can be the '.' character
/// e.g. Namespace.Class.Property, so that the search can tailor behavior to better match Property first, then Class, then Namespace.
/// This also can work with directory separators in filenames and any other logical container/contained pattern in candidate strings.
///
/// signifies no characters are container boundaries.
///
public PatternMatcherCreationOptions(CultureInfo cultureInfo, PatternMatcherCreationFlags flags, IReadOnlyCollection containerSplitCharacters = null)
{
CultureInfo = cultureInfo;
Flags = flags;
ContainerSplitCharacters = containerSplitCharacters;
}
}
}