Skip to content

Commit 05c3d60

Browse files
authored
Merge pull request #28 from justcla/master
AsyncPackage update for VS2019 Renamed item GoToCharacter on Edit->GoTo menu. Removed Ctrl+Shift+L global shortcut.
2 parents d46b6c4 + 732f76a commit 05c3d60

7 files changed

+175
-79
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ bld/
1616
[Bb]in/
1717
[Oo]bj/
1818
*.ide/
19+
.vs/
20+
app.config
1921

2022
# MSTest test Results
2123
[Tt]est[Rr]esult*/

EasyMotion/EasyMotion.csproj

+67-10
Original file line numberDiff line numberDiff line change
@@ -56,21 +56,76 @@
5656
<Reference Include="Microsoft.VisualStudio.ComponentModelHost, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
5757
<Reference Include="Microsoft.VisualStudio.CoreUtility, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
5858
<Reference Include="Microsoft.VisualStudio.Editor, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
59+
<Reference Include="Microsoft.VisualStudio.Imaging, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
60+
<HintPath>..\packages\Microsoft.VisualStudio.Imaging.14.3.25407\lib\net45\Microsoft.VisualStudio.Imaging.dll</HintPath>
61+
</Reference>
62+
<Reference Include="Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
63+
<HintPath>..\packages\Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime.14.3.26930\lib\net20\Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime.dll</HintPath>
64+
<EmbedInteropTypes>True</EmbedInteropTypes>
65+
</Reference>
66+
<Reference Include="Microsoft.VisualStudio.OLE.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
67+
<HintPath>..\packages\Microsoft.VisualStudio.OLE.Interop.7.10.6071\lib\Microsoft.VisualStudio.OLE.Interop.dll</HintPath>
68+
</Reference>
69+
<Reference Include="Microsoft.VisualStudio.Shell.14.0, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
70+
<HintPath>..\packages\Microsoft.VisualStudio.Shell.14.0.14.3.25407\lib\Microsoft.VisualStudio.Shell.14.0.dll</HintPath>
71+
</Reference>
72+
<Reference Include="Microsoft.VisualStudio.Shell.Immutable.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
73+
<HintPath>..\packages\Microsoft.VisualStudio.Shell.Immutable.10.0.10.0.30319\lib\net40\Microsoft.VisualStudio.Shell.Immutable.10.0.dll</HintPath>
74+
</Reference>
75+
<Reference Include="Microsoft.VisualStudio.Shell.Immutable.11.0, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
76+
<HintPath>..\packages\Microsoft.VisualStudio.Shell.Immutable.11.0.11.0.50727\lib\net45\Microsoft.VisualStudio.Shell.Immutable.11.0.dll</HintPath>
77+
</Reference>
78+
<Reference Include="Microsoft.VisualStudio.Shell.Immutable.12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
79+
<HintPath>..\packages\Microsoft.VisualStudio.Shell.Immutable.12.0.12.0.21003\lib\net45\Microsoft.VisualStudio.Shell.Immutable.12.0.dll</HintPath>
80+
</Reference>
81+
<Reference Include="Microsoft.VisualStudio.Shell.Immutable.14.0, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
82+
<HintPath>..\packages\Microsoft.VisualStudio.Shell.Immutable.14.0.14.3.25407\lib\net45\Microsoft.VisualStudio.Shell.Immutable.14.0.dll</HintPath>
83+
</Reference>
84+
<Reference Include="Microsoft.VisualStudio.Shell.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
85+
<HintPath>..\packages\Microsoft.VisualStudio.Shell.Interop.7.10.6072\lib\net11\Microsoft.VisualStudio.Shell.Interop.dll</HintPath>
86+
</Reference>
87+
<Reference Include="Microsoft.VisualStudio.Shell.Interop.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
88+
<HintPath>..\packages\Microsoft.VisualStudio.Shell.Interop.10.0.10.0.30320\lib\net20\Microsoft.VisualStudio.Shell.Interop.10.0.dll</HintPath>
89+
<EmbedInteropTypes>True</EmbedInteropTypes>
90+
</Reference>
91+
<Reference Include="Microsoft.VisualStudio.Shell.Interop.11.0, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
92+
<HintPath>..\packages\Microsoft.VisualStudio.Shell.Interop.11.0.11.0.61031\lib\net20\Microsoft.VisualStudio.Shell.Interop.11.0.dll</HintPath>
93+
<EmbedInteropTypes>True</EmbedInteropTypes>
94+
</Reference>
95+
<Reference Include="Microsoft.VisualStudio.Shell.Interop.12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
96+
<HintPath>..\packages\Microsoft.VisualStudio.Shell.Interop.12.0.12.0.30111\lib\net20\Microsoft.VisualStudio.Shell.Interop.12.0.dll</HintPath>
97+
<EmbedInteropTypes>True</EmbedInteropTypes>
98+
</Reference>
99+
<Reference Include="Microsoft.VisualStudio.Shell.Interop.14.0.DesignTime, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
100+
<HintPath>..\packages\Microsoft.VisualStudio.Shell.Interop.14.0.DesignTime.14.3.26929\lib\net20\Microsoft.VisualStudio.Shell.Interop.14.0.DesignTime.dll</HintPath>
101+
<EmbedInteropTypes>True</EmbedInteropTypes>
102+
</Reference>
103+
<Reference Include="Microsoft.VisualStudio.Shell.Interop.8.0, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
104+
<HintPath>..\packages\Microsoft.VisualStudio.Shell.Interop.8.0.8.0.50728\lib\net11\Microsoft.VisualStudio.Shell.Interop.8.0.dll</HintPath>
105+
</Reference>
106+
<Reference Include="Microsoft.VisualStudio.Shell.Interop.9.0, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
107+
<HintPath>..\packages\Microsoft.VisualStudio.Shell.Interop.9.0.9.0.30729\lib\Microsoft.VisualStudio.Shell.Interop.9.0.dll</HintPath>
108+
</Reference>
59109
<Reference Include="Microsoft.VisualStudio.Text.Data, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
60110
<Reference Include="Microsoft.VisualStudio.Text.Logic, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
61-
<Reference Include="Microsoft.VisualStudio.OLE.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
62-
<Reference Include="Microsoft.VisualStudio.Shell.11.0, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
63-
<Reference Include="Microsoft.VisualStudio.Shell.Immutable.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
64-
<Reference Include="Microsoft.VisualStudio.Shell.Immutable.11.0, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
65-
<Reference Include="Microsoft.VisualStudio.Shell.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
66-
<Reference Include="Microsoft.VisualStudio.Shell.Interop.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
67-
<Reference Include="Microsoft.VisualStudio.Shell.Interop.8.0, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
68-
<Reference Include="Microsoft.VisualStudio.Shell.Interop.9.0, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
69111
<Reference Include="Microsoft.VisualStudio.Text.UI, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
70112
<Reference Include="Microsoft.VisualStudio.Text.UI.Wpf, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
71-
<Reference Include="Microsoft.VisualStudio.TextManager.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
72-
<Reference Include="Microsoft.VisualStudio.TextManager.Interop.8.0, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
113+
<Reference Include="Microsoft.VisualStudio.TextManager.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
114+
<HintPath>..\packages\Microsoft.VisualStudio.TextManager.Interop.7.10.6071\lib\net11\Microsoft.VisualStudio.TextManager.Interop.dll</HintPath>
115+
</Reference>
73116
<Reference Include="Microsoft.VisualStudio.TextManager.Interop.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
117+
<Reference Include="Microsoft.VisualStudio.TextManager.Interop.8.0, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
118+
<HintPath>..\packages\Microsoft.VisualStudio.TextManager.Interop.8.0.8.0.50728\lib\net11\Microsoft.VisualStudio.TextManager.Interop.8.0.dll</HintPath>
119+
</Reference>
120+
<Reference Include="Microsoft.VisualStudio.Threading, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
121+
<HintPath>..\packages\Microsoft.VisualStudio.Threading.14.1.111\lib\net45\Microsoft.VisualStudio.Threading.dll</HintPath>
122+
</Reference>
123+
<Reference Include="Microsoft.VisualStudio.Utilities, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
124+
<HintPath>..\packages\Microsoft.VisualStudio.Utilities.14.3.25407\lib\net45\Microsoft.VisualStudio.Utilities.dll</HintPath>
125+
</Reference>
126+
<Reference Include="Microsoft.VisualStudio.Validation, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
127+
<HintPath>..\packages\Microsoft.VisualStudio.Validation.14.1.111\lib\net45\Microsoft.VisualStudio.Validation.dll</HintPath>
128+
</Reference>
74129
<Reference Include="PresentationCore" />
75130
<Reference Include="PresentationFramework" />
76131
<Reference Include="System" />
@@ -184,9 +239,11 @@
184239
<Error Condition="'$(VisualStudioVersion)' == '14.0' And !Exists('..\packages\Microsoft.VisualStudio.Sdk.BuildTasks.14.0.14.0.12-pre\build\Microsoft.VisualStudio.Sdk.BuildTasks.14.0.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.VisualStudio.Sdk.BuildTasks.14.0.14.0.12-pre\build\Microsoft.VisualStudio.Sdk.BuildTasks.14.0.targets'))" />
185240
<Error Condition="'$(VisualStudioVersion)' != '14.0' And !Exists('..\packages\Microsoft.VSSDK.BuildTools.15.0.26201\build\Microsoft.VSSDK.BuildTools.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.VSSDK.BuildTools.15.0.26201\build\Microsoft.VSSDK.BuildTools.props'))" />
186241
<Error Condition="'$(VisualStudioVersion)' != '14.0' And !Exists('..\packages\Microsoft.VSSDK.BuildTools.15.0.26201\build\Microsoft.VSSDK.BuildTools.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.VSSDK.BuildTools.15.0.26201\build\Microsoft.VSSDK.BuildTools.targets'))" />
242+
<Error Condition="!Exists('..\packages\Microsoft.VisualStudio.SDK.EmbedInteropTypes.15.0.16\build\Microsoft.VisualStudio.SDK.EmbedInteropTypes.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.VisualStudio.SDK.EmbedInteropTypes.15.0.16\build\Microsoft.VisualStudio.SDK.EmbedInteropTypes.targets'))" />
187243
</Target>
188244
<Import Project="..\packages\Microsoft.VisualStudio.Sdk.BuildTasks.14.0.14.0.12-pre\build\Microsoft.VisualStudio.Sdk.BuildTasks.14.0.targets" Condition="'$(VisualStudioVersion)' == '14.0' And Exists('..\packages\Microsoft.VisualStudio.Sdk.BuildTasks.14.0.14.0.12-pre\build\Microsoft.VisualStudio.Sdk.BuildTasks.14.0.targets')" />
189245
<Import Project="..\packages\Microsoft.VSSDK.BuildTools.15.0.26201\build\Microsoft.VSSDK.BuildTools.targets" Condition="'$(VisualStudioVersion)' != '14.0' And Exists('..\packages\Microsoft.VSSDK.BuildTools.15.0.26201\build\Microsoft.VSSDK.BuildTools.targets')" />
246+
<Import Project="..\packages\Microsoft.VisualStudio.SDK.EmbedInteropTypes.15.0.16\build\Microsoft.VisualStudio.SDK.EmbedInteropTypes.targets" Condition="Exists('..\packages\Microsoft.VisualStudio.SDK.EmbedInteropTypes.15.0.16\build\Microsoft.VisualStudio.SDK.EmbedInteropTypes.targets')" />
190247
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
191248
Other similar extension points exist, see Microsoft.Common.targets.
192249
<Target Name="BeforeBuild">

