using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; namespace Xamarin.PropertyEditing { /// /// Light-up interface to handle auto-completion of values. /// /// /// To be implemented on implementations. Requires . /// public interface ICompleteValues { /// /// Gets whether or not the string can be looked at for auto-completion. /// /// /// true if contains auto-completable markers, false otherwise. /// /// /// /// This is not an indicator of whether a value to autocomplete the exists, but /// instead to indicate whether it is a special string that has auto-completion implications. Examples /// of this are '@' in Android, or '{' in XAML languages. /// /// /// Additionally this is not the only gating mechanic for auto-completion. UI elements that would always /// auto-complete may bypass this check altogether. Instead this is for inputs that may not auto-complete, /// but could be enabled to given the correct input. /// /// bool CanAutocomplete (string input); /// /// A list of strings to be used to set the value of the if selected via . /// /// /// Returned strings are not post-sorted nor count-trimmed. Across multiple editors, only the common elements will be present /// in order of the first editor. The general assumption is that order would likely be the same across editors. /// Task> GetCompletionsAsync (IPropertyInfo property, string input, CancellationToken cancellationToken); } }