Ejemplo n.º 1
0
        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); }
        }
Ejemplo n.º 2
0
        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));
            }
        }