EasyMotion/EasyMotion.vsct

+25-21
Original file line numberDiff line numberDiff line change
@@ -5,51 +5,55 @@
55
<Extern href="vsshlids.h"/>
66

77
<Commands package="guidEasyMotionPkg">
8+
89
<Groups>
9-
<Group guid="guidEasyMotionCmdSet" id="MyMenuGroup" priority="0x0600">
10-
<Parent guid="guidSHLMainMenu" id="IDM_VS_MENU_TOOLS"/>
10+
<!-- Add the command to its own Group in the Edit->GoTo Menu -->
11+
<Group guid="guidEasyMotionCmdSet" id="EasyMotionGotoGroup" priority="0x0150">
12+
<Parent guid="guidSHLMainMenu" id="IDM_VS_EDITOR_GOTO_MENU"/>
1113
</Group>
1214
</Groups>
1315

1416
<Buttons>
15-
<Button guid="guidEasyMotionCmdSet" id="CmdEasyMotionNavigate" priority="0x0100" type="Button">
16-
<Parent guid="guidEasyMotionCmdSet" id="MyMenuGroup" />
17-
<Icon guid="guidImages" id="bmpPic1" />
17+
<Button guid="guidEasyMotionCmdSet" id="CmdEasyMotionNavigate" type="Button">
18+
<!-- Only show the button when a TextEditor is in focus. (Requires VisibiltyContraint)-->
19+
<CommandFlag>DynamicVisibility</CommandFlag>
20+
<CommandFlag>DefaultInvisible</CommandFlag>
1821
<Strings>
19-
<ButtonText>EasyMotionNavigate</ButtonText>
22+
<!-- Set the keyboard accelerator with &amp; before the hotkey (Go To Character) -->
23+
<ButtonText>Go To &amp;Character...</ButtonText>
2024
<CanonicalName>.EasyMotion.Navigate</CanonicalName>
2125
<LocCanonicalName>.EasyMotion.Navigate</LocCanonicalName>
2226
</Strings>
2327
</Button>
2428
</Buttons>
2529

