/// <summary> /// Initialization of the package; this method is called right after the package is sited, so this is the place /// where you can put all the initialization code that rely on services provided by VisualStudio. /// </summary> /// <param name="cancellationToken">A cancellation token to monitor for initialization cancellation, which can occur when VS is shutting down.</param> /// <param name="progress">A provider for progress updates.</param> /// <returns>A task representing the async work of package initialization, or an already completed task if there is none. Do not return null from this method.</returns> protected override async Task InitializeAsync(CancellationToken cancellationToken, IProgress <ServiceProgressData> progress) { // When initialized asynchronously, the current thread may be a background thread at this point. // Do any initialization that requires the UI thread after switching to the UI thread. await this.JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken); await TipOfTheDayCommand.InitializeAsync(this); // Show TotD at startup if (ShouldShowTOTD()) { TipOfTheDay.ShowWindow(); } }
public void HandleVsInitialized() { var cadence = GetCadence(); if (cadence == DisplayCadence.Never || cadence == DisplayCadence.SolutionLoad) { return; } if (ShouldShowTip(cadence)) { TipOfTheDay.ShowWindow(); Task.Run(async() => await SetLastDisplayTimeNowAsync()); } }
public void HandleSolutionOpened() { var cadence = GetCadence(); // Allow one operation when cadence is Startup and multiple when cadence is SolutionLoad if (!(cadence == DisplayCadence.Startup && !_solutionOpenedOnce) && !(cadence == DisplayCadence.SolutionLoad)) { return; } if (ShouldShowTip(cadence)) { TipOfTheDay.ShowWindow(); _solutionOpenedOnce = true; // When DisplayCadence is Startup, show tip only once Task.Run(async() => await SetLastDisplayTimeNowAsync()); } }
/// <summary> /// This function is the callback used to execute the command when the menu item is clicked. /// See the constructor to see how the menu item is associated with this function using /// OleMenuCommandService service and MenuCommand class. /// </summary> /// <param name="sender">Event sender.</param> /// <param name="e">Event args.</param> private void Execute(object sender, EventArgs e) { TipOfTheDay.ShowWindow(); }