VendingMachine.Console.AbstractConsoleReadBuffer.InitCompletementCore C# (CSharp) Method

InitCompletementCore() private method

private InitCompletementCore ( string inTarget ) : IEnumerator
inTarget string
return IEnumerator
        private IEnumerator<string> InitCompletementCore(string inTarget)
        {
            var indent = inTarget.TakeWhile(ch => ch == ' ').Count();
            var t = inTarget.TrimStart();

            var items = this.FilterCompletion(t)
                .Select(item => item.PadLeft(item.Length+indent))
                .OrderBy(item => item)
                .ToList()
            ;

            var noMatch = ! items.Any();

            while (true) {
                if (noMatch) {
                    yield return inTarget;
                }
                else {
                    foreach (var item in items) {
                        yield return item;
                    }
                }
            }
        }