Example #1
0
        //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);
        }
Example #2
0
 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);
 }
Example #3
0
        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);
        }
Example #4
0
 public CollectionHintIterator(Query query, Argument argument, AHint hint, List <string> hintsList)
     : base(query, argument, hint)
 {
     Restart();
     m_Hints = hintsList;
 }