Пример #1
0
        public IIntelliSenseItem FindItem(string[] command)
        {
            IntelliSenseItem newitem = new IntelliSenseItem(command);

            LinkedList <IIntelliSenseItem> .Enumerator e = _items.GetEnumerator();
            while (e.MoveNext())
            {
                IntelliSenseItem item = e.Current as IntelliSenseItem;
                if (item.CompareTo(newitem) == 0)
                {
                    return(item);
                }
            }
            return(null);
        }
Пример #2
0
        public void RemoveItem(string[] command)
        {
            IntelliSenseItem newitem = new IntelliSenseItem(command);

            LinkedList <IIntelliSenseItem> .Enumerator e = _items.GetEnumerator();
            while (e.MoveNext())
            {
                IntelliSenseItem item = e.Current as IntelliSenseItem;
                if (item.CompareTo(newitem) == 0)
                {
                    _items.Remove(item);
                    Debug.WriteLineIf(DebugOpt.IntelliSense, "Removed " + newitem.Format(' '));
                    break;
                }
            }
        }
Пример #3
0
        public void UpdateItem(string[] command)
        {
            IntelliSenseItem newitem = new IntelliSenseItem(command);

            LinkedList <IIntelliSenseItem> .Enumerator e = _items.GetEnumerator();
            while (e.MoveNext())
            {
                IntelliSenseItem item = e.Current as IntelliSenseItem;
                if (item.CompareTo(newitem) == 0)
                {
                    //先頭に持ってきてリターン
                    _items.Remove(item);
                    _items.AddFirst(newitem);
                    return;
                }
            }

            _items.AddFirst(newitem);
            if (_items.Count > TerminalEmulatorPlugin.Instance.TerminalEmulatorOptions.ShellHistoryLimitCount)
            {
                _items.RemoveLast();
            }
        }