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); }
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; } } }
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(); } }