public static SavedTabState FromXml(XElement child) { var type = (string)child.Attribute("tab-type"); //TODO: Remove the null check after some time after this commit. Only here so older files can be loaded. if (type == null || type == SavedDecompileTabState.TYPE) { return(SavedDecompileTabState.FromXmlInternal(child)); } if (type == SavedHexTabState.TYPE) { return(SavedHexTabState.FromXmlInternal(child)); } Debug.Fail(string.Format("Unknown type: {0}", type)); return(null); }
internal static SavedDecompileTabState FromXmlInternal(XElement child) { var savedState = new SavedDecompileTabState(); 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 override SavedTabState CreateSavedTabState() { var savedState = new SavedDecompileTabState(); savedState.Language = Language.Name; savedState.Paths = new List <FullNodePathName>(); savedState.ActiveAutoLoadedAssemblies = new List <string>(); foreach (var node in DecompiledNodes) { savedState.Paths.Add(node.CreateFullNodePathName()); var autoAsm = GetAutoLoadedAssemblyNode(node); if (!string.IsNullOrEmpty(autoAsm)) { savedState.ActiveAutoLoadedAssemblies.Add(autoAsm); } } savedState.EditorPositionState = TextView.EditorPositionState; return(savedState); }
internal static SavedDecompileTabState FromXmlInternal(XElement child) { var savedState = new SavedDecompileTabState(); 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 override SavedTabState CreateSavedTabState() { var savedState = new SavedDecompileTabState(); savedState.Language = Language.Name; savedState.Paths = new List<FullNodePathName>(); savedState.ActiveAutoLoadedAssemblies = new List<string>(); foreach (var node in DecompiledNodes) { savedState.Paths.Add(node.CreateFullNodePathName()); var autoAsm = GetAutoLoadedAssemblyNode(node); if (!string.IsNullOrEmpty(autoAsm)) savedState.ActiveAutoLoadedAssemblies.Add(autoAsm); } savedState.EditorPositionState = TextView.EditorPositionState; return savedState; }
bool decompilerTextView_OnShowOutput(bool success, bool hasMovedCaret, DecompilerTextView textView, SavedDecompileTabState savedState) { if (!success) return false; if (IsValid(textView, savedState.EditorPositionState)) { textView.EditorPositionState = savedState.EditorPositionState; return true; } return false; }
DecompileTabState CreateDecompileTabState(DecompileTabState tabState, SavedDecompileTabState 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(); DecompileNodes(tabState, tmpNodes, false, (success, hasMovedCaret) => decompilerTextView_OnShowOutput(success, hasMovedCaret, tabState.TextView, savedState)); } else AboutPage.Display(tabState.TextView); } return tabState; }
DecompileTabState CreateDecompileTabState(SavedDecompileTabState savedState, IList<ILSpyTreeNode> newNodes = null, bool decompile = true) { var tabState = CreateNewDecompileTabState(Languages.GetLanguage(savedState.Language)); return CreateDecompileTabState(tabState, savedState, newNodes, decompile); }