private void BtOkOnButtonPressed(object sender, EventArgs buttonPressedEventArgs) { Save(_filename); Save(FileTag.LastTag); UpdateInfo(); FileTag.Export(); Appli.ToggleView(); }
internal static void DoPlugStart() { if (OnPlugReady != null) { OnPlugReady(); } ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; // subscribe to static events ProEnvironment.OnEnvironmentChange += FileExplorer.Instance.RebuildFileList; ProEnvironment.OnEnvironmentChange += DataBase.Instance.UpdateDatabaseInfo; ProEnvironment.OnEnvironmentChange += ParserHandler.ClearStaticData; Keywords.Instance.OnImport += AutoCompletion.SetStaticItems; DataBase.Instance.OnDatabaseUpdate += AutoCompletion.SetStaticItems; AutoCompletion.OnUpdateStaticItems += ParserHandler.UpdateKnownStaticItems; ParserHandler.OnStart += CodeExplorer.Instance.OnStart; ParserHandler.OnEndSendCompletionItems += AutoCompletion.SetDynamicItems; ParserHandler.OnEndSendParserItems += CodeExplorer.Instance.OnParseEndParserItems; ParserHandler.OnEndSendParserItems += SyntaxFolding.OnParseEndParserItems; ParserHandler.OnEndSendCodeExplorerItems += CodeExplorer.Instance.OnParseEndCodeExplorerItems; ParserHandler.OnEnd += CodeExplorer.Instance.OnParseEnd; ProExecutionHandleCompilation.OnEachCompilationOk += OpenedFilesInfo.ProExecutionHandleCompilationOnEachCompilationOk; // Clear the %temp% directory if we didn't do it properly last time Utils.DeleteDirectory(Config.FolderTemp, true); //Snippets.Init(); FileCustomInfo.Import(); DelayedAction.StartNew(100, () => { if (Config.Instance.InstallStep == 0) { Config.Instance.InstallStep++; // we are at the first notepad++ start Npp.ConfXml.FinishPluginInstall(); // will apply npp options and restart npp return; } if (Config.Instance.InstallStep == 1) { Config.Instance.InstallStep++; // global options applied, we are at the second startup UserCommunication.NotifyUnique("welcome", "Thank you for installing 3P, you are awesome!<br><br>If this is your first look at 3P you should probably read the <b>getting started</b> section of the home page by clicking " + "go".ToHtmlLink("on this link right here") + ".<br><br><div align='right'>And as always... Enjoy!</div>", MessageImg.MsgInfo, "Fresh install", "Hello and welcome aboard!", args => { Appli.ToggleView(); UserCommunication.CloseUniqueNotif("welcome"); args.Handled = true; }); } else if (!Config.Instance.NppStoppedCorrectly) { // Npp didn't stop correctly, if the backup mode is activated, inform the user if (Npp.ConfXml.BackupMode > 0) { UserCommunication.Notify("It seems that notepad++ didn't stop correctly.<br>If you lost some modifications, don't forget that you have a backup folder here :<br><br><div>" + Npp.ConfXml.BackupDirectory.ToHtmlLink() + "</div>" + (Npp.ConfXml.BackupUseCustomDir ? "<div>" + Npp.ConfXml.CustomBackupDirectory.ToHtmlLink() + "</div>" : ""), MessageImg.MsgInfo, "Notepad++ crashed", "Backup folder location"); } } Config.Instance.NppStoppedCorrectly = false; // check if an update was done and start checking for new updates Updater <MainUpdaterWrapper> .Instance.CheckForUpdateDoneAndStartCheckingForUpdates(); if (Updater <ProlintUpdaterWrapper> .Instance.LocalVersion.IsHigherVersionThan("v0")) { Updater <ProlintUpdaterWrapper> .Instance.StartCheckingForUpdate(); } if (Updater <ProparseUpdaterWrapper> .Instance.LocalVersion.IsHigherVersionThan("v0")) { Updater <ProparseUpdaterWrapper> .Instance.StartCheckingForUpdate(); } // Try to update the configuration from the distant shared folder ShareExportConf.StartCheckingForUpdates(); }); // check if npp version is meeting current recommended version if (!string.IsNullOrEmpty(Npp.SoftwareStringVersion) && !Npp.SoftwareStringVersion.IsHigherOrEqualVersionThan(Config.RequiredNppVersion)) { if (!Config.Instance.NppOutdatedVersion) { UserCommunication.Notify("This version of 3P has been developed for Notepad++ " + Config.RequiredNppVersion + ", your version (" + Npp.SoftwareStringVersion + ") is outdated.<br><br>Using an outdated version, you might encounter bugs that would not occur otherwise.<br>Try to update your version of Notepad++ as soon as possible, or use 3P at your own risks.<br><br><a href='https://notepad-plus-plus.org/download/'>Download the latest version of Notepad++ here</a>", MessageImg.MsgHighImportance, "Outdated version", "3P requirements are not met"); Config.Instance.NppOutdatedVersion = true; } } else { Config.Instance.NppOutdatedVersion = false; } // ReSharper disable once ObjectCreationAsStatement RecurentAction.StartNew(User.Ping, 1000 * 60 * 120); // Make sure to give the focus to scintilla on startup Sci.GrabFocus(); DelayedAction.StartNew(1000, Config.Save); }
private void BtCancelOnButtonPressed(object sender, EventArgs buttonPressedEventArgs) { UpdateInfo(); Appli.ToggleView(); }
/// <summary> /// Called on npp ready /// </summary> internal static bool DoNppReady() { try { // need to set some values in the yamuiThemeManager ThemeManager.OnStartUp(); // if the UDL is not installed if (!Style.InstallUdl(true)) { Style.InstallUdl(); } else { // first use message? if (Config.Instance.UserFirstUse) { UserCommunication.NotifyUnique("welcome", "<div>Dear user,<br><br>Thank you for installing 3P, you are awesome!<br><br>If this is your first look at 3P I invite you to read the <b>Getting started</b> section of the home page by clicking <a href='go'>on this link right here</a>.<br><br></div><div align='right'>Enjoy!</div>", MessageImg.MsgInfo, "Information", "Hello and welcome aboard!", args => { Appli.ToggleView(); UserCommunication.CloseUniqueNotif("welcome"); args.Handled = true; }); Config.Instance.UserFirstUse = false; } } // check if npp version is meeting current recommended version if (!string.IsNullOrEmpty(Npp.SoftwareVersion) && !Npp.SoftwareVersion.IsHigherOrEqualVersionThan(Config.RequiredNppVersion)) { if (!Config.Instance.NppOutdatedVersion) { UserCommunication.Notify("This version of 3P has been developed for Notepad++ " + Config.RequiredNppVersion + ", your version (" + Npp.SoftwareVersion + ") is outdated.<br><br>Using an outdated version, you might encounter bugs that would not occur otherwise.<br>Try to update your version of Notepad++ as soon as possible, or use 3P at your own risks.<br><br><a href='https://notepad-plus-plus.org/download/'>Download the latest version of Notepad++ here</a>", MessageImg.MsgHighImportance, "Outdated version", "3P requirements are not met"); Config.Instance.NppOutdatedVersion = true; } } else { Config.Instance.NppOutdatedVersion = false; } // code explorer if (Config.Instance.CodeExplorerAutoHideOnNonProgressFile) { CodeExplorer.Instance.Toggle(Npp.NppFileInfo.GetFullPathApi.TestAgainstListOfPatterns(Config.Instance.FilesPatternProgress)); } else if (Config.Instance.CodeExplorerVisible) { CodeExplorer.Instance.Toggle(); } // File explorer if (Config.Instance.FileExplorerAutoHideOnNonProgressFile) { FileExplorer.Instance.Toggle(Npp.NppFileInfo.GetFullPathApi.TestAgainstListOfPatterns(Config.Instance.FilesPatternProgress)); } else if (Config.Instance.FileExplorerVisible) { FileExplorer.Instance.Toggle(); } return(true); } catch (Exception e) { ErrorHandler.ShowErrors(e, "Plugin startup"); } return(false); }
/// <summary> /// Called on npp ready /// </summary> internal static bool DoNppReady() { try { // need to set some values in the yamuiThemeManager ThemeManager.OnStartUp(); // init an empty form, this gives us a Form to hook onto if we want to do stuff on the UI thread // from a back groundthread with BeginInvoke() // once this method is done, we are able to publish notifications UserCommunication.Init(); // if the UDL is not installed if (!Style.InstallUdl(true)) { Style.InstallUdl(); } else { // first use message? if (Config.Instance.UserFirstUse) { UserCommunication.NotifyUnique("welcome", "<div>Dear user,<br><br>Thank you for installing 3P, you are awesome!<br><br>If this is your first look at 3P I invite you to read the <b>Getting started</b> section of the home page by clicking <a href='go'>on this link right here</a>.<br><br></div><div align='right'>Enjoy!</div>", MessageImg.MsgInfo, "Information", "Hello and welcome aboard!", args => { Appli.ToggleView(); UserCommunication.CloseUniqueNotif("welcome"); args.Handled = true; }); Config.Instance.UserFirstUse = false; } } // check Npp version, 3P requires version 6.8 or higher if (!String.IsNullOrEmpty(Npp.GetNppVersion) && !Npp.GetNppVersion.IsHigherVersionThan("6.7")) { UserCommunication.Notify("Dear user,<br><br>Your version of notepad++ (" + Npp.GetNppVersion + ") is outdated.<br>3P <b>requires</b> the version <b>6.8</b> or above, <b>there are known issues with inferior versions</b>. Please upgrade to an up-to-date version of Notepad++ or use 3P at your own risks.<br><br><a href='https://notepad-plus-plus.org/download/'>Download the lastest version of Notepad++ here</a>", MessageImg.MsgError, "Outdated version", "3P requirements are not met"); } // Check if an update has been done and start checking for new updates UpdateHandler.CheckForUpdateDone(); UpdateHandler.StartCheckingForUpdate(); // async // Try to update the configuration from the distant shared folder ShareExportConf.StartCheckingForUpdates(); // ReSharper disable once ObjectCreationAsStatement new ReccurentAction(User.Ping, 1000 * 60 * 120); // code explorer if (Config.Instance.CodeExplorerAutoHideOnNonProgressFile) { CodeExplorer.Toggle(Abl.IsCurrentProgressFile); } else if (Config.Instance.CodeExplorerVisible) { CodeExplorer.Toggle(); } // File explorer if (Config.Instance.FileExplorerAutoHideOnNonProgressFile) { FileExplorer.Toggle(Abl.IsCurrentProgressFile); } else if (Config.Instance.FileExplorerVisible) { FileExplorer.Toggle(); } return(true); } catch (Exception e) { ErrorHandler.ShowErrors(e, "Plugin startup"); } return(false); }