DnSpyFileList DoLoadList(DNSpySettings spySettings, string listName) { var doc = GetFileListsElement(spySettings); if (listName != null) { foreach (var listElem in doc.Elements(LIST_SECTION_NAME)) { if (SessionSettings.Unescape((string)listElem.Attribute("name")) == listName) { return(Initialize(Create(listElem))); } } } XElement firstList = doc.Elements(LIST_SECTION_NAME).FirstOrDefault(); DnSpyFileList list; if (firstList != null) { list = Create(firstList); } else { list = new DnSpyFileList(options, listName ?? DefaultListName); } return(Initialize(list)); }
/// <summary> /// Saves the specifies assembly list into the config file. /// </summary> public static void SaveList(AssemblyList list) { if (!list.CanSave) { return; } ILSpySettings.Update( delegate(XElement root) { XElement doc = root.Element("AssemblyLists"); if (doc == null) { doc = new XElement("AssemblyLists"); root.Add(doc); } XElement listElement = doc.Elements("List").FirstOrDefault(e => SessionSettings.Unescape((string)e.Attribute("name")) == list.ListName); if (listElement != null) { listElement.ReplaceWith(list.SaveAsXml()); } else { doc.Add(list.SaveAsXml()); } }); }
AssemblyList DoLoadList(ILSpySettings spySettings, string listName) { XElement doc = spySettings["AssemblyLists"]; if (listName != null) { foreach (var list in doc.Elements("List")) { if (SessionSettings.Unescape((string)list.Attribute("name")) == listName) { return(new AssemblyList(list)); } } } XElement firstList = doc.Elements("List").FirstOrDefault(); if (firstList != null) { return(new AssemblyList(firstList)); } else { return(new AssemblyList(listName ?? DefaultListName)); } }
public AssemblyListManager(ILSpySettings spySettings) { XElement doc = spySettings["AssemblyLists"]; foreach (var list in doc.Elements("List")) { AssemblyLists.Add(SessionSettings.Unescape((string)list.Attribute("name"))); } }
public DnSpyFileListManager(IDnSpyFileListOptions options, DNSpySettings spySettings) { this.options = options; var doc = GetFileListsElement(spySettings); foreach (var list in doc.Elements(LIST_SECTION_NAME)) { FileLists.Add(SessionSettings.Unescape((string)list.Attribute("name"))); } }
/// <summary> /// Loads an assembly list from XML. /// </summary> public AssemblyList(XElement listElement) : this(SessionSettings.Unescape((string)listElement.Attribute("name"))) { foreach (var asm in listElement.Elements("Assembly")) { try { OpenAssembly(SessionSettings.Unescape((string)asm)); } catch (ArgumentException) { // invalid filename } } this.dirty = false; // OpenAssembly() sets dirty, so reset it afterwards }
DnSpyFileList Create(XElement listElement) { var name = SessionSettings.Unescape((string)listElement.Attribute("name")); var list = new DnSpyFileList(options, name); var elems = listElement.Elements(FILE_SECTION_NAME).ToList(); elems.AddRange(listElement.Elements(FILE_SECTION_NAME_OLD)); foreach (var asm in elems) { try { list.OpenFile(SessionSettings.Unescape((string)asm)); } catch { } } list.IsDirty = false; return(list); }
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 bool DeleteList(string Name) { if (AssemblyLists.Contains(Name)) { AssemblyLists.Remove(Name); ILSpySettings.Update( delegate(XElement root) { XElement doc = root.Element("AssemblyLists"); if (doc == null) { return; } XElement listElement = doc.Elements("List").FirstOrDefault(e => SessionSettings.Unescape((string)e.Attribute("name")) == Name); if (listElement != null) { listElement.Remove(); } }); return(true); } return(false); }
public bool DeleteList(string Name) { if (FileLists.Contains(Name)) { FileLists.Remove(Name); DNSpySettings.Update( delegate(XElement root) { XElement doc = root.Element(FILELISTS_SECTION_NAME); if (doc == null) { root.Element(FILELISTS_SECTION_NAME_OLD); } if (doc == null) { return; } XElement listElement = doc.Elements(LIST_SECTION_NAME).FirstOrDefault(e => SessionSettings.Unescape((string)e.Attribute("name")) == Name); if (listElement != null) { listElement.Remove(); } }); return(true); } return(false); }
/// <summary> /// Saves the specifies assembly list into the config file. /// </summary> public static void SaveList(DnSpyFileList list) { DNSpySettings.Update((root) => { var doc = root.Element(FILELISTS_SECTION_NAME) ?? root.Element(FILELISTS_SECTION_NAME_OLD); if (doc != null) { doc.Name = FILELISTS_SECTION_NAME; } if (doc == null) { doc = new XElement(FILELISTS_SECTION_NAME); root.Add(doc); } XElement listElement = doc.Elements(LIST_SECTION_NAME).FirstOrDefault(e => SessionSettings.Unescape((string)e.Attribute("name")) == list.Name); if (listElement != null) { listElement.ReplaceWith(SaveAsXml(list)); } else { doc.Add(SaveAsXml(list)); } }); }