void LanguageManager_LanguageChanged(object sender, EventArgs e) { if (!appWindow.AppLoaded) { return; } var tab = fileTabManager.ActiveTab; if (tab == null) { return; } var langContent = tab.Content as ILanguageTabContent; if (langContent == null) { return; } var languageManager = (ILanguageManager)sender; if (langContent.Language == languageManager.Language) { return; } langContent.Language = languageManager.Language; fileTabManager.Refresh(new IFileTab[] { tab }); }
void BamlSettings_PropertyChanged(object sender, PropertyChangedEventArgs e) { if (e.PropertyName == nameof(BamlSettings.DisassembleBaml)) { fileTabManager.Refresh <BamlResourceElementNode>(); } }
void InitializeTextFormatterProvider() { var newValue = appSettings.UseNewRenderer_TextEditor ? TextFormatterProvider.GlyphRunFormatter : TextFormatterProvider.BuiltIn; TextFormatterFactory.DefaultTextFormatterProvider = newValue; var tabs = fileTabManager.VisibleFirstTabs.Where(a => a.UIContext is ITextEditorUIContextImpl).ToArray(); foreach (var tab in tabs) { ((ITextEditorUIContextImpl)tab.UIContext).OnUseNewRendererChanged(); } fileTabManager.Refresh(tabs); }
void RefreshResources(HashSet <IFileTreeNodeData> modifiedResourceNodes) { if (modifiedResourceNodes.Count == 0) { return; } var ownerNodes = new HashSet <IResourcesFolderNode>(); foreach (var node in modifiedResourceNodes) { var owner = node.GetAncestorOrSelf <IResourcesFolderNode>(); if (owner != null) { ownerNodes.Add(owner); } } if (ownerNodes.Count == 0) { return; } decompilationCache.Clear(new HashSet <IDnSpyFile>(ownerNodes.Select(a => { var mod = a.GetModuleNode(); Debug.Assert(mod != null); return(mod == null ? null : mod.DnSpyFile); }).Where(a => a != null))); var tabs = new List <IFileTab>(); foreach (var tab in fileTabManager.VisibleFirstTabs) { bool refresh = tab.Content.Nodes.Any(a => ownerNodes.Contains(a.GetAncestorOrSelf <IResourcesFolderNode>())); if (refresh) { tabs.Add(tab); } } fileTabManager.Refresh(tabs); }
void DecompilerManager_DecompilerChanged(object sender, EventArgs e) { if (!appWindow.AppLoaded) { return; } var tab = fileTabManager.ActiveTab; var decompilerContent = tab?.Content as IDecompilerTabContent; if (decompilerContent == null) { return; } var decompilerManager = (IDecompilerManager)sender; if (decompilerContent.Decompiler == decompilerManager.Decompiler) { return; } decompilerContent.Decompiler = decompilerManager.Decompiler; fileTabManager.Refresh(new IFileTab[] { tab }); }
void RefreshCode <T>() { fileTabManager.Refresh(LanguageTabs.Where(t => t.Item2 is T).Select(a => a.Item1).ToArray()); }
void RefreshCode <T>() => fileTabManager.Refresh(DecompilerTabs.Where(t => t.Item2 is T).Select(a => a.Item1).ToArray());
void RefreshCode(Guid guid) { fileTabManager.Refresh(LanguageTabs.Where(t => t.Item2.GenericGuid == guid || t.Item2.UniqueGuid == guid).Select(a => a.Item1).ToArray()); }