diff options
author | Christian Gunderman <chgund@microsoft.com> | 2019-06-14 01:15:30 +0300 |
---|---|---|
committer | Christian Gunderman <chgund@microsoft.com> | 2019-06-14 01:15:30 +0300 |
commit | 05276921caa7f385ad7059a85a80c9f7f24f2f1b (patch) | |
tree | fe885119cfc74550e868a5721e53609d410f9e75 | |
parent | 11f2661eb32f1f5566882ddb2be728f5f70b7197 (diff) |
Port completion and quick info xplat samples.
34 files changed, 1770 insertions, 0 deletions
diff --git a/samples/AsyncCompletion/HelloWorldCompletion.Mac/HelloWorldCompletion.Mac.csproj b/samples/AsyncCompletion/HelloWorldCompletion.Mac/HelloWorldCompletion.Mac.csproj new file mode 100644 index 0000000..c6a5277 --- /dev/null +++ b/samples/AsyncCompletion/HelloWorldCompletion.Mac/HelloWorldCompletion.Mac.csproj @@ -0,0 +1,11 @@ +<Project Sdk="Microsoft.NET.Sdk"> + <PropertyGroup> + <TargetFramework>net472</TargetFramework> + </PropertyGroup> + <ItemGroup> + <PackageReference Include="MonoDevelop.Addins" Version="0.4.6" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\HelloWorldCompletion\HelloWorldCompletion.csproj" /> + </ItemGroup> +</Project> diff --git a/samples/AsyncCompletion/HelloWorldCompletion.Mac/Properties/AddinInfo.cs b/samples/AsyncCompletion/HelloWorldCompletion.Mac/Properties/AddinInfo.cs new file mode 100644 index 0000000..2f5b7cc --- /dev/null +++ b/samples/AsyncCompletion/HelloWorldCompletion.Mac/Properties/AddinInfo.cs @@ -0,0 +1,39 @@ +// +// AddinInfo.cs +// +// Author: +// Mikayla Hutchinson <m.j.hutchinson@gmail.com> +// +// Copyright (c) 2017 Microsoft Corp. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +using System; +using Mono.Addins; +using Mono.Addins.Description; + +[assembly: Addin( + "MacAddIn", + Namespace = "MacAddIn", + Version = "1.0" +)] + +[assembly: AddinName("Hello World completion")] +[assembly: AddinCategory("IDE extensions")] +[assembly: AddinDescription("Hello World completion item source for CSharp language")] +[assembly: AddinAuthor("Microsoft")] diff --git a/samples/AsyncCompletion/HelloWorldCompletion.Mac/Properties/Manifest.addin.xml b/samples/AsyncCompletion/HelloWorldCompletion.Mac/Properties/Manifest.addin.xml new file mode 100644 index 0000000..2acbce6 --- /dev/null +++ b/samples/AsyncCompletion/HelloWorldCompletion.Mac/Properties/Manifest.addin.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ExtensionModel> + <!-- Register with Visual Studio for Mac --> + <Runtime> + <Import assembly="HelloWorldCompletion.dll" /> + <Import assembly="HelloWorldCompletion.Mac.dll" /> + </Runtime> + <!-- Register with Managed Extensibility Framework (MEF) --> + <Extension path="/MonoDevelop/Ide/Composition"> + <Assembly file="HelloWorldCompletion.dll" /> + <Assembly file="HelloWorldCompletion.Mac.dll" /> + </Extension> +</ExtensionModel>
\ No newline at end of file diff --git a/samples/AsyncCompletion/HelloWorldCompletion.VSIX/HelloWorldCompletion.VSIX.csproj b/samples/AsyncCompletion/HelloWorldCompletion.VSIX/HelloWorldCompletion.VSIX.csproj new file mode 100644 index 0000000..cd341ed --- /dev/null +++ b/samples/AsyncCompletion/HelloWorldCompletion.VSIX/HelloWorldCompletion.VSIX.csproj @@ -0,0 +1,95 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <MinimumVisualStudioVersion>16.0</MinimumVisualStudioVersion> + <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> + </PropertyGroup> + <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <SchemaVersion>2.0</SchemaVersion> + <ProjectTypeGuids>{82b43b9b-a64c-4715-b499-d71e9ca2bd60};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> + <ProjectGuid>{8B38C523-2044-46E9-9752-1DC19AE85F76}</ProjectGuid> + <OutputType>Library</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>HelloWorldCompletion.VSIX</RootNamespace> + <AssemblyName>HelloWorldCompletion.VSIX</AssemblyName> + <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion> + <GeneratePkgDefFile>false</GeneratePkgDefFile> + <UseCodebase>true</UseCodebase> + <IncludeAssemblyInVSIXContainer>true</IncludeAssemblyInVSIXContainer> + <IncludeDebugSymbolsInVSIXContainer>false</IncludeDebugSymbolsInVSIXContainer> + <IncludeDebugSymbolsInLocalVSIXDeployment>false</IncludeDebugSymbolsInLocalVSIXDeployment> + <CopyBuildOutputToOutputDirectory>true</CopyBuildOutputToOutputDirectory> + <CopyOutputSymbolsToOutputDirectory>true</CopyOutputSymbolsToOutputDirectory> + <StartAction>Program</StartAction> + <StartProgram Condition="'$(DevEnvDir)' != ''">$(DevEnvDir)devenv.exe</StartProgram> + <StartArguments>/rootsuffix Exp</StartArguments> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <ItemGroup> + <Compile Include="Properties\AssemblyInfo.cs" /> + </ItemGroup> + <ItemGroup> + <None Include="source.extension.vsixmanifest"> + <SubType>Designer</SubType> + </None> + </ItemGroup> + <ItemGroup> + <Reference Include="Microsoft.CSharp" /> + <Reference Include="Microsoft.VisualStudio.Language, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> + <Reference Include="Microsoft.VisualStudio.Text.Data, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> + <Reference Include="PresentationCore" /> + <Reference Include="PresentationFramework" /> + <Reference Include="System" /> + <Reference Include="System.ComponentModel.Composition" /> + <Reference Include="System.Data" /> + <Reference Include="System.Design" /> + <Reference Include="System.Drawing" /> + <Reference Include="System.Windows.Forms" /> + <Reference Include="System.Xaml" /> + <Reference Include="System.Xml" /> + <Reference Include="WindowsBase" /> + </ItemGroup> + <ItemGroup> + <PackageReference Include="Microsoft.VisualStudio.SDK" Version="16.0.200" ExcludeAssets="runtime" /> + <PackageReference Include="Microsoft.VSSDK.BuildTools" Version="16.1.2094" /> + <PackageReference Include="System.Collections.Immutable"> + <Version>1.5.0</Version> + </PackageReference> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\HelloWorldCompletion\HelloWorldCompletion.csproj"> + <Project>{BDDFFF32-F6A9-4A9C-B1E1-8C669B20103D}</Project> + <Name>HelloWorldCompletion</Name> + <IncludeOutputGroupsInVSIX>BuiltProjectOutputGroup%3bBuiltProjectOutputGroupDependencies%3bGetCopyToOutputDirectoryItems%3bSatelliteDllsProjectOutputGroup%3b</IncludeOutputGroupsInVSIX> + <IncludeOutputGroupsInVSIXLocalOnly>DebugSymbolsProjectOutputGroup%3b</IncludeOutputGroupsInVSIXLocalOnly> + </ProjectReference> + </ItemGroup> + <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> + <Import Project="$(VSToolsPath)\VSSDK\Microsoft.VsSDK.targets" Condition="'$(VSToolsPath)' != ''" /> + <!-- To modify your build process, add your task inside one of the targets below and uncomment it. + Other similar extension points exist, see Microsoft.Common.targets. + <Target Name="BeforeBuild"> + </Target> + <Target Name="AfterBuild"> + </Target> + --> +</Project>
\ No newline at end of file diff --git a/samples/AsyncCompletion/HelloWorldCompletion.VSIX/Properties/AssemblyInfo.cs b/samples/AsyncCompletion/HelloWorldCompletion.VSIX/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..c42e1cf --- /dev/null +++ b/samples/AsyncCompletion/HelloWorldCompletion.VSIX/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("SlowCompletion")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("SlowCompletion")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/samples/AsyncCompletion/HelloWorldCompletion.VSIX/source.extension.vsixmanifest b/samples/AsyncCompletion/HelloWorldCompletion.VSIX/source.extension.vsixmanifest new file mode 100644 index 0000000..b7a3894 --- /dev/null +++ b/samples/AsyncCompletion/HelloWorldCompletion.VSIX/source.extension.vsixmanifest @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="utf-8"?> +<PackageManifest Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011" xmlns:d="http://schemas.microsoft.com/developer/vsx-schema-design/2011"> + <Metadata> + <Identity Id="HelloWorldCompletion.565f55d3-b05f-4b27-b6c0-d3d8610bcd9a" Version="1.0" Language="en-US" Publisher="Microsoft" /> + <DisplayName>Hello World Completion Source</DisplayName> + <Description xml:space="preserve">Experimental completion source for diagnostics</Description> + </Metadata> + <Installation> + <InstallationTarget Id="Microsoft.VisualStudio.Community" Version="[16.0, 17.0)" /> + </Installation> + <Dependencies> + <Dependency Id="Microsoft.Framework.NDP" DisplayName="Microsoft .NET Framework" d:Source="Manual" Version="[4.5,)" /> + </Dependencies> + <Prerequisites> + <Prerequisite Id="Microsoft.VisualStudio.Component.CoreEditor" Version="[16.0,17.0)" DisplayName="Visual Studio core editor" /> + </Prerequisites> + <Assets> + <Asset Type="Microsoft.VisualStudio.MefComponent" d:Source="Project" d:ProjectName="HelloWorldCompletion" Path="|HelloWorldCompletion|" /> + </Assets> +</PackageManifest> diff --git a/samples/AsyncCompletion/HelloWorldCompletion.sln b/samples/AsyncCompletion/HelloWorldCompletion.sln new file mode 100644 index 0000000..6fe7aa7 --- /dev/null +++ b/samples/AsyncCompletion/HelloWorldCompletion.sln @@ -0,0 +1,37 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.28824.42 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HelloWorldCompletion.VSIX", "HelloWorldCompletion.VSIX\HelloWorldCompletion.VSIX.csproj", "{8B38C523-2044-46E9-9752-1DC19AE85F76}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HelloWorldCompletion", "HelloWorldCompletion\HelloWorldCompletion.csproj", "{BDDFFF32-F6A9-4A9C-B1E1-8C669B20103D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HelloWorldCompletion.Mac", "HelloWorldCompletion.Mac\HelloWorldCompletion.Mac.csproj", "{51B6CBF8-58E6-4524-98BE-8CA79EF35E3E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {8B38C523-2044-46E9-9752-1DC19AE85F76}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8B38C523-2044-46E9-9752-1DC19AE85F76}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8B38C523-2044-46E9-9752-1DC19AE85F76}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8B38C523-2044-46E9-9752-1DC19AE85F76}.Release|Any CPU.Build.0 = Release|Any CPU + {BDDFFF32-F6A9-4A9C-B1E1-8C669B20103D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BDDFFF32-F6A9-4A9C-B1E1-8C669B20103D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BDDFFF32-F6A9-4A9C-B1E1-8C669B20103D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BDDFFF32-F6A9-4A9C-B1E1-8C669B20103D}.Release|Any CPU.Build.0 = Release|Any CPU + {51B6CBF8-58E6-4524-98BE-8CA79EF35E3E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {51B6CBF8-58E6-4524-98BE-8CA79EF35E3E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {51B6CBF8-58E6-4524-98BE-8CA79EF35E3E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {51B6CBF8-58E6-4524-98BE-8CA79EF35E3E}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {4FB27A93-7DDD-4974-A352-34DCCD3C9EA5} + EndGlobalSection +EndGlobal diff --git a/samples/AsyncCompletion/HelloWorldCompletion/HelloWorldCompletion.csproj b/samples/AsyncCompletion/HelloWorldCompletion/HelloWorldCompletion.csproj new file mode 100644 index 0000000..3b88c4d --- /dev/null +++ b/samples/AsyncCompletion/HelloWorldCompletion/HelloWorldCompletion.csproj @@ -0,0 +1,481 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProjectGuid>{BDDFFF32-F6A9-4A9C-B1E1-8C669B20103D}</ProjectGuid> + <OutputType>Library</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>HelloWorldCompletion</RootNamespace> + <AssemblyName>HelloWorldCompletion</AssemblyName> + <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion> + <FileAlignment>512</FileAlignment> + <Deterministic>true</Deterministic> + <NuGetPackageImportStamp> + </NuGetPackageImportStamp> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <ItemGroup> + <Reference Include="EnvDTE, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <HintPath>..\packages\EnvDTE.8.0.2\lib\net10\EnvDTE.dll</HintPath> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> + <Reference Include="EnvDTE100, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\EnvDTE100.10.0.3\lib\net20\EnvDTE100.dll</HintPath> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> + <Reference Include="EnvDTE80, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <HintPath>..\packages\EnvDTE80.8.0.3\lib\net10\EnvDTE80.dll</HintPath> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> + <Reference Include="EnvDTE90, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <HintPath>..\packages\EnvDTE90.9.0.3\lib\net10\EnvDTE90.dll</HintPath> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> + <Reference Include="EnvDTE90a, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <HintPath>..\packages\EnvDTE90a.9.0.3\lib\net10\EnvDTE90a.dll</HintPath> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> + <Reference Include="Microsoft.Build, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.Build.15.8.166\lib\net46\Microsoft.Build.dll</HintPath> + </Reference> + <Reference Include="Microsoft.Build.Framework, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.Build.Framework.15.8.166\lib\net46\Microsoft.Build.Framework.dll</HintPath> + </Reference> + <Reference Include="Microsoft.Build.Tasks.Core, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.Build.Tasks.Core.15.8.166\lib\net46\Microsoft.Build.Tasks.Core.dll</HintPath> + </Reference> + <Reference Include="Microsoft.Build.Utilities.Core, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.Build.Utilities.Core.15.8.166\lib\net46\Microsoft.Build.Utilities.Core.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.CommandBars, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <HintPath>..\packages\Microsoft.VisualStudio.CommandBars.8.0.0.1\lib\net10\Microsoft.VisualStudio.CommandBars.dll</HintPath> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> + <Reference Include="Microsoft.VisualStudio.ComponentModelHost, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.ComponentModelHost.16.0.467\lib\net46\Microsoft.VisualStudio.ComponentModelHost.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.Composition, Version=15.8.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Composition.15.8.98\lib\net46\Microsoft.VisualStudio.Composition.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.Composition.NetFxAttributes, Version=15.8.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Composition.NetFxAttributes.15.8.98\lib\net45\Microsoft.VisualStudio.Composition.NetFxAttributes.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.CoreUtility, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.CoreUtility.16.0.467\lib\net472\Microsoft.VisualStudio.CoreUtility.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.Debugger.Interop, Version=8.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <HintPath>..\packages\Microsoft.VisualStudio.Debugger.Interop.8.0.50729\lib\net11\Microsoft.VisualStudio.Debugger.Interop.dll</HintPath> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> + <Reference Include="Microsoft.VisualStudio.Debugger.Interop.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Debugger.Interop.10.0.10.0.30320\lib\net20\Microsoft.VisualStudio.Debugger.Interop.10.0.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.Debugger.Interop.11.0, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Debugger.Interop.11.0.11.0.50728\lib\net20\Microsoft.VisualStudio.Debugger.Interop.11.0.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.Debugger.Interop.12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Debugger.Interop.12.0.12.0.21006\lib\net20\Microsoft.VisualStudio.Debugger.Interop.12.0.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.Debugger.Interop.14.0, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Debugger.Interop.14.0.14.3.25408\lib\net20\Microsoft.VisualStudio.Debugger.Interop.14.0.dll</HintPath> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> + <Reference Include="Microsoft.VisualStudio.Debugger.Interop.15.0, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Debugger.Interop.15.0.15.9.28307\lib\net20\Microsoft.VisualStudio.Debugger.Interop.15.0.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.Debugger.Interop.16.0, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Debugger.Interop.16.0.16.0.28727\lib\net20\Microsoft.VisualStudio.Debugger.Interop.16.0.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.Debugger.InteropA, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <HintPath>..\packages\Microsoft.VisualStudio.Debugger.InteropA.9.0.21023\lib\net10\Microsoft.VisualStudio.Debugger.InteropA.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.Designer.Interfaces, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <HintPath>..\packages\Microsoft.VisualStudio.Designer.Interfaces.1.1.4323\lib\net11\Microsoft.VisualStudio.Designer.Interfaces.dll</HintPath> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> + <Reference Include="Microsoft.VisualStudio.DpiAwareness, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.DpiAwareness.6.0.28727\lib\net46\Microsoft.VisualStudio.DpiAwareness.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.Editor, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Editor.16.0.467\lib\net472\Microsoft.VisualStudio.Editor.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.ImageCatalog, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.ImageCatalog.16.0.28727\lib\net45\Microsoft.VisualStudio.ImageCatalog.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.Imaging, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Imaging.16.0.28729\lib\net45\Microsoft.VisualStudio.Imaging.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime.14.3.26930\lib\net20\Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime.dll</HintPath> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> + <Reference Include="Microsoft.VisualStudio.Language, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Language.16.0.467\lib\net472\Microsoft.VisualStudio.Language.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.Language.Intellisense, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Language.Intellisense.16.0.467\lib\net472\Microsoft.VisualStudio.Language.Intellisense.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.Language.NavigateTo.Interfaces, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Language.NavigateTo.Interfaces.16.0.467\lib\net472\Microsoft.VisualStudio.Language.NavigateTo.Interfaces.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.Language.StandardClassification, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Language.StandardClassification.16.0.467\lib\net472\Microsoft.VisualStudio.Language.StandardClassification.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.LanguageServer.Client, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.LanguageServer.Client.16.0.2264\lib\net46\Microsoft.VisualStudio.LanguageServer.Client.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.LanguageServer.Protocol, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.LanguageServer.Protocol.16.0.2264\lib\netstandard1.0\Microsoft.VisualStudio.LanguageServer.Protocol.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.OLE.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <HintPath>..\packages\Microsoft.VisualStudio.OLE.Interop.7.10.6071\lib\Microsoft.VisualStudio.OLE.Interop.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.Package.LanguageService.15.0, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Package.LanguageService.15.0.16.0.28729\lib\net45\Microsoft.VisualStudio.Package.LanguageService.15.0.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.ProjectAggregator, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.ProjectAggregator.8.0.50728\lib\net20\Microsoft.VisualStudio.ProjectAggregator.dll</HintPath> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> + <Reference Include="Microsoft.VisualStudio.ProjectSystem, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.ProjectSystem.15.8.243\lib\net46\Microsoft.VisualStudio.ProjectSystem.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.ProjectSystem.Interop, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.ProjectSystem.15.8.243\lib\net46\Microsoft.VisualStudio.ProjectSystem.Interop.dll</HintPath> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> + <Reference Include="Microsoft.VisualStudio.ProjectSystem.VS, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.ProjectSystem.15.8.243\lib\net46\Microsoft.VisualStudio.ProjectSystem.VS.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.Setup.Configuration.Interop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Setup.Configuration.Interop.1.16.30\lib\net35\Microsoft.VisualStudio.Setup.Configuration.Interop.dll</HintPath> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> + <Reference Include="Microsoft.VisualStudio.Shell.15.0, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Shell.15.0.16.0.28729\lib\net45\Microsoft.VisualStudio.Shell.15.0.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.Shell.Design, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Shell.Design.16.0.28729\lib\net45\Microsoft.VisualStudio.Shell.Design.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.Shell.Embeddable, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Shell.Embeddable.16.0.28727\lib\net45\Microsoft.VisualStudio.Shell.Embeddable.dll</HintPath> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> + <Reference Include="Microsoft.VisualStudio.Shell.Framework, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Shell.Framework.16.0.28729\lib\net45\Microsoft.VisualStudio.Shell.Framework.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.Shell.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <HintPath>..\packages\Microsoft.VisualStudio.Shell.Interop.7.10.6072\lib\net11\Microsoft.VisualStudio.Shell.Interop.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Shell.Interop.10.0.10.0.30320\lib\net20\Microsoft.VisualStudio.Shell.Interop.10.0.dll</HintPath> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.11.0, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Shell.Interop.11.0.11.0.61031\lib\net20\Microsoft.VisualStudio.Shell.Interop.11.0.dll</HintPath> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Shell.Interop.12.0.12.0.30111\lib\net20\Microsoft.VisualStudio.Shell.Interop.12.0.dll</HintPath> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.14.0.DesignTime, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Shell.Interop.14.0.DesignTime.14.3.26929\lib\net20\Microsoft.VisualStudio.Shell.Interop.14.0.DesignTime.dll</HintPath> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.15.0.DesignTime, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Shell.Interop.15.0.DesignTime.15.0.26932\lib\net20\Microsoft.VisualStudio.Shell.Interop.15.0.DesignTime.dll</HintPath> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.15.1.DesignTime, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Shell.Interop.15.1.DesignTime.15.0.26929\lib\net20\Microsoft.VisualStudio.Shell.Interop.15.1.DesignTime.dll</HintPath> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.15.3.DesignTime, Version=15.3.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Shell.Interop.15.3.DesignTime.15.0.26929\lib\net20\Microsoft.VisualStudio.Shell.Interop.15.3.DesignTime.dll</HintPath> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.15.5.DesignTime, Version=15.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Shell.Interop.15.5.DesignTime.15.6.27413\lib\net20\Microsoft.VisualStudio.Shell.Interop.15.5.DesignTime.dll</HintPath> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.15.6.DesignTime, Version=15.6.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Shell.Interop.15.6.DesignTime.15.6.27413\lib\net20\Microsoft.VisualStudio.Shell.Interop.15.6.DesignTime.dll</HintPath> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.15.7.DesignTime, Version=15.7.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Shell.Interop.15.7.DesignTime.15.7.1\lib\net20\Microsoft.VisualStudio.Shell.Interop.15.7.DesignTime.dll</HintPath> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.15.8.DesignTime, Version=15.8.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Shell.Interop.15.8.DesignTime.15.8.1\lib\net20\Microsoft.VisualStudio.Shell.Interop.15.8.DesignTime.dll</HintPath> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.8.0, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <HintPath>..\packages\Microsoft.VisualStudio.Shell.Interop.8.0.8.0.50728\lib\net11\Microsoft.VisualStudio.Shell.Interop.8.0.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.9.0, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <HintPath>..\packages\Microsoft.VisualStudio.Shell.Interop.9.0.9.0.30730\lib\net11\Microsoft.VisualStudio.Shell.Interop.9.0.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.TaskRunnerExplorer.14.0, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.TaskRunnerExplorer.14.0.14.0.0\lib\net40\Microsoft.VisualStudio.TaskRunnerExplorer.14.0.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.Text.Data, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Text.Data.16.0.467\lib\net472\Microsoft.VisualStudio.Text.Data.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.Text.Logic, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Text.Logic.16.0.467\lib\net472\Microsoft.VisualStudio.Text.Logic.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.Text.UI, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Text.UI.16.0.467\lib\net472\Microsoft.VisualStudio.Text.UI.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.Text.UI.Wpf, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Text.UI.Wpf.16.0.467\lib\net472\Microsoft.VisualStudio.Text.UI.Wpf.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.TextManager.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <HintPath>..\packages\Microsoft.VisualStudio.TextManager.Interop.7.10.6071\lib\net11\Microsoft.VisualStudio.TextManager.Interop.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.TextManager.Interop.12.1.DesignTime, Version=12.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.TextManager.Interop.12.1.DesignTime.12.1.30330\lib\net20\Microsoft.VisualStudio.TextManager.Interop.12.1.DesignTime.dll</HintPath> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> + <Reference Include="Microsoft.VisualStudio.TextManager.Interop.8.0, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <HintPath>..\packages\Microsoft.VisualStudio.TextManager.Interop.8.0.8.0.50728\lib\net11\Microsoft.VisualStudio.TextManager.Interop.8.0.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.TextTemplating.15.0, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.TextTemplating.15.0.16.0.28727\lib\net45\Microsoft.VisualStudio.TextTemplating.15.0.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.TextTemplating.Interfaces.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.TextTemplating.Interfaces.10.0.10.0.30320\lib\net40\Microsoft.VisualStudio.TextTemplating.Interfaces.10.0.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.TextTemplating.Interfaces.11.0, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.TextTemplating.Interfaces.11.0.11.0.50728\lib\net45\Microsoft.VisualStudio.TextTemplating.Interfaces.11.0.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.TextTemplating.Interfaces.15.0, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.TextTemplating.Interfaces.15.0.16.0.28727\lib\net45\Microsoft.VisualStudio.TextTemplating.Interfaces.15.0.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.TextTemplating.VSHost.15.0, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.TextTemplating.VSHost.15.0.16.0.28729\lib\net45\Microsoft.VisualStudio.TextTemplating.VSHost.15.0.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.Threading, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Threading.16.0.102\lib\net46\Microsoft.VisualStudio.Threading.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.Utilities, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Utilities.16.0.28729\lib\net46\Microsoft.VisualStudio.Utilities.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.Validation, Version=15.3.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Validation.15.3.58\lib\net45\Microsoft.VisualStudio.Validation.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.Web.BrowserLink.12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Web.BrowserLink.12.0.12.0.0\lib\net40\Microsoft.VisualStudio.Web.BrowserLink.12.0.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.Workspace.VSIntegration.Contracts, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Workspace.VSIntegration.15.0.485\lib\net46\Microsoft.VisualStudio.Workspace.VSIntegration.Contracts.dll</HintPath> + </Reference> + <Reference Include="Microsoft.Win32.Primitives, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.Win32.Primitives.4.3.0\lib\net46\Microsoft.Win32.Primitives.dll</HintPath> + <Private>True</Private> + <Private>True</Private> + </Reference> + <Reference Include="Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> + <HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath> + </Reference> + <Reference Include="PresentationCore" /> + <Reference Include="PresentationFramework" /> + <Reference Include="stdole, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <HintPath>..\packages\stdole.7.0.3302\lib\net10\stdole.dll</HintPath> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> + <Reference Include="StreamJsonRpc, Version=1.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\StreamJsonRpc.1.5.43\lib\net46\StreamJsonRpc.dll</HintPath> + </Reference> + <Reference Include="System" /> + <Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"> + <HintPath>..\packages\System.Buffers.4.5.0\lib\netstandard2.0\System.Buffers.dll</HintPath> + </Reference> + <Reference Include="System.Collections.Immutable, Version=1.2.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\System.Collections.Immutable.1.5.0\lib\netstandard2.0\System.Collections.Immutable.dll</HintPath> + </Reference> + <Reference Include="System.ComponentModel.Composition" /> + <Reference Include="System.Composition.AttributedModel, Version=1.0.31.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\System.Composition.AttributedModel.1.0.31\lib\portable-net45+win8+wp8+wpa81\System.Composition.AttributedModel.dll</HintPath> + </Reference> + <Reference Include="System.Composition.Convention, Version=1.0.31.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\System.Composition.Convention.1.0.31\lib\portable-net45+win8+wp8+wpa81\System.Composition.Convention.dll</HintPath> + </Reference> + <Reference Include="System.Composition.Hosting, Version=1.0.31.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\System.Composition.Hosting.1.0.31\lib\portable-net45+win8+wp8+wpa81\System.Composition.Hosting.dll</HintPath> + </Reference> + <Reference Include="System.Composition.Runtime, Version=1.0.31.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\System.Composition.Runtime.1.0.31\lib\portable-net45+win8+wp8+wpa81\System.Composition.Runtime.dll</HintPath> + </Reference> + <Reference Include="System.Composition.TypedParts, Version=1.0.31.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\System.Composition.TypedParts.1.0.31\lib\portable-net45+win8+wp8+wpa81\System.Composition.TypedParts.dll</HintPath> + </Reference> + <Reference Include="System.Configuration" /> + <Reference Include="System.Core" /> + <Reference Include="System.Design" /> + <Reference Include="System.Drawing" /> + <Reference Include="System.IO, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\System.IO.4.3.0\lib\net462\System.IO.dll</HintPath> + <Private>True</Private> + <Private>True</Private> + </Reference> + <Reference Include="System.IO.Compression, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> + <HintPath>..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll</HintPath> + <Private>True</Private> + <Private>True</Private> + </Reference> + <Reference Include="System.IO.Compression.FileSystem" /> + <Reference Include="System.Net.Http, Version=4.1.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\System.Net.Http.4.3.3\lib\net46\System.Net.Http.dll</HintPath> + <Private>True</Private> + <Private>True</Private> + </Reference> + <Reference Include="System.Numerics" /> + <Reference Include="System.Reflection" /> + <Reference Include="System.Reflection.Metadata, Version=1.3.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\System.Reflection.Metadata.1.3.0\lib\portable-net45+win8\System.Reflection.Metadata.dll</HintPath> + </Reference> + <Reference Include="System.Runtime, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\System.Runtime.4.3.0\lib\net462\System.Runtime.dll</HintPath> + <Private>True</Private> + <Private>True</Private> + </Reference> + <Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath> + <Private>True</Private> + <Private>True</Private> + </Reference> + <Reference Include="System.Runtime.Serialization" /> + <Reference Include="System.Security" /> + <Reference Include="System.Security.Cryptography.Algorithms, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net463\System.Security.Cryptography.Algorithms.dll</HintPath> + <Private>True</Private> + <Private>True</Private> + </Reference> + <Reference Include="System.Security.Cryptography.Encoding, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll</HintPath> + <Private>True</Private> + <Private>True</Private> + </Reference> + <Reference Include="System.Security.Cryptography.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll</HintPath> + <Private>True</Private> + <Private>True</Private> + </Reference> + <Reference Include="System.Security.Cryptography.X509Certificates, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net461\System.Security.Cryptography.X509Certificates.dll</HintPath> + <Private>True</Private> + <Private>True</Private> + </Reference> + <Reference Include="System.Threading.Tasks.Dataflow, Version=4.5.24.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\System.Threading.Tasks.Dataflow.4.5.24\lib\portable-net45+win8+wpa81\System.Threading.Tasks.Dataflow.dll</HintPath> + </Reference> + <Reference Include="System.Threading.Tasks.Extensions, Version=4.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"> + <HintPath>..\packages\System.Threading.Tasks.Extensions.4.3.0\lib\portable-net45+win8+wp8+wpa81\System.Threading.Tasks.Extensions.dll</HintPath> + </Reference> + <Reference Include="System.ValueTuple, Version=4.0.1.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"> + <HintPath>..\packages\System.ValueTuple.4.3.0\lib\netstandard1.0\System.ValueTuple.dll</HintPath> + <Private>True</Private> + <Private>True</Private> + </Reference> + <Reference Include="System.Windows.Forms" /> + <Reference Include="System.Xaml" /> + <Reference Include="System.Xml.Linq" /> + <Reference Include="System.Data.DataSetExtensions" /> + <Reference Include="Microsoft.CSharp" /> + <Reference Include="System.Data" /> + <Reference Include="System.Xml" /> + <Reference Include="UIAutomationProvider" /> + <Reference Include="VSLangProj, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <HintPath>..\packages\VSLangProj.7.0.3301\lib\net10\VSLangProj.dll</HintPath> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> + <Reference Include="VSLangProj100, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\VSLangProj100.10.0.30320\lib\net20\VSLangProj100.dll</HintPath> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> + <Reference Include="VSLangProj110, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\VSLangProj110.11.0.61031\lib\net20\VSLangProj110.dll</HintPath> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> + <Reference Include="VSLangProj140, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\VSLangProj140.14.0.25030\lib\net20\VSLangProj140.dll</HintPath> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> + <Reference Include="VSLangProj150, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\VSLangProj150.15.0.26229\lib\net20\VSLangProj150.dll</HintPath> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> + <Reference Include="VSLangProj157, Version=15.7.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\VSLangProj157.15.7.0\lib\net20\VSLangProj157.dll</HintPath> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> + <Reference Include="VSLangProj158, Version=15.8.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\VSLangProj158.15.8.0\lib\net20\VSLangProj158.dll</HintPath> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> + <Reference Include="VSLangProj2, Version=7.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <HintPath>..\packages\VSLangProj2.7.0.5001\lib\net11\VSLangProj2.dll</HintPath> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> + <Reference Include="VSLangProj80, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <HintPath>..\packages\VSLangProj80.8.0.50728\lib\net11\VSLangProj80.dll</HintPath> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> + <Reference Include="VSLangProj90, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <HintPath>..\packages\VSLangProj90.9.0.30730\lib\net10\VSLangProj90.dll</HintPath> + <EmbedInteropTypes>True</EmbedInteropTypes> + </Reference> + <Reference Include="WindowsBase" /> + <Reference Include="WindowsFormsIntegration" /> + </ItemGroup> + <ItemGroup> + <Compile Include="HelloWorldCompletionSourceProvider.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + <Compile Include="HelloWorldCompletionItemSource.cs" /> + </ItemGroup> + <ItemGroup> + <None Include="app.config" /> + <None Include="packages.config" /> + </ItemGroup> + <ItemGroup> + <Analyzer Include="..\packages\Microsoft.VisualStudio.SDK.Analyzers.15.8.36\analyzers\cs\Microsoft.VisualStudio.SDK.Analyzers.dll" /> + <Analyzer Include="..\packages\Microsoft.VisualStudio.Threading.Analyzers.15.8.168\analyzers\cs\Microsoft.VisualStudio.Threading.Analyzers.dll" /> + </ItemGroup> + <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> + <Import Project="..\packages\Microsoft.VisualStudio.ProjectSystem.Sdk.Tools.15.8.243\build\Microsoft.VisualStudio.ProjectSystem.Sdk.Tools.targets" Condition="Exists('..\packages\Microsoft.VisualStudio.ProjectSystem.Sdk.Tools.15.8.243\build\Microsoft.VisualStudio.ProjectSystem.Sdk.Tools.targets')" /> + <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> + <PropertyGroup> + <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> + </PropertyGroup> + <Error Condition="!Exists('..\packages\Microsoft.VisualStudio.ProjectSystem.Sdk.Tools.15.8.243\build\Microsoft.VisualStudio.ProjectSystem.Sdk.Tools.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.VisualStudio.ProjectSystem.Sdk.Tools.15.8.243\build\Microsoft.VisualStudio.ProjectSystem.Sdk.Tools.targets'))" /> + <Error Condition="!Exists('..\packages\Microsoft.VisualStudio.SDK.EmbedInteropTypes.15.0.27\build\Microsoft.VisualStudio.SDK.EmbedInteropTypes.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.VisualStudio.SDK.EmbedInteropTypes.15.0.27\build\Microsoft.VisualStudio.SDK.EmbedInteropTypes.targets'))" /> + <Error Condition="!Exists('..\packages\Microsoft.VisualStudio.Threading.Analyzers.15.8.168\build\Microsoft.VisualStudio.Threading.Analyzers.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.VisualStudio.Threading.Analyzers.15.8.168\build\Microsoft.VisualStudio.Threading.Analyzers.targets'))" /> + <Error Condition="!Exists('..\packages\Microsoft.VisualStudio.SDK.Analyzers.15.8.36\build\Microsoft.VisualStudio.SDK.Analyzers.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.VisualStudio.SDK.Analyzers.15.8.36\build\Microsoft.VisualStudio.SDK.Analyzers.targets'))" /> + <Error Condition="!Exists('..\packages\Microsoft.VisualStudio.ProjectSystem.15.8.243\build\Microsoft.VisualStudio.ProjectSystem.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.VisualStudio.ProjectSystem.15.8.243\build\Microsoft.VisualStudio.ProjectSystem.targets'))" /> + </Target> + <Import Project="..\packages\Microsoft.VisualStudio.SDK.EmbedInteropTypes.15.0.27\build\Microsoft.VisualStudio.SDK.EmbedInteropTypes.targets" Condition="Exists('..\packages\Microsoft.VisualStudio.SDK.EmbedInteropTypes.15.0.27\build\Microsoft.VisualStudio.SDK.EmbedInteropTypes.targets')" /> + <Import Project="..\packages\Microsoft.VisualStudio.Threading.Analyzers.15.8.168\build\Microsoft.VisualStudio.Threading.Analyzers.targets" Condition="Exists('..\packages\Microsoft.VisualStudio.Threading.Analyzers.15.8.168\build\Microsoft.VisualStudio.Threading.Analyzers.targets')" /> + <Import Project="..\packages\Microsoft.VisualStudio.SDK.Analyzers.15.8.36\build\Microsoft.VisualStudio.SDK.Analyzers.targets" Condition="Exists('..\packages\Microsoft.VisualStudio.SDK.Analyzers.15.8.36\build\Microsoft.VisualStudio.SDK.Analyzers.targets')" /> + <Import Project="..\packages\Microsoft.VisualStudio.ProjectSystem.15.8.243\build\Microsoft.VisualStudio.ProjectSystem.targets" Condition="Exists('..\packages\Microsoft.VisualStudio.ProjectSystem.15.8.243\build\Microsoft.VisualStudio.ProjectSystem.targets')" /> +</Project>
\ No newline at end of file diff --git a/samples/AsyncCompletion/HelloWorldCompletion/HelloWorldCompletionItemSource.cs b/samples/AsyncCompletion/HelloWorldCompletion/HelloWorldCompletionItemSource.cs new file mode 100644 index 0000000..92ef339 --- /dev/null +++ b/samples/AsyncCompletion/HelloWorldCompletion/HelloWorldCompletionItemSource.cs @@ -0,0 +1,65 @@ +using System; +using System.Collections.Immutable; +using System.Threading; +using System.Threading.Tasks; +using Microsoft.VisualStudio.Core.Imaging; +using Microsoft.VisualStudio.Language.Intellisense.AsyncCompletion; +using Microsoft.VisualStudio.Language.Intellisense.AsyncCompletion.Data; +using Microsoft.VisualStudio.Language.StandardClassification; +using Microsoft.VisualStudio.Text; +using Microsoft.VisualStudio.Text.Adornments; + +namespace HelloWorldCompletion +{ + public class HelloWorldCompletionSource : IAsyncCompletionSource + { + private static ImageElement CompletionItemIcon = new ImageElement(new ImageId(new Guid("ae27a6b0-e345-4288-96df-5eaf394ee369"), 3335), "Hello Icon"); + private ImmutableArray<CompletionItem> sampleItems; + + public HelloWorldCompletionSource() + { + sampleItems = ImmutableArray.Create( + new CompletionItem("Hello", this, CompletionItemIcon), + new CompletionItem("World", this, CompletionItemIcon)); + } + + public CompletionStartData InitializeCompletion(CompletionTrigger trigger, SnapshotPoint triggerLocation, CancellationToken token) + { + // Since we are plugging in to CSharp content type, + // allow the CSharp language service to pick the Applicable To Span. + return CompletionStartData.ParticipatesInCompletionIfAny; + // Alternatively, we've got to provide location for completion + // return new CompletionStartData(CompletionParticipation.ProvidesItems, ... + } + + public async Task<CompletionContext> GetCompletionContextAsync(IAsyncCompletionSession session, CompletionTrigger trigger, SnapshotPoint triggerLocation, SnapshotSpan applicableToSpan, CancellationToken token) + { + session.Properties["LineNumber"] = triggerLocation.GetContainingLine().LineNumber; + return new CompletionContext(sampleItems); + } + + public async Task<object> GetDescriptionAsync(IAsyncCompletionSession session, CompletionItem item, CancellationToken token) + { + var content = new ContainerElement( + ContainerElementStyle.Wrapped, + CompletionItemIcon, + new ClassifiedTextElement( + new ClassifiedTextRun(PredefinedClassificationTypeNames.Keyword, "Hello!"), + new ClassifiedTextRun(PredefinedClassificationTypeNames.Identifier, " This is a sample item"))); + var lineInfo = new ClassifiedTextElement( + new ClassifiedTextRun( + PredefinedClassificationTypeNames.Comment, + "You are on line " + ((int)(session.Properties["LineNumber"]) + 1).ToString())); + var timeInfo = new ClassifiedTextElement( + new ClassifiedTextRun( + PredefinedClassificationTypeNames.Identifier, + "and it is " + DateTime.Now.ToShortTimeString())); + + return new ContainerElement( + ContainerElementStyle.Stacked, + content, + lineInfo, + timeInfo); + } + } +} diff --git a/samples/AsyncCompletion/HelloWorldCompletion/HelloWorldCompletionSourceProvider.cs b/samples/AsyncCompletion/HelloWorldCompletion/HelloWorldCompletionSourceProvider.cs new file mode 100644 index 0000000..12e3228 --- /dev/null +++ b/samples/AsyncCompletion/HelloWorldCompletion/HelloWorldCompletionSourceProvider.cs @@ -0,0 +1,21 @@ +using Microsoft.VisualStudio.Language.Intellisense.AsyncCompletion; +using Microsoft.VisualStudio.Text.Editor; +using Microsoft.VisualStudio.Utilities; +using System; +using System.ComponentModel.Composition; + +namespace HelloWorldCompletion +{ + [Export(typeof(IAsyncCompletionSourceProvider))] + [ContentType("CSharp")] + [Name("Hello World completion item source")] + internal class HelloWorldCompletionSourceProvider : IAsyncCompletionSourceProvider + { + Lazy<HelloWorldCompletionSource> Source = new Lazy<HelloWorldCompletionSource>(() => new HelloWorldCompletionSource()); + + public IAsyncCompletionSource GetOrCreate(ITextView textView) + { + return Source.Value; + } + } +} diff --git a/samples/AsyncCompletion/HelloWorldCompletion/ProjectProperties.cs b/samples/AsyncCompletion/HelloWorldCompletion/ProjectProperties.cs new file mode 100644 index 0000000..93d54ae --- /dev/null +++ b/samples/AsyncCompletion/HelloWorldCompletion/ProjectProperties.cs @@ -0,0 +1,48 @@ +namespace ExperimentalCompletion +{ + using System; + using System.Collections.Generic; + using System.ComponentModel.Composition; + using System.Linq; + using System.Text; + using System.Threading.Tasks; + using Microsoft.VisualStudio.ProjectSystem; + using Microsoft.VisualStudio.ProjectSystem.Properties; + + [Export] + internal partial class ProjectProperties : StronglyTypedPropertyAccess + { + /// <summary> + /// Initializes a new instance of the <see cref="ProjectProperties"/> class. + /// </summary> + [ImportingConstructor] + public ProjectProperties(ConfiguredProject configuredProject) + : base(configuredProject) + { + } + + /// <summary> + /// Initializes a new instance of the <see cref="ProjectProperties"/> class. + /// </summary> + public ProjectProperties(ConfiguredProject configuredProject, string file, string itemType, string itemName) + : base(configuredProject, file, itemType, itemName) + { + } + + /// <summary> + /// Initializes a new instance of the <see cref="ProjectProperties"/> class. + /// </summary> + public ProjectProperties(ConfiguredProject configuredProject, IProjectPropertiesContext projectPropertiesContext) + : base(configuredProject, projectPropertiesContext) + { + } + + /// <summary> + /// Initializes a new instance of the <see cref="ProjectProperties"/> class. + /// </summary> + public ProjectProperties(ConfiguredProject configuredProject, UnconfiguredProject unconfiguredProject) + : base(configuredProject, unconfiguredProject) + { + } + } +} diff --git a/samples/AsyncCompletion/HelloWorldCompletion/Properties/AssemblyInfo.cs b/samples/AsyncCompletion/HelloWorldCompletion/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..d61778f --- /dev/null +++ b/samples/AsyncCompletion/HelloWorldCompletion/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ExperimentalCompletion")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("ExperimentalCompletion")] +[assembly: AssemblyCopyright("Copyright © 2019")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("bddfff32-f6a9-4a9c-b1e1-8c669b20103d")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/samples/AsyncCompletion/HelloWorldCompletion/app.config b/samples/AsyncCompletion/HelloWorldCompletion/app.config new file mode 100644 index 0000000..c1ace5b --- /dev/null +++ b/samples/AsyncCompletion/HelloWorldCompletion/app.config @@ -0,0 +1,47 @@ +<?xml version="1.0" encoding="utf-8"?> +<configuration> + <runtime> + <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> + <dependentAssembly> + <assemblyIdentity name="Microsoft.VisualStudio.Threading" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-16.0.0.0" newVersion="16.0.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Microsoft.VisualStudio.Validation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-15.3.0.0" newVersion="15.3.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-1.2.3.0" newVersion="1.2.3.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Microsoft.VisualStudio.Shell.Framework" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-16.0.0.0" newVersion="16.0.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Microsoft.VisualStudio.Shell.15.0" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-16.0.0.0" newVersion="16.0.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Microsoft.VisualStudio.ImageCatalog" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-16.0.0.0" newVersion="16.0.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="StreamJsonRpc" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-1.5.0.0" newVersion="1.5.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Microsoft.VisualStudio.CoreUtility" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-16.0.0.0" newVersion="16.0.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Microsoft.VisualStudio.Text.Data" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-16.0.0.0" newVersion="16.0.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Microsoft.VisualStudio.Text.Logic" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-16.0.0.0" newVersion="16.0.0.0" /> + </dependentAssembly> + </assemblyBinding> + </runtime> +</configuration>
\ No newline at end of file diff --git a/samples/AsyncCompletion/HelloWorldCompletion/packages.config b/samples/AsyncCompletion/HelloWorldCompletion/packages.config new file mode 100644 index 0000000..ee578ff --- /dev/null +++ b/samples/AsyncCompletion/HelloWorldCompletion/packages.config @@ -0,0 +1,122 @@ +<?xml version="1.0" encoding="utf-8"?> +<packages> + <package id="EnvDTE" version="8.0.2" targetFramework="net472" /> + <package id="EnvDTE100" version="10.0.3" targetFramework="net472" /> + <package id="EnvDTE80" version="8.0.3" targetFramework="net472" /> + <package id="EnvDTE90" version="9.0.3" targetFramework="net472" /> + <package id="EnvDTE90a" version="9.0.3" targetFramework="net472" /> + <package id="Microsoft.Build" version="15.8.166" targetFramework="net472" /> + <package id="Microsoft.Build.Framework" version="15.8.166" targetFramework="net472" /> + <package id="Microsoft.Build.Tasks.Core" version="15.8.166" targetFramework="net472" /> + <package id="Microsoft.Build.Utilities.Core" version="15.8.166" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.CommandBars" version="8.0.0.1" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.ComponentModelHost" version="16.0.467" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Composition" version="15.8.98" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Composition.NetFxAttributes" version="15.8.98" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.CoreUtility" version="16.0.467" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Debugger.Engine" version="16.0.2032702" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Debugger.Interop" version="8.0.50729" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Debugger.Interop.10.0" version="10.0.30320" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Debugger.Interop.11.0" version="11.0.50728" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Debugger.Interop.12.0" version="12.0.21006" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Debugger.Interop.14.0" version="14.3.25408" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Debugger.Interop.15.0" version="15.9.28307" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Debugger.Interop.16.0" version="16.0.28727" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Debugger.InteropA" version="9.0.21023" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Designer.Interfaces" version="1.1.4323" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.DpiAwareness" version="6.0.28727" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Editor" version="16.0.467" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.ImageCatalog" version="16.0.28727" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Imaging" version="16.0.28729" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime" version="14.3.26930" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Language" version="16.0.467" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Language.Intellisense" version="16.0.467" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Language.NavigateTo.Interfaces" version="16.0.467" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Language.StandardClassification" version="16.0.467" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.LanguageServer.Client" version="16.0.2264" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.LanguageServer.Protocol" version="16.0.2264" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.OLE.Interop" version="7.10.6071" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Package.LanguageService.15.0" version="16.0.28729" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.ProjectAggregator" version="8.0.50728" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.ProjectSystem" version="15.8.243" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.ProjectSystem.Sdk" version="15.8.243" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.ProjectSystem.Sdk.Tools" version="15.8.243" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.SDK" version="16.0.200" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.SDK.Analyzers" version="15.8.36" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.SDK.EmbedInteropTypes" version="15.0.27" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Setup.Configuration.Interop" version="1.16.30" targetFramework="net472" developmentDependency="true" /> + <package id="Microsoft.VisualStudio.Shell.15.0" version="16.0.28729" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Shell.Design" version="16.0.28729" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Shell.Embeddable" version="16.0.28727" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Shell.Framework" version="16.0.28729" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Shell.Interop" version="7.10.6072" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Shell.Interop.10.0" version="10.0.30320" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Shell.Interop.11.0" version="11.0.61031" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Shell.Interop.12.0" version="12.0.30111" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Shell.Interop.14.0.DesignTime" version="14.3.26929" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Shell.Interop.15.0.DesignTime" version="15.0.26932" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Shell.Interop.15.1.DesignTime" version="15.0.26929" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Shell.Interop.15.3.DesignTime" version="15.0.26929" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Shell.Interop.15.5.DesignTime" version="15.6.27413" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Shell.Interop.15.6.DesignTime" version="15.6.27413" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Shell.Interop.15.7.DesignTime" version="15.7.1" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Shell.Interop.15.8.DesignTime" version="15.8.1" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Shell.Interop.8.0" version="8.0.50728" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Shell.Interop.9.0" version="9.0.30730" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.TaskRunnerExplorer.14.0" version="14.0.0" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Text.Data" version="16.0.467" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Text.Logic" version="16.0.467" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Text.UI" version="16.0.467" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Text.UI.Wpf" version="16.0.467" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.TextManager.Interop" version="7.10.6071" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.TextManager.Interop.12.1.DesignTime" version="12.1.30330" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.TextManager.Interop.8.0" version="8.0.50728" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.TextTemplating.15.0" version="16.0.28727" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.TextTemplating.Interfaces.10.0" version="10.0.30320" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.TextTemplating.Interfaces.11.0" version="11.0.50728" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.TextTemplating.Interfaces.15.0" version="16.0.28727" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.TextTemplating.VSHost.15.0" version="16.0.28729" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Threading" version="16.0.102" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Threading.Analyzers" version="15.8.168" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Utilities" version="16.0.28729" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Validation" version="15.3.58" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Web.BrowserLink.12.0" version="12.0.0" targetFramework="net472" /> + <package id="Microsoft.VisualStudio.Workspace.VSIntegration" version="15.0.485" targetFramework="net472" /> + <package id="Microsoft.Win32.Primitives" version="4.3.0" targetFramework="net472" /> + <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net472" /> + <package id="stdole" version="7.0.3302" targetFramework="net472" /> + <package id="StreamJsonRpc" version="1.5.43" targetFramework="net472" /> + <package id="System.Buffers" version="4.5.0" targetFramework="net472" /> + <package id="System.Collections.Immutable" version="1.5.0" targetFramework="net472" /> + <package id="System.ComponentModel.Composition" version="4.5.0" targetFramework="net472" /> + <package id="System.Composition" version="1.0.31" targetFramework="net472" /> + <package id="System.Composition.AttributedModel" version="1.0.31" targetFramework="net472" /> + <package id="System.Composition.Convention" version="1.0.31" targetFramework="net472" /> + <package id="System.Composition.Hosting" version="1.0.31" targetFramework="net472" /> + <package id="System.Composition.Runtime" version="1.0.31" targetFramework="net472" /> + <package id="System.Composition.TypedParts" version="1.0.31" targetFramework="net472" /> + <package id="System.IO" version="4.3.0" targetFramework="net472" /> + <package id="System.IO.Compression" version="4.3.0" targetFramework="net472" /> + <package id="System.Net.Http" version="4.3.3" targetFramework="net472" /> + <package id="System.Reflection.Emit" version="4.3.0" targetFramework="net472" /> + <package id="System.Reflection.Metadata" version="1.3.0" targetFramework="net472" /> + <package id="System.Runtime" version="4.3.0" targetFramework="net472" /> + <package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net472" /> + <package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="net472" /> + <package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net472" /> + <package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net472" /> + <package id="System.Security.Cryptography.X509Certificates" version="4.3.0" targetFramework="net472" /> + <package id="System.Threading.Tasks.Dataflow" version="4.5.24" targetFramework="net472" /> + <package id="System.Threading.Tasks.Extensions" version="4.3.0" targetFramework="net472" /> + <package id="System.ValueTuple" version="4.3.0" targetFramework="net472" /> + <package id="VSLangProj" version="7.0.3301" targetFramework="net472" /> + <package id="VSLangProj100" version="10.0.30320" targetFramework="net472" /> + <package id="VSLangProj110" version="11.0.61031" targetFramework="net472" /> + <package id="VSLangProj140" version="14.0.25030" targetFramework="net472" /> + <package id="VSLangProj150" version="15.0.26229" targetFramework="net472" /> + <package id="VSLangProj157" version="15.7.0" targetFramework="net472" /> + <package id="VSLangProj158" version="15.8.0" targetFramework="net472" /> + <package id="VSLangProj2" version="7.0.5001" targetFramework="net472" /> + <package id="VSLangProj80" version="8.0.50728" targetFramework="net472" /> + <package id="VSLangProj90" version="9.0.30730" targetFramework="net472" /> +</packages>
\ No newline at end of file diff --git a/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo.VSMac/AsyncQuickInfoDemo.VSMac.csproj b/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo.VSMac/AsyncQuickInfoDemo.VSMac.csproj new file mode 100644 index 0000000..594dfe7 --- /dev/null +++ b/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo.VSMac/AsyncQuickInfoDemo.VSMac.csproj @@ -0,0 +1,14 @@ +<Project Sdk="Microsoft.NET.Sdk"> + <PropertyGroup> + <TargetFramework>net461</TargetFramework> + </PropertyGroup> + <ItemGroup> + <PackageReference Include="MonoDevelop.Addins" Version="0.4.4" /> + </ItemGroup> + <ItemGroup> + <AddinReference Include="MonoDevelop.SourceEditor2" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\AsyncQuickInfoDemo\AsyncQuickInfoDemo.csproj" /> + </ItemGroup> +</Project> diff --git a/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo.VSMac/Properties/AddinInfo.cs b/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo.VSMac/Properties/AddinInfo.cs new file mode 100644 index 0000000..9feb19a --- /dev/null +++ b/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo.VSMac/Properties/AddinInfo.cs @@ -0,0 +1,13 @@ +using Mono.Addins; +using Mono.Addins.Description; + +[assembly: Addin( + "AsyncQuickInfoDemo_VSMac", + Namespace = "AsyncQuickInfoDemo_VSMac", + Version = "1.0" +)] + +[assembly: AddinName("AsyncQuickInfoDemo_VSMac")] +[assembly: AddinCategory("IDE extensions")] +[assembly: AddinDescription("Demonstrates xPlat Async Quick Info in Visual Studio")] +[assembly: AddinAuthor("Christian Gunderman")] diff --git a/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo.VSMac/Properties/Manifest.addin.xml b/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo.VSMac/Properties/Manifest.addin.xml new file mode 100644 index 0000000..1642ac5 --- /dev/null +++ b/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo.VSMac/Properties/Manifest.addin.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ExtensionModel> + + <!-- Register common xplat portion with VS Mac MEF Service --> + <Extension path="/MonoDevelop/Ide/TypeService/MefHostServices"> + <Assembly file ="AsyncQuickInfoDemo.dll" /> + </Extension> + <Extension path="/MonoDevelop/Ide/TypeService/PlatformMefHostServices"> + <Assembly file ="AsyncQuickInfoDemo.dll" /> + </Extension> + +</ExtensionModel>
\ No newline at end of file diff --git a/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo.VSWindows/AsyncQuickInfoDemo.VSWindows.csproj b/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo.VSWindows/AsyncQuickInfoDemo.VSWindows.csproj new file mode 100644 index 0000000..49459bd --- /dev/null +++ b/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo.VSWindows/AsyncQuickInfoDemo.VSWindows.csproj @@ -0,0 +1,195 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="..\packages\Microsoft.VSSDK.BuildTools.15.6.152\build\Microsoft.VSSDK.BuildTools.props" Condition="Exists('..\packages\Microsoft.VSSDK.BuildTools.15.6.152\build\Microsoft.VSSDK.BuildTools.props')" /> + <PropertyGroup> + <MinimumVisualStudioVersion>15.0</MinimumVisualStudioVersion> + <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> + <NuGetPackageImportStamp> + </NuGetPackageImportStamp> + <UseCodebase>true</UseCodebase> + </PropertyGroup> + <PropertyGroup> + <SignAssembly>false</SignAssembly> + </PropertyGroup> + <PropertyGroup> + <AssemblyOriginatorKeyFile> + </AssemblyOriginatorKeyFile> + </PropertyGroup> + <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <SchemaVersion>2.0</SchemaVersion> + <ProjectTypeGuids>{82b43b9b-a64c-4715-b499-d71e9ca2bd60};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> + <ProjectGuid>{102F4DF7-E5FA-41C8-B7B8-52E04AE97CF2}</ProjectGuid> + <OutputType>Library</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>AsyncQuickInfoDemo.VSWindows</RootNamespace> + <AssemblyName>AsyncQuickInfoDemo.VSWindows</AssemblyName> + <TargetFrameworkVersion>v4.6</TargetFrameworkVersion> + <GeneratePkgDefFile>true</GeneratePkgDefFile> + <IncludeAssemblyInVSIXContainer>true</IncludeAssemblyInVSIXContainer> + <IncludeDebugSymbolsInVSIXContainer>true</IncludeDebugSymbolsInVSIXContainer> + <IncludeDebugSymbolsInLocalVSIXDeployment>true</IncludeDebugSymbolsInLocalVSIXDeployment> + <CopyBuildOutputToOutputDirectory>true</CopyBuildOutputToOutputDirectory> + <CopyOutputSymbolsToOutputDirectory>false</CopyOutputSymbolsToOutputDirectory> + <StartAction>Program</StartAction> + <StartProgram Condition="'$(DevEnvDir)' != ''">$(DevEnvDir)devenv.exe</StartProgram> + <StartArguments>/rootsuffix Exp</StartArguments> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <ItemGroup> + <Compile Include="AsyncQuickInfoDemoPackage.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + </ItemGroup> + <ItemGroup> + <Reference Include="EnvDTE, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <EmbedInteropTypes>False</EmbedInteropTypes> + </Reference> + <Reference Include="EnvDTE100, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <EmbedInteropTypes>False</EmbedInteropTypes> + </Reference> + <Reference Include="EnvDTE80, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <EmbedInteropTypes>False</EmbedInteropTypes> + </Reference> + <Reference Include="EnvDTE90, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <EmbedInteropTypes>False</EmbedInteropTypes> + </Reference> + <Reference Include="Microsoft.CSharp" /> + <Reference Include="Microsoft.VisualStudio.CommandBars, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <EmbedInteropTypes>False</EmbedInteropTypes> + </Reference> + <Reference Include="Microsoft.VisualStudio.CoreUtility, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.CoreUtility.15.0.26201\lib\net45\Microsoft.VisualStudio.CoreUtility.dll</HintPath> + <Private>True</Private> + </Reference> + <Reference Include="Microsoft.VisualStudio.Imaging, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Imaging.15.0.26201\lib\net45\Microsoft.VisualStudio.Imaging.dll</HintPath> + <Private>True</Private> + </Reference> + <Reference Include="Microsoft.VisualStudio.OLE.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <HintPath>..\packages\Microsoft.VisualStudio.OLE.Interop.7.10.6071\lib\Microsoft.VisualStudio.OLE.Interop.dll</HintPath> + <Private>True</Private> + </Reference> + <Reference Include="Microsoft.VisualStudio.Shell.15.0, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Shell.15.0.15.0.26201\lib\Microsoft.VisualStudio.Shell.15.0.dll</HintPath> + <Private>True</Private> + </Reference> + <Reference Include="Microsoft.VisualStudio.Shell.Framework, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Shell.Framework.15.0.26201\lib\net45\Microsoft.VisualStudio.Shell.Framework.dll</HintPath> + <Private>True</Private> + </Reference> + <Reference Include="Microsoft.VisualStudio.Shell.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <HintPath>..\packages\Microsoft.VisualStudio.Shell.Interop.7.10.6071\lib\Microsoft.VisualStudio.Shell.Interop.dll</HintPath> + <Private>True</Private> + </Reference> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.10.0, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <EmbedInteropTypes>True</EmbedInteropTypes> + <HintPath>..\packages\Microsoft.VisualStudio.Shell.Interop.10.0.10.0.30319\lib\Microsoft.VisualStudio.Shell.Interop.10.0.dll</HintPath> + <Private>True</Private> + </Reference> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.11.0, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <EmbedInteropTypes>True</EmbedInteropTypes> + <HintPath>..\packages\Microsoft.VisualStudio.Shell.Interop.11.0.11.0.61030\lib\Microsoft.VisualStudio.Shell.Interop.11.0.dll</HintPath> + <Private>True</Private> + </Reference> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <EmbedInteropTypes>True</EmbedInteropTypes> + <HintPath>..\packages\Microsoft.VisualStudio.Shell.Interop.12.0.12.0.30110\lib\Microsoft.VisualStudio.Shell.Interop.12.0.dll</HintPath> + <Private>True</Private> + </Reference> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.8.0, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <HintPath>..\packages\Microsoft.VisualStudio.Shell.Interop.8.0.8.0.50727\lib\Microsoft.VisualStudio.Shell.Interop.8.0.dll</HintPath> + <Private>True</Private> + </Reference> + <Reference Include="Microsoft.VisualStudio.Shell.Interop.9.0, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <HintPath>..\packages\Microsoft.VisualStudio.Shell.Interop.9.0.9.0.30729\lib\Microsoft.VisualStudio.Shell.Interop.9.0.dll</HintPath> + <Private>True</Private> + </Reference> + <Reference Include="Microsoft.VisualStudio.TextManager.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <HintPath>..\packages\Microsoft.VisualStudio.TextManager.Interop.7.10.6070\lib\Microsoft.VisualStudio.TextManager.Interop.dll</HintPath> + <Private>True</Private> + </Reference> + <Reference Include="Microsoft.VisualStudio.TextManager.Interop.8.0, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <HintPath>..\packages\Microsoft.VisualStudio.TextManager.Interop.8.0.8.0.50727\lib\Microsoft.VisualStudio.TextManager.Interop.8.0.dll</HintPath> + <Private>True</Private> + </Reference> + <Reference Include="Microsoft.VisualStudio.Threading, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Threading.15.0.240\lib\net45\Microsoft.VisualStudio.Threading.dll</HintPath> + </Reference> + <Reference Include="Microsoft.VisualStudio.Utilities, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Utilities.15.0.26201\lib\net45\Microsoft.VisualStudio.Utilities.dll</HintPath> + <Private>True</Private> + </Reference> + <Reference Include="Microsoft.VisualStudio.Validation, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> + <HintPath>..\packages\Microsoft.VisualStudio.Validation.15.0.82\lib\net45\Microsoft.VisualStudio.Validation.dll</HintPath> + </Reference> + <Reference Include="stdole, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <EmbedInteropTypes>False</EmbedInteropTypes> + </Reference> + <Reference Include="System" /> + <Reference Include="System.Data" /> + <Reference Include="System.Design" /> + <Reference Include="System.Drawing" /> + <Reference Include="System.Windows.Forms" /> + <Reference Include="System.Xml" /> + </ItemGroup> + <ItemGroup> + <None Include="packages.config" /> + </ItemGroup> + <ItemGroup> + <Content Include="Resources\AsyncQuickInfoDemoPackage.ico" /> + <None Include="source.extension.vsixmanifest"> + <SubType>Designer</SubType> + </None> + </ItemGroup> + <ItemGroup> + <EmbeddedResource Include="VSPackage.resx"> + <MergeWithCTO>true</MergeWithCTO> + <ManifestResourceName>VSPackage</ManifestResourceName> + </EmbeddedResource> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\AsyncQuickInfoDemo\AsyncQuickInfoDemo.csproj"> + <Project>{A8C6A9ED-4C62-420E-B7AC-1A6936A8A523}</Project> + <Name>AsyncQuickInfoDemo</Name> + <IncludeOutputGroupsInVSIX>BuiltProjectOutputGroup%3bBuiltProjectOutputGroupDependencies%3bGetCopyToOutputDirectoryItems%3bSatelliteDllsProjectOutputGroup%3b</IncludeOutputGroupsInVSIX> + <IncludeOutputGroupsInVSIXLocalOnly>DebugSymbolsProjectOutputGroup%3b</IncludeOutputGroupsInVSIXLocalOnly> + </ProjectReference> + </ItemGroup> + <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> + <Import Project="$(VSToolsPath)\VSSDK\Microsoft.VsSDK.targets" Condition="'$(VSToolsPath)' != ''" /> + <Import Project="..\packages\Microsoft.VisualStudio.SDK.EmbedInteropTypes.15.0.10\build\Microsoft.VisualStudio.SDK.EmbedInteropTypes.targets" Condition="Exists('..\packages\Microsoft.VisualStudio.SDK.EmbedInteropTypes.15.0.10\build\Microsoft.VisualStudio.SDK.EmbedInteropTypes.targets')" /> + <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> + <PropertyGroup> + <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> + </PropertyGroup> + <Error Condition="!Exists('..\packages\Microsoft.VisualStudio.SDK.EmbedInteropTypes.15.0.10\build\Microsoft.VisualStudio.SDK.EmbedInteropTypes.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.VisualStudio.SDK.EmbedInteropTypes.15.0.10\build\Microsoft.VisualStudio.SDK.EmbedInteropTypes.targets'))" /> + <Error Condition="!Exists('..\packages\Microsoft.VSSDK.BuildTools.15.6.152\build\Microsoft.VSSDK.BuildTools.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.VSSDK.BuildTools.15.6.152\build\Microsoft.VSSDK.BuildTools.props'))" /> + <Error Condition="!Exists('..\packages\Microsoft.VSSDK.BuildTools.15.6.152\build\Microsoft.VSSDK.BuildTools.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.VSSDK.BuildTools.15.6.152\build\Microsoft.VSSDK.BuildTools.targets'))" /> + </Target> + <Import Project="..\packages\Microsoft.VSSDK.BuildTools.15.6.152\build\Microsoft.VSSDK.BuildTools.targets" Condition="Exists('..\packages\Microsoft.VSSDK.BuildTools.15.6.152\build\Microsoft.VSSDK.BuildTools.targets')" /> + <!-- To modify your build process, add your task inside one of the targets below and uncomment it. + Other similar extension points exist, see Microsoft.Common.targets. + <Target Name="BeforeBuild"> + </Target> + <Target Name="AfterBuild"> + </Target> + --> +</Project>
\ No newline at end of file diff --git a/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo.VSWindows/AsyncQuickInfoDemoPackage.cs b/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo.VSWindows/AsyncQuickInfoDemoPackage.cs new file mode 100644 index 0000000..030bb85 --- /dev/null +++ b/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo.VSWindows/AsyncQuickInfoDemoPackage.cs @@ -0,0 +1,37 @@ +namespace AsyncQuickInfoDemo.VSWindows +{ + using System; + using System.Diagnostics.CodeAnalysis; + using System.Runtime.InteropServices; + using Microsoft.VisualStudio.Shell; + + [PackageRegistration(UseManagedResourcesOnly = true)] + [InstalledProductRegistration("#110", "#112", "1.0", IconResourceID = 400)] // Info on this package for Help/About + [Guid(AsyncQuickInfoDemoPackage.PackageGuidString)] + [SuppressMessage("StyleCop.CSharp.DocumentationRules", "SA1650:ElementDocumentationMustBeSpelledCorrectly", Justification = "pkgdef, VS and vsixmanifest are valid VS terms")] + public sealed class AsyncQuickInfoDemoPackage : Package + { + public const string PackageGuidString = "5f021ffd-c754-4f23-bdec-7eb7fc43ffdc"; + + public AsyncQuickInfoDemoPackage() + { + // Inside this method you can place any initialization code that does not require + // any Visual Studio service because at this point the package object is created but + // not sited yet inside Visual Studio environment. The place to do all the other + // initialization is the Initialize method. + } + + #region Package Members + + /// <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> + protected override void Initialize() + { + base.Initialize(); + } + + #endregion + } +} diff --git a/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo.VSWindows/Properties/AssemblyInfo.cs b/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo.VSWindows/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..de208ac --- /dev/null +++ b/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo.VSWindows/Properties/AssemblyInfo.cs @@ -0,0 +1,32 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("AsyncQuickInfoDemo.VSWindows")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("AsyncQuickInfoDemo.VSWindows")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo.VSWindows/Resources/AsyncQuickInfoDemoPackage.ico b/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo.VSWindows/Resources/AsyncQuickInfoDemoPackage.ico Binary files differnew file mode 100644 index 0000000..d323b07 --- /dev/null +++ b/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo.VSWindows/Resources/AsyncQuickInfoDemoPackage.ico diff --git a/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo.VSWindows/VSPackage.resx b/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo.VSWindows/VSPackage.resx new file mode 100644 index 0000000..cb1495c --- /dev/null +++ b/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo.VSWindows/VSPackage.resx @@ -0,0 +1,130 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <data name="110" xml:space="preserve"> + <value>Async Quick Info Demo Extension</value> + </data> + <data name="112" xml:space="preserve"> + <value>Demonstrates xPlat Async Quick Info in Visual Studio</value> + </data> + <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> + <data name="400" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>Resources\AsyncQuickInfoDemoPackage.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> +</root>
\ No newline at end of file diff --git a/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo.VSWindows/packages.config b/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo.VSWindows/packages.config new file mode 100644 index 0000000..b5f0418 --- /dev/null +++ b/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo.VSWindows/packages.config @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<packages> + <package id="Microsoft.VSSDK.BuildTools" version="15.6.152" targetFramework="net46" developmentDependency="true" /> +</packages>
\ No newline at end of file diff --git a/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo.VSWindows/source.extension.vsixmanifest b/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo.VSWindows/source.extension.vsixmanifest new file mode 100644 index 0000000..25eab83 --- /dev/null +++ b/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo.VSWindows/source.extension.vsixmanifest @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8"?> +<PackageManifest Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011" xmlns:d="http://schemas.microsoft.com/developer/vsx-schema-design/2011"> + <Metadata> + <Identity Id="5f021ffd-c754-4f23-bdec-7eb7fc43ffdc" Version="1.0" Language="en-US" Publisher="Christian Gunderman" /> + <DisplayName>Async Quick Info Demo</DisplayName> + <Description xml:space="preserve">Demonstrates xPlat Async Quick Info in Visual Studio</Description> + </Metadata> + <Installation> + <InstallationTarget Version="[15.0,)" Id="Microsoft.VisualStudio.Community" /> + </Installation> + <Dependencies> + <Dependency Id="Microsoft.Framework.NDP" DisplayName="Microsoft .NET Framework" d:Source="Manual" Version="[4.5,)" /> + </Dependencies> + <Assets> + <Asset Type="Microsoft.VisualStudio.VsPackage" d:Source="Project" d:ProjectName="%CurrentProject%" Path="|%CurrentProject%;PkgdefProjectOutputGroup|" /> + <Asset Type="Microsoft.VisualStudio.MefComponent" d:Source="Project" d:ProjectName="AsyncQuickInfoDemo" Path="|AsyncQuickInfoDemo|" /> + </Assets> + <Prerequisites> + <Prerequisite Id="Microsoft.VisualStudio.Component.CoreEditor" Version="[15.6.27309.0,16.0)" DisplayName="Visual Studio core editor" /> + </Prerequisites> +</PackageManifest> diff --git a/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo.sln b/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo.sln new file mode 100644 index 0000000..4423a55 --- /dev/null +++ b/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo.sln @@ -0,0 +1,48 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.27425.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AsyncQuickInfoDemo", "AsyncQuickInfoDemo\AsyncQuickInfoDemo.csproj", "{A8C6A9ED-4C62-420E-B7AC-1A6936A8A523}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AsyncQuickInfoDemo.VSWindows", "AsyncQuickInfoDemo.VSWindows\AsyncQuickInfoDemo.VSWindows.csproj", "{102F4DF7-E5FA-41C8-B7B8-52E04AE97CF2}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AsyncQuickInfoDemo.VSMac", "AsyncQuickInfoDemo.VSMac\AsyncQuickInfoDemo.VSMac.csproj", "{399A03DA-FB4D-4E82-B65E-21E647C94A4D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU - Mac = Debug|Any CPU - Mac + Debug|Any CPU - Windows = Debug|Any CPU - Windows + Release|Any CPU - Mac = Release|Any CPU - Mac + Release|Any CPU - Windows = Release|Any CPU - Windows + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A8C6A9ED-4C62-420E-B7AC-1A6936A8A523}.Debug|Any CPU - Mac.ActiveCfg = Debug|Any CPU + {A8C6A9ED-4C62-420E-B7AC-1A6936A8A523}.Debug|Any CPU - Mac.Build.0 = Debug|Any CPU + {A8C6A9ED-4C62-420E-B7AC-1A6936A8A523}.Debug|Any CPU - Windows.ActiveCfg = Debug|Any CPU + {A8C6A9ED-4C62-420E-B7AC-1A6936A8A523}.Debug|Any CPU - Windows.Build.0 = Debug|Any CPU + {A8C6A9ED-4C62-420E-B7AC-1A6936A8A523}.Release|Any CPU - Mac.ActiveCfg = Release|Any CPU + {A8C6A9ED-4C62-420E-B7AC-1A6936A8A523}.Release|Any CPU - Mac.Build.0 = Release|Any CPU + {A8C6A9ED-4C62-420E-B7AC-1A6936A8A523}.Release|Any CPU - Windows.ActiveCfg = Release|Any CPU + {A8C6A9ED-4C62-420E-B7AC-1A6936A8A523}.Release|Any CPU - Windows.Build.0 = Release|Any CPU + {102F4DF7-E5FA-41C8-B7B8-52E04AE97CF2}.Debug|Any CPU - Mac.ActiveCfg = Debug|Any CPU + {102F4DF7-E5FA-41C8-B7B8-52E04AE97CF2}.Debug|Any CPU - Windows.ActiveCfg = Debug|Any CPU + {102F4DF7-E5FA-41C8-B7B8-52E04AE97CF2}.Debug|Any CPU - Windows.Build.0 = Debug|Any CPU + {102F4DF7-E5FA-41C8-B7B8-52E04AE97CF2}.Release|Any CPU - Mac.ActiveCfg = Release|Any CPU + {102F4DF7-E5FA-41C8-B7B8-52E04AE97CF2}.Release|Any CPU - Windows.ActiveCfg = Release|Any CPU + {102F4DF7-E5FA-41C8-B7B8-52E04AE97CF2}.Release|Any CPU - Windows.Build.0 = Release|Any CPU + {399A03DA-FB4D-4E82-B65E-21E647C94A4D}.Debug|Any CPU - Mac.ActiveCfg = Debug|Any CPU + {399A03DA-FB4D-4E82-B65E-21E647C94A4D}.Debug|Any CPU - Mac.Build.0 = Debug|Any CPU + {399A03DA-FB4D-4E82-B65E-21E647C94A4D}.Debug|Any CPU - Windows.ActiveCfg = Debug|Any CPU + {399A03DA-FB4D-4E82-B65E-21E647C94A4D}.Release|Any CPU - Mac.ActiveCfg = Release|Any CPU + {399A03DA-FB4D-4E82-B65E-21E647C94A4D}.Release|Any CPU - Mac.Build.0 = Release|Any CPU + {399A03DA-FB4D-4E82-B65E-21E647C94A4D}.Release|Any CPU - Windows.ActiveCfg = Release|Any CPU + {399A03DA-FB4D-4E82-B65E-21E647C94A4D}.Release|Any CPU - Windows.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {4A9C904F-63F2-4ADB-8E6A-7DEDD29DBBF5} + EndGlobalSection +EndGlobal diff --git a/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo/AsyncQuickInfoDemo.csproj b/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo/AsyncQuickInfoDemo.csproj new file mode 100644 index 0000000..8d0d45a --- /dev/null +++ b/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo/AsyncQuickInfoDemo.csproj @@ -0,0 +1,17 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <TargetFramework>net46</TargetFramework> + </PropertyGroup> + + <ItemGroup> + <PackageReference Include="Microsoft.VisualStudio.Language" Version="15.6.391-preview-g3c4ef6e5fc" /> + <PackageReference Include="Microsoft.VisualStudio.Language.StandardClassification" Version="15.6.391-preview-g3c4ef6e5fc" /> + <PackageReference Include="Microsoft.VisualStudio.Text.UI" Version="15.6.391-preview-g3c4ef6e5fc" /> + </ItemGroup> + + <ItemGroup> + <Reference Include="System.ComponentModel.Composition" /> + </ItemGroup> + +</Project> diff --git a/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo/EvenLineAsyncQuickInfoSource.cs b/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo/EvenLineAsyncQuickInfoSource.cs new file mode 100644 index 0000000..3ed4943 --- /dev/null +++ b/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo/EvenLineAsyncQuickInfoSource.cs @@ -0,0 +1,83 @@ +namespace AsyncQuickInfoDemo +{ + using System; + using System.Threading; + using System.Threading.Tasks; + using Microsoft.VisualStudio.Core.Imaging; + using Microsoft.VisualStudio.Language.Intellisense; + using Microsoft.VisualStudio.Language.StandardClassification; + using Microsoft.VisualStudio.Text; + using Microsoft.VisualStudio.Text.Adornments; + + internal sealed class EvenLineAsyncQuickInfoSource : IAsyncQuickInfoSource + { + // Copied from KnownMonikers, because Mono doesn't support ImageMoniker type. + private static readonly ImageId AssemblyWarningImageId = new ImageId( + new Guid("{ae27a6b0-e345-4288-96df-5eaf394ee369}"), + 200); + + private ITextBuffer textBuffer; + + public EvenLineAsyncQuickInfoSource(ITextBuffer textBuffer) + { + this.textBuffer = textBuffer; + } + + public void Dispose() + { + // This provider does not perform any cleanup. + } + + public Task<QuickInfoItem> GetQuickInfoItemAsync( + IAsyncQuickInfoSession session, + CancellationToken cancellationToken) + { + var triggerPoint = session.GetTriggerPoint(this.textBuffer.CurrentSnapshot); + if (triggerPoint != null) + { + var line = triggerPoint.Value.GetContainingLine(); + var lineNumber = triggerPoint.Value.GetContainingLine().LineNumber; + var lineSpan = this.textBuffer.CurrentSnapshot.CreateTrackingSpan( + line.Extent, + SpanTrackingMode.EdgeInclusive); + + object content = null; + + // Check if this is an even line. + if ((lineNumber % 2) == 1) + { + content = new ContainerElement( + ContainerElementStyle.Wrapped, + new ImageElement(AssemblyWarningImageId), + new ClassifiedTextElement( + new ClassifiedTextRun(PredefinedClassificationTypeNames.Keyword, "Even Or Odd: "), + new ClassifiedTextRun(PredefinedClassificationTypeNames.Identifier, "Even"))); + } + else + { + content = new ContainerElement( + ContainerElementStyle.Wrapped, + new ImageElement(AssemblyWarningImageId), + new ClassifiedTextElement( + new ClassifiedTextRun(PredefinedClassificationTypeNames.Keyword, "Even Or Odd: "), + new ClassifiedTextRun(PredefinedClassificationTypeNames.Identifier, "Odd"))); + } + + var contentContainer = new ContainerElement( + ContainerElementStyle.Stacked, + content, + new ClassifiedTextElement( + new ClassifiedTextRun( + PredefinedClassificationTypeNames.Identifier, + "The current date and time is: " + DateTime.Now.ToString()))); + + return Task.FromResult( + new QuickInfoItem( + lineSpan, + contentContainer)); + } + + return Task.FromResult<QuickInfoItem>(null); + } + } +}
\ No newline at end of file diff --git a/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo/EvenLineAsyncQuickInfoSourceProvider.cs b/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo/EvenLineAsyncQuickInfoSourceProvider.cs new file mode 100644 index 0000000..7339adb --- /dev/null +++ b/samples/AsyncQuickInfoDemo/AsyncQuickInfoDemo/EvenLineAsyncQuickInfoSourceProvider.cs @@ -0,0 +1,19 @@ +namespace AsyncQuickInfoDemo +{ + using System.ComponentModel.Composition; + using Microsoft.VisualStudio.Text; + using Microsoft.VisualStudio.Language.Intellisense; + using Microsoft.VisualStudio.Utilities; + + [Export(typeof(IAsyncQuickInfoSourceProvider))] + [Name("Even Line Async Quick Info Provider")] + [ContentType("any")] + [Order] + internal sealed class EvenLineAsyncQuickInfoSourceProvider : IAsyncQuickInfoSourceProvider + { + public IAsyncQuickInfoSource TryCreateQuickInfoSource(ITextBuffer textBuffer) + { + return new EvenLineAsyncQuickInfoSource(textBuffer); + } + } +}
\ No newline at end of file diff --git a/samples/AsyncQuickInfoDemo/nuget.config b/samples/AsyncQuickInfoDemo/nuget.config new file mode 100644 index 0000000..3320090 --- /dev/null +++ b/samples/AsyncQuickInfoDemo/nuget.config @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8"?> +<configuration> + <packageSources> + <clear /> + <add key="api.nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" /> + <add key="vside.myget.org" value="https://vside.myget.org/F/vssdk/api/v3/index.json" protocolVersion="3" /> + </packageSources> +</configuration> diff --git a/samples/Images/Completion.Mac.png b/samples/Images/Completion.Mac.png Binary files differnew file mode 100644 index 0000000..e1a033b --- /dev/null +++ b/samples/Images/Completion.Mac.png diff --git a/samples/Images/Completion.Windows.png b/samples/Images/Completion.Windows.png Binary files differnew file mode 100644 index 0000000..c2b29ca --- /dev/null +++ b/samples/Images/Completion.Windows.png diff --git a/samples/Images/QuickInfo.Mac.png b/samples/Images/QuickInfo.Mac.png Binary files differnew file mode 100644 index 0000000..c3b42fb --- /dev/null +++ b/samples/Images/QuickInfo.Mac.png diff --git a/samples/Images/QuickInfo.Windows.png b/samples/Images/QuickInfo.Windows.png Binary files differnew file mode 100644 index 0000000..d630250 --- /dev/null +++ b/samples/Images/QuickInfo.Windows.png diff --git a/samples/README.md b/samples/README.md new file mode 100644 index 0000000..b7b36a1 --- /dev/null +++ b/samples/README.md @@ -0,0 +1,69 @@ +# vs-xplat-extensibility-samples +Unified extensibility samples that work on Visual Studio for Windows and Visual Studio for Mac + +## Async Quick Info + +Displays a quick info entry on hover indicating the current time and whether the line +is at an even or odd numbered offset. + +This project demonstrates code reuse when dual targeting VS for Windows and VS for Mac. + +- AsyncQuickInfoDemo: Common binaries built and run on both VS for Windows and VS for Mac. +- AsyncQuickInfoDemo.VSWindows: VS VSIX project that packages AsyncQuickInfoDemo for VS for Windows. +- AsyncQuickInfoDemo.VSMac: VS VSIX project that packages AsyncQuickInfoDemo for VS for Mac. + +**Visual Studio for Windows:** + +![](Images/QuickInfo.Windows.png) + +- Requires Visual Studio 2017 15.6 Preview 4 or later +- Requires VS extensibility workload +- Open solution file, select 'Any CPU - Windows' Platform +- Build +- Set 'AsyncQuickInfoDemo.VSWindows' as the startup project. +- Launch VS + +**Visual Studio for Mac:** + +![](Images/QuickInfo.Mac.png) + +- Requires Visual Studio for Mac 15.6 +- Requires Addin Maker +- From the OS X terminal in the solution directory: + - run msbuild /t:restore + - run msbuild /t:build + - cd AsyncQuickInfoDemo.VSMac + - run msbuild /t:InstallAddin + - Launch VS for Mac + +## Async Completion + +Adds completion items to all C# completion sessions. +Added items are "Hello", "World" and either "even" or "odd", depending on whether the line is at an even or odd numbered offset. + +This project demonstrates code reuse when dual targeting VS for Windows and VS for Mac. + +- HelloWorldCompletion: Common binaries built and run on both VS for Windows and VS for Mac. +- HelloWorldCompletion.VSIX: VS extensibility project that packages HelloWorldCompletion for VS for Windows. +- HelloWorldCompletion.Mac: AddIn project that packages HelloWorldCompletion for VS for Mac. + +**Visual Studio for Windows:** + +![](Images/Completion.Windows.png) + +- Requires Visual Studio 2019 +- Requires VS extensibility workload +- Open solution file, select 'Any CPU - Windows' Platform +- Build +- Set 'HelloWorldCompletion.VSIX' as the startup project. +- Launch VS and open C# file + +**Visual Studio for Mac:** + +![](Images/Completion.Mac.png) + +- Requires Visual Studio for Mac 15.7 +- Requires Addin Maker +- Open solution file, build +- Run 'HelloWorldCompletion.Mac' +- Open C# file |