public static SavedTabGroupState FromXml(XElement child) { var savedState = new SavedTabGroupState(); savedState.Index = (int)child.Attribute("index"); foreach (var tab in child.Elements("Tab")) { savedState.Tabs.Add(SavedTabState.FromXml(tab)); } return(savedState); }
public static SavedTabState FromXml(XElement child) { var savedState = new SavedTabState(); savedState.Language = SessionSettings.Unescape((string)child.Attribute("language")) ?? "C#"; foreach (var path in child.Elements("Path")) { savedState.Paths.Add(FullNodePathName.FromXml(path)); } savedState.ActiveAutoLoadedAssemblies = new List <string>(); var autoAsms = child.Element("ActiveAutoLoadedAssemblies"); if (autoAsms != null) { savedState.ActiveAutoLoadedAssemblies.AddRange(autoAsms.Elements().Select(e => SessionSettings.Unescape((string)e))); } savedState.EditorPositionState = EditorPositionState.FromXml(child.Element("EditorPositionState")); return(savedState); }
public static SavedTabState FromXml(XElement child) { var savedState = new SavedTabState(); savedState.Language = SessionSettings.Unescape((string)child.Attribute("language")) ?? "C#"; foreach (var path in child.Elements("Path")) savedState.Paths.Add(FullNodePathName.FromXml(path)); savedState.ActiveAutoLoadedAssemblies = new List<string>(); var autoAsms = child.Element("ActiveAutoLoadedAssemblies"); if (autoAsms != null) savedState.ActiveAutoLoadedAssemblies.AddRange(autoAsms.Elements().Select(e => SessionSettings.Unescape((string)e))); savedState.EditorPositionState = EditorPositionState.FromXml(child.Element("EditorPositionState")); return savedState; }
bool decompilerTextView_OnShowOutput(bool success, bool hasMovedCaret, DecompilerTextView textView, SavedTabState savedState) { if (!success) return false; if (IsValid(textView, savedState.EditorPositionState)) { textView.EditorPositionState = savedState.EditorPositionState; return true; } return false; }
TabStateDecompile CreateTabState(TabStateDecompile tabState, SavedTabState savedState, IList<ILSpyTreeNode> newNodes = null, bool decompile = true) { var nodes = new List<ILSpyTreeNode>(savedState.Paths.Count); if (newNodes != null) nodes.AddRange(newNodes); else { foreach (var asm in savedState.ActiveAutoLoadedAssemblies) this.assemblyList.OpenAssembly(asm, true); foreach (var path in savedState.Paths) { var node = assemblyListTreeNode.FindNodeByPath(path); if (node == null) { nodes = null; break; } nodes.Add(node); } } if (decompile) { if (nodes != null) { var tmpNodes = nodes.ToArray(); var helper = new OnShowOutputHelper(tabState.TextView, (success, hasMovedCaret) => decompilerTextView_OnShowOutput(success, hasMovedCaret, tabState.TextView, savedState), tmpNodes); DecompileNodes(tabState, null, false, tabState.Language, tmpNodes); } else AboutPage.Display(tabState.TextView); } return tabState; }
TabStateDecompile CreateTabState(SavedTabState savedState, IList<ILSpyTreeNode> newNodes = null, bool decompile = true) { var tabState = CreateNewTabState(Languages.GetLanguage(savedState.Language)); return CreateTabState(tabState, savedState, newNodes, decompile); }
static SavedTabState CreateSavedTabState(TabStateDecompile tabState) { var savedState = new SavedTabState(); savedState.Language = tabState.Language.Name; savedState.Paths = new List<FullNodePathName>(); savedState.ActiveAutoLoadedAssemblies = new List<string>(); foreach (var node in tabState.DecompiledNodes) { savedState.Paths.Add(node.CreateFullNodePathName()); var autoAsm = GetAutoLoadedAssemblyNode(node); if (!string.IsNullOrEmpty(autoAsm)) savedState.ActiveAutoLoadedAssemblies.Add(autoAsm); } savedState.EditorPositionState = tabState.TextView.EditorPositionState; return savedState; }