//if hint for given type already exists, overwrite it public void RegisterHint(AHint hint) { int index = IndexOfTypeHint(hint.HintedType); if (index >= 0) { m_Hints.RemoveAt(index); } m_Hints.Add(hint); }
private int IndexOfTypeHint(Type type) { for (int x = 0; x < m_Hints.Count; x++) { AHint hint = m_Hints[x]; if (hint.HintedType == type) { return(x); } } return(-1); }
public AHintIterator GetHintIterator(string input, int cursor, List <ConsoleException> issues = null) { List <Query> queries; try { queries = m_Console.ParseQuery(input); } catch (ConsoleException e) { queries = new List <Query>(); issues.Add(e); } Query query = null; Argument argument = null; AConsoleCommand command = null; FindQueryAndArgument(queries, cursor, out query, out argument); if (query != null) { command = m_Console.FindCommand(query.Name.Value); MapAndParseQuery(command, query, issues); } AHint hint = GetHint(command, query, argument); if (hint != null) { if (argument == null) { argument = new Argument(true); } return(hint.GetIterator(query, argument)); } return(null); }
public CollectionHintIterator(Query query, Argument argument, AHint hint, List <string> hintsList) : base(query, argument, hint) { Restart(); m_Hints = hintsList; }