public void SaveIDEStates() { try { // Save all files WorkbenchLogic.Instance.SaveAllFiles(); // Save global settings GlobalProperties.Save(); // Save language-specific settings foreach (var lang in LanguageLoader.Bindings) { if (lang.CanUseSettings) { try { var fn = AbstractLanguageBinding.CreateSettingsFileName(lang); if (File.Exists(fn)) { File.Delete(fn); } lang.SaveSettings(fn); } catch (Exception ex) { ErrorLogger.Log(ex); } } } } catch (Exception ex) { ErrorLogger.Log(ex); } }
void ThreadedInit(object argsObj) { var args = argsObj as ReadOnlyCollection <string>; // Load language bindings LanguageLoader.Bindings.Add(new GenericFileBinding()); try { LanguageLoader.LoadLanguageInterface(Util.ApplicationStartUpPath + "\\D-IDE.D.dll", "D_IDE.D.DLanguageBinding"); LanguageLoader.LoadLanguageInterface(Util.ApplicationStartUpPath + "\\D-IDE.D.dll", "D_IDE.ResourceFiles.ResScriptFileBinding"); } catch (Exception ex) { ErrorLogger.Log(ex); } // Load all language-specific settings foreach (var lang in LanguageLoader.Bindings) { try { if (lang.CanUseSettings) { lang.LoadSettings(AbstractLanguageBinding.CreateSettingsFileName(lang)); } } catch (Exception ex) { ErrorLogger.Log(ex); } } // Load last solution RootWindow.Dispatcher.BeginInvoke(new Action(() => { // If given, iterate over all cmd line arguments if (args.Count > 0) { foreach (var a in args) { IDEManager.Instance.OpenFile(a); } } else { // ... or load last project otherwise try { if (GlobalProperties.Instance.OpenLastPrj && GlobalProperties.Instance.LastProjects.Count > 0) { IDEManager.Instance.OpenFile(GlobalProperties.Instance.LastProjects[0]); } } catch (Exception ex) { ErrorLogger.Log(ex); } try { // Finally re-open all lastly edited files if (GlobalProperties.Instance.OpenLastFiles) { foreach (var kv in GlobalProperties.Instance.LastOpenFiles) { if (File.Exists(kv.Key)) { var ed = OpenFile(kv.Key, kv.Value[0]); if (ed is EditorDocument) { (ed as EditorDocument).Editor.ScrollToVerticalOffset(kv.Value[1]); } } } } } catch (Exception ex) { ErrorLogger.Log(ex); } } RootWindow.RefreshGUI(); }), System.Windows.Threading.DispatcherPriority.Background); if (RootWindow.splashScreen != null) { RootWindow.splashScreen.Close(TimeSpan.FromSeconds(0.5)); } }