namespace QFSW.QC
{
///
/// A suggestion that can be auto completed and displayed.
///
public interface IQcSuggestion
{
///
/// The full signature of the suggestion for display purposes.
///
string FullSignature { get; }
///
/// The primary component of the signature.
///
string PrimarySignature { get; }
///
/// The secondary component of the signature.
///
string SecondarySignature { get; }
///
/// Determines if the provided prompt matches this suggestion
///
/// The prompt to check.
/// If the prompt matches the suggestion.
bool MatchesPrompt(string prompt);
///
/// Gets the completion value for this a prompt with this suggestion.
///
/// The prompt to complete.
/// The completion value.
string GetCompletion(string prompt);
///
/// Gets the completion tail, similar to the secondary signature, for a prompt with this suggestion.
///
/// The prompt to complete the tail for.
/// The completion tail.
string GetCompletionTail(string prompt);
///
/// Gets the inner suggestion context for this suggestion, allowing for further suggestions to be provided.
///
/// The outer suggestion context.
/// The inner suggestion context, null if none can be created.
SuggestionContext? GetInnerSuggestionContext(SuggestionContext context);
}
}