26-
<Bitmaps>
27-
<Bitmap guid="guidImages" href="Resources\Images.png" usedList="bmpPic1, bmpPic2, bmpPicSearch, bmpPicX, bmpPicArrows"/>
28-
</Bitmaps>
29-
3030
</Commands>
3131

32+
<CommandPlacements>
33+
<CommandPlacement guid="guidEasyMotionCmdSet" id="CmdEasyMotionNavigate" priority="0x0100">
34+
<Parent guid="guidEasyMotionCmdSet" id="EasyMotionGotoGroup" />
35+
</CommandPlacement>
36+
</CommandPlacements>
37+
38+
<VisibilityConstraints>
39+
<!-- Enable the command only when a text editor is in focus. (Requires Button to have DynamicVisibility CommandFlag) -->
40+
<VisibilityItem guid="guidEasyMotionCmdSet" id="CmdEasyMotionNavigate" context="GUID_TextEditorFactory"/>
41+
</VisibilityConstraints>
42+
3243
<KeyBindings>
33-
<KeyBinding guid="guidEasyMotionCmdSet" id="CmdEasyMotionNavigate" key1="VK_OEM_1" mod1="Control Shift" editor="guidVSStd97" />
34-
<KeyBinding guid="guidEasyMotionCmdSet" id="CmdEasyMotionNavigate" key1="l" mod1="Control Shift" editor="guidVSStd97" />
44+
<!-- Assign shortcut Ctrl+Shift+; Note: VK_OEM_1 = Semicolon key (;/:) -->
45+
<KeyBinding guid="guidEasyMotionCmdSet" id="CmdEasyMotionNavigate" key1="VK_OEM_1" mod1="Control Shift" editor="GUID_TextEditorFactory" />
3546
</KeyBindings>
3647

