protected override void UpdateTools(IList <ITool> tools) { tools.Add(modeTool); var tabTypes = ListPool <Type> .New(); try { foreach (var tabInLayout in PeekPlugin.Configuration.tabsInLayout) { if (!Codebase.TryDeserializeType(tabInLayout, out var tabType)) { continue; } if (PeekPlugin.Configuration.tabsBlacklist.Contains(tabType)) { continue; } if (!tabTypes.Contains(tabType)) { tabTypes.Add(tabType); } } foreach (var tabType in PeekPlugin.Configuration.tabsWhitelist) { if (tabType == null) { continue; } if (!tabTypes.Contains(tabType)) { tabTypes.Add(tabType); } } tabTypes.Sort(compareTabTypes); foreach (var tabType in tabTypes) { var tabTool = tabTools[tabType]; tools.Add(tabTool); } } finally { tabTypes.Free(); } }