using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
namespace Microsoft.VisualStudio.Text.PatternMatching
{
///
/// This enum is NOT ordered. Sorting based on the PatternMatchKind is performed in and is subject to change.
/// Additional entries can be added at the bottom of this enumeration.
///
public enum PatternMatchKind
{
///
/// The candidate string matched the pattern exactly.
///
Exact,
///
/// The pattern was a prefix of the candidate string.
///
Prefix,
///
/// The pattern was a substring of the candidate string, but in a way that wasn't a CamelCase match.
///
Substring,
// Note: CamelCased matches are ordered from best to worst.
///
/// All camel-humps in the pattern matched a camel-hump in the candidate. All camel-humps
/// in the candidate were matched by a camel-hump in the pattern.
///
/// Example: "CFPS" matching "CodeFixProviderService"
/// Example: "cfps" matching "CodeFixProviderService"
/// Example: "CoFiPrSe" matching "CodeFixProviderService"
///
CamelCaseExact,
///
/// All camel-humps in the pattern matched a camel-hump in the candidate. The first camel-hump
/// in the pattern matched the first camel-hump in the candidate. There was no gap in the camel-
/// humps in the candidate that were matched.
///
/// Example: "CFP" matching "CodeFixProviderService"
/// Example: "cfp" matching "CodeFixProviderService"
/// Example: "CoFiPRo" matching "CodeFixProviderService"
///
CamelCasePrefix,
///
/// All camel-humps in the pattern matched a camel-hump in the candidate. The first camel-hump
/// in the pattern matched the first camel-hump in the candidate. There was at least one gap in
/// the camel-humps in the candidate that were matched.
///
/// Example: "CP" matching "CodeFixProviderService"
/// Example: "cp" matching "CodeFixProviderService"
/// Example: "CoProv" matching "CodeFixProviderService"
///
CamelCaseNonContiguousPrefix,
///
/// All camel-humps in the pattern matched a camel-hump in the candidate. The first camel-hump
/// in the pattern did not match the first camel-hump in the pattern. There was no gap in the camel-
/// humps in the candidate that were matched.
///
/// Example: "FP" matching "CodeFixProviderService"
/// Example: "fp" matching "CodeFixProviderService"
/// Example: "FixPro" matching "CodeFixProviderService"
///
CamelCaseSubstring,
///
/// All camel-humps in the pattern matched a camel-hump in the candidate. The first camel-hump
/// in the pattern did not match the first camel-hump in the pattern. There was at least one gap in
/// the camel-humps in the candidate that were matched.
///
/// Example: "FS" matching "CodeFixProviderService"
/// Example: "fs" matching "CodeFixProviderService"
/// Example: "FixSer" matching "CodeFixProviderService"
///
CamelCaseNonContiguousSubstring,
///
/// The pattern matches the candidate in a fuzzy manner. Fuzzy matching allows for
/// a certain amount of misspellings, missing words, etc.
///
Fuzzy
}
}