3748
<Symbols>
3849
<GuidSymbol name="guidEasyMotionPkg" value="{5bb019ad-a18e-4c86-af3c-27217853df95}" />
3950

4051
<GuidSymbol name="guidEasyMotionCmdSet" value="{907a344a-75bb-4df4-a3b3-9bc3299593b7}">
41-
<IDSymbol name="MyMenuGroup" value="0x1020" />
52+
<IDSymbol name="EasyMotionGotoGroup" value="0x1020" />
53+
<IDSymbol name="EasyMotionEditGroup" value="0x1030" />
4254
<IDSymbol name="CmdEasyMotionNavigate" value="0x0100" />
4355
</GuidSymbol>
4456

45-
<GuidSymbol name="guidImages" value="{a0c05e65-710e-45db-a639-008c57538b55}" >
46-
<IDSymbol name="bmpPic1" value="1" />
47-
<IDSymbol name="bmpPic2" value="2" />
48-
<IDSymbol name="bmpPicSearch" value="3" />
49-
<IDSymbol name="bmpPicX" value="4" />
50-
<IDSymbol name="bmpPicArrows" value="5" />
51-
<IDSymbol name="bmpPicStrikethrough" value="6" />
52-
</GuidSymbol>
5357
</Symbols>
5458

5559
</CommandTable>

EasyMotion/EasyMotionPackage.cs

+35-28
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,15 @@
1-
using System;
2-
using System.Diagnostics;
3-
using System.Globalization;
4-
using System.Runtime.InteropServices;
5-
using System.ComponentModel.Design;
6-
using Microsoft.Win32;
7-
using Microsoft.VisualStudio;
8-
using Microsoft.VisualStudio.Shell.Interop;
9-
using Microsoft.VisualStudio.OLE.Interop;
10-
using Microsoft.VisualStudio.Shell;
11-
using System.ComponentModel.Composition.Hosting;
1+
using Microsoft.VisualStudio;
122
using Microsoft.VisualStudio.ComponentModelHost;
3+
using Microsoft.VisualStudio.Editor;
4+
using Microsoft.VisualStudio.Shell;
135
using Microsoft.VisualStudio.Text.Editor;
146
using Microsoft.VisualStudio.TextManager.Interop;
15-
using Microsoft.VisualStudio.Editor;
7+
using System;
8+
using System.ComponentModel.Composition.Hosting;
9+
using System.ComponentModel.Design;
10+
using System.Runtime.InteropServices;
11+
using System.Threading;
12+
using Task = System.Threading.Tasks.Task;
1613

