diff --git a/.gitignore b/.gitignore
index 2129ba7..930bf61 100644
--- a/.gitignore
+++ b/.gitignore
@@ -167,3 +167,4 @@ pip-log.txt
# Nuget packages
/packages
/paket-files
+/ImageCommentsPackage/Output/ImageComments.vsix
diff --git a/ImageCommentsPackage/ImageCommentsCommand.cs b/ImageCommentsPackage/ImageCommentsCommand.cs
new file mode 100644
index 0000000..a462203
--- /dev/null
+++ b/ImageCommentsPackage/ImageCommentsCommand.cs
@@ -0,0 +1,32 @@
+namespace LM.ImageComments.Package
+{
+ using System.ComponentModel.Design;
+ using LM.ImageComments.EditorComponent;
+ using Microsoft.VisualStudio.Shell;
+ using Task = System.Threading.Tasks.Task;
+
+ internal sealed class ImageCommentsCommand
+ {
+ public static async Task InitializeAsync(AsyncPackage package)
+ {
+ await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();
+
+ var mcs = await package.GetServiceAsync((typeof(IMenuCommandService))) as OleMenuCommandService;
+
+ if (null != mcs)
+ {
+ var menuCommandID = new CommandID(GuidList.guidImageCommentsPackageCmdSet, (int)PkgCmdIDList.cmdidToggleImageComments);
+
+ var menuItem = new MenuCommand((s, e) => Execute(package), menuCommandID);
+
+ mcs.AddCommand(menuItem);
+ }
+ }
+
+ private static void Execute(AsyncPackage package)
+ {
+ ThreadHelper.ThrowIfNotOnUIThread();
+ ImageAdornmentManager.ToggleEnabled();
+ }
+ }
+}
diff --git a/ImageCommentsPackage/ImageCommentsPackage.cs b/ImageCommentsPackage/ImageCommentsPackage.cs
index 56d8cf3..dd54b85 100644
--- a/ImageCommentsPackage/ImageCommentsPackage.cs
+++ b/ImageCommentsPackage/ImageCommentsPackage.cs
@@ -1,46 +1,32 @@
namespace LM.ImageComments.Package
{
using System;
- using System.ComponentModel.Design;
using System.Diagnostics;
- using System.Diagnostics.CodeAnalysis;
- using System.Globalization;
+ using System.Diagnostics.CodeAnalysis;
+ using System.Globalization;
using System.Runtime.InteropServices;
- using LM.ImageComments.EditorComponent;
+ using System.Threading;
using Microsoft.VisualStudio.Shell;
+ using Task = System.Threading.Tasks.Task;
///
/// Package containing image comment command
///
- [PackageRegistration(UseManagedResourcesOnly = true)]
+ [PackageRegistration(UseManagedResourcesOnly = true, AllowsBackgroundLoading = true)]
[InstalledProductRegistration("#110", "#112", "1.0", IconResourceID = 400)]
[ProvideMenuResource("Menus.ctmenu", 1)]
[Guid(GuidList.guidImageCommentsPackagePkgString)]
[SuppressMessage("StyleCop.CSharp.DocumentationRules", "SA1650:ElementDocumentationMustBeSpelledCorrectly", Justification = "pkgdef, VS and vsixmanifest are valid VS terms")]
- public sealed class ImageCommentsPackage : Microsoft.VisualStudio.Shell.Package
+ public sealed class ImageCommentsPackage : AsyncPackage
{
- #region Package Members
-
///
/// Creates and registers image comment enable/disable toggle command
///
- protected override void Initialize()
+ protected override async Task InitializeAsync(CancellationToken cancellationToken, IProgress progress)
{
- ThreadHelper.ThrowIfNotOnUIThread();
-
- Trace.WriteLine (string.Format(CultureInfo.CurrentCulture, "Entering Initialize() of: {0}", this.ToString()));
- base.Initialize();
-
- OleMenuCommandService mcs = GetService(typeof(IMenuCommandService)) as OleMenuCommandService;
- if ( null != mcs )
- {
- CommandID menuCommandID = new CommandID(GuidList.guidImageCommentsPackageCmdSet, (int)PkgCmdIDList.cmdidToggleImageComments);
- MenuCommand menuItem = new MenuCommand(
- (sender, args) => { ImageAdornmentManager.ToggleEnabled(); },
- menuCommandID);
- mcs.AddCommand( menuItem );
- }
+ Trace.WriteLine(string.Format(CultureInfo.CurrentCulture, "Entering Initialize() of: {0}", this.ToString()));
+ await JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken);
+ await ImageCommentsCommand.InitializeAsync(this);
}
- #endregion
}
}
diff --git a/ImageCommentsPackage/ImageCommentsPackage.csproj b/ImageCommentsPackage/ImageCommentsPackage.csproj
index c00b3d0..1d3a177 100644
--- a/ImageCommentsPackage/ImageCommentsPackage.csproj
+++ b/ImageCommentsPackage/ImageCommentsPackage.csproj
@@ -86,6 +86,7 @@
+