1714
namespace EasyMotion
1815
{
@@ -28,38 +25,48 @@ namespace EasyMotion
2825
/// </summary>
2926
// This attribute tells the PkgDef creation utility (CreatePkgDef.exe) that this class is
3027
// a package.
31-
[PackageRegistration(UseManagedResourcesOnly = true)]
28+
[PackageRegistration(UseManagedResourcesOnly = true, AllowsBackgroundLoading = true)]
3229
// This attribute is used to register the information needed to show this package
3330
// in the Help/About dialog of Visual Studio.
34-
[InstalledProductRegistration("#110", "#112", "1.0", IconResourceID = 400)]
31+
[InstalledProductRegistration("#110", "#112", "2.1.0", IconResourceID = 400)]
3532
// This attribute is needed to let the shell know that this package exposes some menus.
3633
[ProvideMenuResource("Menus.ctmenu", 1)]
3734
[Guid(GuidList.guidEasyMotionPkgString)]
38-
public sealed class EasyMotionPackage : Package
35+
[ProvideAutoLoad(VSConstants.UICONTEXT.ShellInitialized_string, PackageAutoLoadFlags.BackgroundLoad)]
36+
public sealed class EasyMotionPackage : AsyncPackage
3937
{
40-
private IComponentModel _componentModel;
4138
private ExportProvider _exportProvider;
4239

43-
public EasyMotionPackage()
44-
{
45-
46-
}
40+
public EasyMotionPackage() { }
4741

48-
protected override void Initialize()
42+
protected override async Task InitializeAsync(CancellationToken cancellationToken, IProgress<ServiceProgressData> progress)
4943
{
50-
base.Initialize();
44+
await base.InitializeAsync(cancellationToken, progress);
5145

52-
_componentModel = (IComponentModel)GetService(typeof(SComponentModel));
53-
_exportProvider = _componentModel.DefaultExportProvider;
46+
await SetExportProvider();
5447

5548
// Add our command handlers for menu (commands must exist in the .vsct file)
56-
OleMenuCommandService mcs = GetService(typeof(IMenuCommandService)) as OleMenuCommandService;
57-
if ( null != mcs )
49+
if (await GetServiceAsync(typeof(IMenuCommandService)) is OleMenuCommandService mcs)
5850
{
51+
// Switch to main thread before calling AddCommand because it calls GetService
52+
await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();
53+
5954
// Create the command for the menu item.
6055
CommandID menuCommandID = new CommandID(GuidList.guidEasyMotionCmdSet, (int)PkgCmdIDList.CmdEasyMotionNavigate);
61-
MenuCommand menuItem = new MenuCommand(MenuItemCallback, menuCommandID );
62-
mcs.AddCommand( menuItem );
56+
MenuCommand menuItem = new MenuCommand(MenuItemCallback, menuCommandID);
57+
mcs.AddCommand(menuItem);
58+
}
59+
}
60+
61+
private async Task SetExportProvider()
62+
{
63+
if (await GetServiceAsync(typeof(SComponentModel)) is IComponentModel componentModel)
64+
{
65+
_exportProvider = componentModel.DefaultExportProvider;
66+
}
67+
else
68+
{
69+
throw new Exception("Unable to fetch ComponentModel");
6370
}
6471
}
6572

EasyMotion/ReleaseNotes.txt

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
1-
05-May-2020 v1.0.3 - Upgraded to install on VS2019
1+
EasyMotion - Visual Studio Extension
2+
12-May-2020 v2.1.0 - Renamed menu item to "Go To Character" and moved to Edit->GoTo menu
3+
10-May-2020 v2.0.0 - Installation target limited to VS2017+
4+
05-May-2020 v1.0.3 - Upgraded to install on VS2019
25
30-Mar-2017 v1.0.2 - Upgraded to support VS2017

0 commit comments

Comments
 (0)