提交 c90e10df 编写于 作者: K Kevin Pilch-Bisson

Merge pull request #10812 from Pilchie/Dev15Build

Support VS "15" specific features

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25123.0
# Visual Studio 15
VisualStudioVersion = 15.0.25123.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeAnalysisTest", "src\Compilers\Core\CodeAnalysisTest\CodeAnalysisTest.csproj", "{A4C99B85-765C-4C65-9C2A-BB609AAB09E6}"
EndProject
......@@ -363,6 +363,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PerformanceTesting", "src\T
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Roslyn", "src\Deployment\Roslyn.csproj", "{600AF682-E097-407B-AD85-EE3CED37E680}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EditorFeatures.Next", "src\EditorFeatures\Next\EditorFeatures.Next.csproj", "{366BBCDC-B05F-4677-9B5B-78BA816A1484}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VisualStudioSetup.Next", "src\VisualStudio\Setup.Next\VisualStudioSetup.Next.csproj", "{143FE684-6E1C-41DF-9C60-84C7772DC49C}"
EndProject
Global
GlobalSection(SharedMSBuildProjectFiles) = preSolution
src\Test\Utilities\Shared\TestUtilities.projitems*{76c6f005-c89d-4348-bb4a-391898dbeb52}*SharedItemsImports = 4
......@@ -395,18 +399,18 @@ Global
src\ExpressionEvaluator\CSharp\Source\ResultProvider\CSharpResultProvider.projitems*{bf9dac1e-3a5e-4dc3-bb44-9a64e0d4e9d3}*SharedItemsImports = 4
src\Compilers\Core\SharedCollections\SharedCollections.projitems*{afde6bea-5038-4a4a-a88e-dbd2e4088eed}*SharedItemsImports = 4
src\ExpressionEvaluator\Core\Source\ResultProvider\ResultProvider.projitems*{fa0e905d-ec46-466d-b7b2-3b5557f9428c}*SharedItemsImports = 4
src\Compilers\Core\AnalyzerDriver\AnalyzerDriver.projitems*{1ee8cad3-55f9-4d91-96b2-084641da9a6c}*SharedItemsImports = 4
src\Compilers\Core\SharedCollections\SharedCollections.projitems*{1ee8cad3-55f9-4d91-96b2-084641da9a6c}*SharedItemsImports = 4
src\Compilers\Core\CommandLine\CommandLine.projitems*{7ad4fe65-9a30-41a6-8004-aa8f89bcb7f3}*SharedItemsImports = 4
src\Compilers\Core\AnalyzerDriver\AnalyzerDriver.projitems*{1ee8cad3-55f9-4d91-96b2-084641da9a6c}*SharedItemsImports = 4
src\Compilers\Core\MSBuildTask\Shared\MSBuildTask.Shared.projitems*{7ad4fe65-9a30-41a6-8004-aa8f89bcb7f3}*SharedItemsImports = 4
src\Compilers\Core\CommandLine\CommandLine.projitems*{7ad4fe65-9a30-41a6-8004-aa8f89bcb7f3}*SharedItemsImports = 4
src\Compilers\CSharp\CSharpAnalyzerDriver\CSharpAnalyzerDriver.projitems*{3973b09a-4fbf-44a5-8359-3d22ceb71f71}*SharedItemsImports = 4
src\ExpressionEvaluator\Core\Source\ResultProvider\ResultProvider.projitems*{bedc5a4a-809e-4017-9cfd-6c8d4e1847f0}*SharedItemsImports = 4
src\Compilers\CSharp\CSharpAnalyzerDriver\CSharpAnalyzerDriver.projitems*{b501a547-c911-4a05-ac6e-274a50dff30e}*SharedItemsImports = 4
src\Compilers\VisualBasic\BasicAnalyzerDriver\BasicAnalyzerDriver.projitems*{2523d0e6-df32-4a3e-8ae0-a19bffae2ef6}*SharedItemsImports = 4
src\Compilers\Core\CommandLine\CommandLine.projitems*{4b45ca0c-03a0-400f-b454-3d4bcb16af38}*SharedItemsImports = 4
src\Compilers\Core\SharedCollections\SharedCollections.projitems*{c1930979-c824-496b-a630-70f5369a636f}*SharedItemsImports = 13
src\Compilers\Core\CommandLine\CommandLine.projitems*{d874349c-8bb3-4bdc-8535-2d52ccca1198}*SharedItemsImports = 4
src\Compilers\Core\MSBuildTask\Shared\MSBuildTask.Shared.projitems*{d874349c-8bb3-4bdc-8535-2d52ccca1198}*SharedItemsImports = 4
src\Compilers\Core\CommandLine\CommandLine.projitems*{d874349c-8bb3-4bdc-8535-2d52ccca1198}*SharedItemsImports = 4
src\Compilers\Core\CommandLine\CommandLine.projitems*{e3cd2895-76a8-4d11-a316-ea67cb5ea42c}*SharedItemsImports = 4
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
......@@ -3130,6 +3134,46 @@ Global
{600AF682-E097-407B-AD85-EE3CED37E680}.Release|x64.Build.0 = Release|Any CPU
{600AF682-E097-407B-AD85-EE3CED37E680}.Release|x86.ActiveCfg = Release|Any CPU
{600AF682-E097-407B-AD85-EE3CED37E680}.Release|x86.Build.0 = Release|Any CPU
{366BBCDC-B05F-4677-9B5B-78BA816A1484}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{366BBCDC-B05F-4677-9B5B-78BA816A1484}.Debug|Any CPU.Build.0 = Debug|Any CPU
{366BBCDC-B05F-4677-9B5B-78BA816A1484}.Debug|ARM.ActiveCfg = Debug|Any CPU
{366BBCDC-B05F-4677-9B5B-78BA816A1484}.Debug|ARM.Build.0 = Debug|Any CPU
{366BBCDC-B05F-4677-9B5B-78BA816A1484}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{366BBCDC-B05F-4677-9B5B-78BA816A1484}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{366BBCDC-B05F-4677-9B5B-78BA816A1484}.Debug|x64.ActiveCfg = Debug|Any CPU
{366BBCDC-B05F-4677-9B5B-78BA816A1484}.Debug|x64.Build.0 = Debug|Any CPU
{366BBCDC-B05F-4677-9B5B-78BA816A1484}.Debug|x86.ActiveCfg = Debug|Any CPU
{366BBCDC-B05F-4677-9B5B-78BA816A1484}.Debug|x86.Build.0 = Debug|Any CPU
{366BBCDC-B05F-4677-9B5B-78BA816A1484}.Release|Any CPU.ActiveCfg = Release|Any CPU
{366BBCDC-B05F-4677-9B5B-78BA816A1484}.Release|Any CPU.Build.0 = Release|Any CPU
{366BBCDC-B05F-4677-9B5B-78BA816A1484}.Release|ARM.ActiveCfg = Release|Any CPU
{366BBCDC-B05F-4677-9B5B-78BA816A1484}.Release|ARM.Build.0 = Release|Any CPU
{366BBCDC-B05F-4677-9B5B-78BA816A1484}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{366BBCDC-B05F-4677-9B5B-78BA816A1484}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{366BBCDC-B05F-4677-9B5B-78BA816A1484}.Release|x64.ActiveCfg = Release|Any CPU
{366BBCDC-B05F-4677-9B5B-78BA816A1484}.Release|x64.Build.0 = Release|Any CPU
{366BBCDC-B05F-4677-9B5B-78BA816A1484}.Release|x86.ActiveCfg = Release|Any CPU
{366BBCDC-B05F-4677-9B5B-78BA816A1484}.Release|x86.Build.0 = Release|Any CPU
{143FE684-6E1C-41DF-9C60-84C7772DC49C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{143FE684-6E1C-41DF-9C60-84C7772DC49C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{143FE684-6E1C-41DF-9C60-84C7772DC49C}.Debug|ARM.ActiveCfg = Debug|Any CPU
{143FE684-6E1C-41DF-9C60-84C7772DC49C}.Debug|ARM.Build.0 = Debug|Any CPU
{143FE684-6E1C-41DF-9C60-84C7772DC49C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{143FE684-6E1C-41DF-9C60-84C7772DC49C}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{143FE684-6E1C-41DF-9C60-84C7772DC49C}.Debug|x64.ActiveCfg = Debug|Any CPU
{143FE684-6E1C-41DF-9C60-84C7772DC49C}.Debug|x64.Build.0 = Debug|Any CPU
{143FE684-6E1C-41DF-9C60-84C7772DC49C}.Debug|x86.ActiveCfg = Debug|Any CPU
{143FE684-6E1C-41DF-9C60-84C7772DC49C}.Debug|x86.Build.0 = Debug|Any CPU
{143FE684-6E1C-41DF-9C60-84C7772DC49C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{143FE684-6E1C-41DF-9C60-84C7772DC49C}.Release|Any CPU.Build.0 = Release|Any CPU
{143FE684-6E1C-41DF-9C60-84C7772DC49C}.Release|ARM.ActiveCfg = Release|Any CPU
{143FE684-6E1C-41DF-9C60-84C7772DC49C}.Release|ARM.Build.0 = Release|Any CPU
{143FE684-6E1C-41DF-9C60-84C7772DC49C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{143FE684-6E1C-41DF-9C60-84C7772DC49C}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{143FE684-6E1C-41DF-9C60-84C7772DC49C}.Release|x64.ActiveCfg = Release|Any CPU
{143FE684-6E1C-41DF-9C60-84C7772DC49C}.Release|x64.Build.0 = Release|Any CPU
{143FE684-6E1C-41DF-9C60-84C7772DC49C}.Release|x86.ActiveCfg = Release|Any CPU
{143FE684-6E1C-41DF-9C60-84C7772DC49C}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
......@@ -3296,5 +3340,7 @@ Global
{A32EAB7F-691C-4D00-98C4-F50C37BB4754} = {C2D1346B-9665-4150-B644-075CF1636BAA}
{A57DDFE5-AB0E-4371-98E5-11B9218DF11C} = {C2D1346B-9665-4150-B644-075CF1636BAA}
{DA0D2A70-A2F9-4654-A99A-3227EDF54FF1} = {CAD2965A-19AB-489F-BE2E-7649957F914A}
{366BBCDC-B05F-4677-9B5B-78BA816A1484} = {EE97CB90-33BB-4F3A-9B3D-69375DEC6AC6}
{143FE684-6E1C-41DF-9C60-84C7772DC49C} = {8DBA5174-B0AA-4561-82B1-A46607697753}
EndGlobalSection
EndGlobal
......@@ -74,6 +74,38 @@
</PropertyGroup>
</Target>
<!-- ====================================================================================
Generation of binding redirects.
==================================================================================== -->
<ItemGroup Condition="'$(GenerateMSBuildBindingRedirects)' == 'true'">
<SuggestedBindingRedirects Include="Microsoft.Build, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<MaxVersion>$(VisualStudioReferenceAssemblyVersion)</MaxVersion>
</SuggestedBindingRedirects>
<SuggestedBindingRedirects Include="Microsoft.Build.Framework, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<MaxVersion>$(VisualStudioReferenceAssemblyVersion)</MaxVersion>
</SuggestedBindingRedirects>
<SuggestedBindingRedirects Include="Microsoft.Build.Tasks.$(MSBuildAssemblyNameFragment), Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<MaxVersion>$(VisualStudioReferenceAssemblyVersion)</MaxVersion>
</SuggestedBindingRedirects>
</ItemGroup>
<PropertyGroup>
<ForceGenerationOfBindingRedirects Condition="'$(GenerateMSBuildBindingRedirects)' == 'true'">true</ForceGenerationOfBindingRedirects>
<AutoGenerateBindingRedirects Condition="'$(ForceGenerationOfBindingRedirects)' == 'true'">true</AutoGenerateBindingRedirects>
</PropertyGroup>
<Target Name="ForceGenerationOfBindingRedirects"
AfterTargets="ResolveAssemblyReferences"
BeforeTargets="GenerateBindingRedirects"
Condition="'$(ForceGenerationOfBindingRedirects)' == 'true'">
<PropertyGroup>
<!-- Needs to be set in a target because it has to be set after the initial evaluation in the common targets -->
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>
</Target>
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.VisualBasic.targets"
Condition="'$(ProjectLanguage)' == 'VB' And '$(TargetFrameworkIdentifier)' == '.NETPortable'"/>
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets"
......
......@@ -25,18 +25,8 @@ public class IntegrationTests : TestBase
static IntegrationTests()
{
using (var key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0", writable: false))
{
if (key != null)
{
var toolsPath = key.GetValue("MSBuildToolsPath");
if (toolsPath != null)
{
s_msbuildDirectory = toolsPath.ToString();
s_msbuildExecutable = Path.Combine(s_msbuildDirectory, "MSBuild.exe");
}
}
}
s_msbuildDirectory = TestHelpers.GetMSBuildDirectory();
s_msbuildExecutable = Path.Combine(s_msbuildDirectory, "MSBuild.exe");
}
private readonly TempDirectory _tempDirectory;
......
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -->
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="Settings">
<Import Project="..\..\..\..\build\Targets\VSL.Settings.targets" />
</ImportGroup>
......@@ -15,7 +15,8 @@
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<SolutionDir Condition="'$(SolutionDir)' == '' OR '$(SolutionDir)' == '*Undefined*'">..\..\..\..\</SolutionDir>
<RestorePackages>true</RestorePackages>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
<TargetFrameworkProfile />
</PropertyGroup>
<ItemGroup Label="Project References">
<ProjectReference Include="..\..\..\Dependencies\Moq.net\Moq.net.csproj">
......
......@@ -2,7 +2,7 @@
"dependencies": {
},
"frameworks": {
"net45": {}
"net46": {}
},
"runtimes": {
"win7": { }
......
......@@ -51,7 +51,7 @@ static CompilerServerUnitTests()
// VBCSCompiler is used as a DLL in these tests, need to hook the resolve to the installed location.
AppDomain.CurrentDomain.AssemblyResolve += OnAssemblyResolve;
basePath = GetMSBuildDirectory();
basePath = TestHelpers.GetMSBuildDirectory();
if (basePath == null)
{
return;
......@@ -74,23 +74,6 @@ private static Assembly OnAssemblyResolve(object sender, ResolveEventArgs e)
return null;
}
private static string GetMSBuildDirectory()
{
using (var key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0", false))
{
if (key != null)
{
var toolsPath = key.GetValue("MSBuildToolsPath");
if (toolsPath != null)
{
return toolsPath.ToString();
}
}
}
return null;
}
private static readonly KeyValuePair<string, string>[] s_helloWorldSrcCs =
{
new KeyValuePair<string, string>("hello.cs",
......
......@@ -2,14 +2,14 @@
"supports": { },
"dependencies": {
"Microsoft.VisualStudio.Designer.Interfaces": "1.1.4322",
"Microsoft.VisualStudio.Editor": "14.1.24720",
"Microsoft.VisualStudio.Editor": "14.2.25123",
"Microsoft.VisualStudio.OLE.Interop": "7.10.6070",
"Microsoft.VisualStudio.Shell.Design": "14.1.24720",
"Microsoft.VisualStudio.Shell.14.0": "14.1.24720",
"Microsoft.VisualStudio.Shell.Design": "14.2.25123",
"Microsoft.VisualStudio.Shell.14.0": "14.2.25123",
"Microsoft.VisualStudio.Shell.Interop.10.0": "10.0.30319",
"Microsoft.VisualStudio.Shell.Interop.11.0": "11.0.61030",
"Microsoft.VisualStudio.Shell.Interop.12.1.DesignTime": "12.1.30328",
"Microsoft.VisualStudio.Shell.Interop.14.0.DesignTime": "14.1.24720",
"Microsoft.VisualStudio.Shell.Interop.14.0.DesignTime": "14.2.25123",
"Microsoft.VisualStudio.TextManager.Interop.10.0": "10.0.30319",
"Microsoft.VisualStudio.TextManager.Interop.12.0": "12.0.30110",
"Microsoft.VisualStudio.TextManager.Interop.12.1.DesignTime": "12.1.30328",
......@@ -18,4 +18,4 @@
"frameworks": {
".NETFramework,Version=v4.5": { }
}
}
\ No newline at end of file
}
{
"supports": { },
"dependencies": {
"Microsoft.VisualStudio.Imaging": "14.1.24720",
"Microsoft.VisualStudio.ImageCatalog": "14.1.24720",
"Microsoft.VisualStudio.Language.Intellisense": "14.1.24720",
"Microsoft.VisualStudio.Language.StandardClassification": "14.1.24720",
"Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "14.1.24720"
"Microsoft.VisualStudio.Imaging": "14.2.25123",
"Microsoft.VisualStudio.ImageCatalog": "14.2.25123",
"Microsoft.VisualStudio.Language.Intellisense": "14.2.25123",
"Microsoft.VisualStudio.Language.StandardClassification": "14.2.25123",
"Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "14.2.25123"
},
"frameworks": {
".NETFramework,Version=v4.5": { }
......
{
"supports": { },
"dependencies": {
"Microsoft.VisualStudio.Text.Data": "14.1.24720",
"Microsoft.VisualStudio.Text.Logic": "14.1.24720",
"Microsoft.VisualStudio.Text.UI": "14.1.24720",
"Microsoft.VisualStudio.Text.UI.Wpf": "14.1.24720"
"Microsoft.VisualStudio.Text.Data": "14.2.25123",
"Microsoft.VisualStudio.Text.Logic": "14.2.25123",
"Microsoft.VisualStudio.Text.UI": "14.2.25123",
"Microsoft.VisualStudio.Text.UI.Wpf": "14.2.25123",
"RoslynDependencies.Microsoft.VisualStudio.Text.Internal": "14.2.25123"
},
"frameworks": {
".NETFramework,Version=v4.5": { }
}
}
\ No newline at end of file
}
......@@ -105,10 +105,6 @@
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.CSharp" />
<Reference Include="Microsoft.VisualStudio.Language.CallHierarchy, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="Microsoft.VisualStudio.Language.NavigateTo.Interfaces, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="Microsoft.VisualStudio.Platform.VSEditor, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="Microsoft.VisualStudio.Text.Internal, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System" />
......@@ -509,4 +505,4 @@
<Import Project="..\..\..\build\Targets\VSL.Imports.targets" />
<Import Project="..\..\..\build\Targets\Roslyn.Toolsets.Xunit.targets" />
</ImportGroup>
</Project>
\ No newline at end of file
</Project>
......@@ -109,10 +109,6 @@
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.CSharp" />
<Reference Include="Microsoft.VisualStudio.Language.CallHierarchy, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="Microsoft.VisualStudio.Language.NavigateTo.Interfaces, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="Microsoft.VisualStudio.Platform.VSEditor, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="Microsoft.VisualStudio.Text.Internal, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System" />
......@@ -264,4 +260,4 @@
<Import Project="..\..\..\build\Targets\VSL.Imports.targets" />
<Import Project="..\..\..\build\Targets\Roslyn.Toolsets.Xunit.targets" />
</ImportGroup>
</Project>
\ No newline at end of file
</Project>
......@@ -59,11 +59,6 @@
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.Language.CallHierarchy, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<HintPath>$(DevEnvDir)\PrivateAssemblies\Microsoft.VisualStudio.Language.CallHierarchy.dll</HintPath>
</Reference>
<Reference Include="Microsoft.VisualStudio.Language.NavigateTo.Interfaces, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="Microsoft.VisualStudio.Text.Internal, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System" />
......@@ -80,6 +75,7 @@
</ItemGroup>
<ItemGroup>
<InternalsVisibleTo Include="InteractiveHost" />
<InternalsVisibleTo Include="Microsoft.CodeAnalysis.EditorFeatures.Next" />
<InternalsVisibleTo Include="Microsoft.CodeAnalysis.CSharp.EditorFeatures" />
<InternalsVisibleTo Include="Microsoft.CodeAnalysis.VisualBasic.EditorFeatures" />
<InternalsVisibleTo Include="Microsoft.VisualStudio.LanguageServices" />
......@@ -227,6 +223,8 @@
<Compile Include="Extensibility\Composition\IContentTypeMetadata.cs" />
<Compile Include="Extensibility\Composition\OrderableContentTypeMetadata.cs" />
<Compile Include="Extensibility\Composition\OrderableLanguageAndRoleMetadata.cs" />
<Compile Include="Extensibility\Composition\VisualStudioVersionMetadata.cs" />
<Compile Include="Extensibility\ExportVersionSpecificAttribute.cs" />
<Compile Include="Extensibility\Highlighting\ExportHighlighterAttribute.cs" />
<Compile Include="Extensibility\Highlighting\IHighlighter.cs" />
<Compile Include="Extensibility\NavigationBar\AbstractNavigationBarItemService.cs" />
......@@ -258,6 +256,7 @@
<Compile Include="Extensibility\SignatureHelp\ISignatureHelpPresenterSession.cs" />
<Compile Include="Extensibility\SignatureHelp\PredefinedSignatureHelpPresenterNames.cs" />
<Compile Include="Extensibility\SignatureHelp\SignatureHelpItemEventArgs.cs" />
<Compile Include="Extensibility\VersionSelector.cs" />
<Compile Include="Implementation\Classification\SemanticClassificationBufferTaggerProvider.cs" />
<Compile Include="Implementation\Classification\SemanticClassificationBufferTaggerProvider.Tagger.cs" />
<Compile Include="Implementation\Classification\SemanticClassificationUtilities.cs" />
......@@ -273,9 +272,10 @@
<Compile Include="Implementation\Intellisense\Completion\Presentation\ClassificationTags.cs" />
<Compile Include="Implementation\Intellisense\Completion\Presentation\ImageMonikers.cs" />
<Compile Include="Implementation\Intellisense\Completion\SimplePresentationItem.cs" />
<Compile Include="Implementation\Intellisense\Completion\Presentation\IntellisenseFilter2.cs" />
<Compile Include="Implementation\Intellisense\Completion\Temporary\IIntellisenseFilter.cs" />
<Compile Include="Implementation\Intellisense\Completion\Temporary\IntellisenseFilter.cs" />
<Compile Include="Implementation\Intellisense\Completion\Presentation\ICompletionSetFactory.cs" />
<Compile Include="Implementation\Intellisense\Completion\Presentation\RoslynCompletionSet.cs" />
<Compile Include="Implementation\Intellisense\Completion\Presentation\ICompletionSet.cs" />
<Compile Include="Implementation\Intellisense\Completion\Presentation\VisualStudio14CompletionSetFactory.cs" />
<Compile Include="Implementation\Interactive\IAbstractResetInteractiveCommand.cs" />
<Compile Include="Implementation\Outlining\AbstractSyntaxOutliner.cs" />
<Compile Include="Implementation\Outlining\InvalidOutliningRegionException.cs" />
......@@ -480,7 +480,6 @@
<Compile Include="Implementation\Intellisense\Completion\Model.cs" />
<Compile Include="Implementation\Intellisense\Completion\Presentation\CompletionPresenter.cs" />
<Compile Include="Implementation\Intellisense\Completion\Presentation\CompletionPresenterSession.cs" />
<Compile Include="Implementation\Intellisense\Completion\Presentation\CompletionSet3.cs" />
<Compile Include="Implementation\Intellisense\Completion\Presentation\CompletionSource.cs" />
<Compile Include="Implementation\Intellisense\Completion\Presentation\CustomCommitCompletion.cs" />
<Compile Include="Implementation\Intellisense\Completion\Presentation\ToolTipProvider.cs" />
......@@ -800,4 +799,4 @@
<ImportGroup Label="Targets">
<Import Project="..\..\..\build\Targets\VSL.Imports.targets" />
</ImportGroup>
</Project>
\ No newline at end of file
</Project>
using System;
using System.Collections.Generic;
using Roslyn.Utilities;
namespace Microsoft.CodeAnalysis.Editor.Extensibility.Composition
{
internal sealed class VisualStudioVersionMetadata
{
public VisualStudioVersion Version { get; }
public VisualStudioVersionMetadata(IDictionary<string, object> data)
{
Version = (VisualStudioVersion)data.GetValueOrDefault("Version");
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel.Composition;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Microsoft.CodeAnalysis.Editor
{
/// <summary>
/// Note: This need to be in ascending order, since we compare values in
/// <see cref="VersionSelector.SelectHighest{T}(IEnumerable{Lazy{T, Extensibility.Composition.VisualStudioVersionMetadata}})"/>.
/// </summary>
internal enum VisualStudioVersion
{
/// <summary>VS Version 14, aka 'VS 2015'</summary>
Dev14 = 14,
/// <summary>VS Version 15, aka 'VS "15"'</summary>
Dev15 = 15,
}
[MetadataAttribute]
[AttributeUsage(AttributeTargets.Class)]
internal sealed class ExportVersionSpecificAttribute : ExportAttribute
{
public VisualStudioVersion Version { get; }
public ExportVersionSpecificAttribute(Type contractType, VisualStudioVersion version)
: base(contractType)
{
this.Version = version;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.CodeAnalysis.Editor.Extensibility.Composition;
namespace Microsoft.CodeAnalysis.Editor
{
internal sealed class VersionSelector
{
public static T SelectHighest<T>(IEnumerable<Lazy<T, VisualStudioVersionMetadata>> items)
{
return items.OrderByDescending(i => i.Metadata.Version).First().Value;
}
}
}
// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System;
using System.Collections.Generic;
using System.ComponentModel.Composition;
using Microsoft.CodeAnalysis.Editor.Extensibility.Composition;
using Microsoft.CodeAnalysis.Editor.Shared.Utilities;
using Microsoft.VisualStudio.Language.Intellisense;
using Microsoft.VisualStudio.Text;
......@@ -17,18 +20,24 @@ internal sealed class CompletionPresenter : ForegroundThreadAffinitizedObject, I
{
private readonly ICompletionBroker _completionBroker;
private readonly IGlyphService _glyphService;
private readonly ICompletionSetFactory _completionSetFactory;
[ImportingConstructor]
public CompletionPresenter(ICompletionBroker completionBroker, IGlyphService glyphService)
public CompletionPresenter(
ICompletionBroker completionBroker,
IGlyphService glyphService,
[ImportMany] IEnumerable<Lazy<ICompletionSetFactory, VisualStudioVersionMetadata>> completionSetFactories)
{
_completionBroker = completionBroker;
_glyphService = glyphService;
_completionSetFactory = VersionSelector.SelectHighest(completionSetFactories);
}
ICompletionPresenterSession IIntelliSensePresenter<ICompletionPresenterSession, ICompletionSession>.CreateSession(ITextView textView, ITextBuffer subjectBuffer, ICompletionSession session)
{
AssertIsForeground();
return new CompletionPresenterSession(_completionBroker, _glyphService, textView, subjectBuffer);
return new CompletionPresenterSession(
_completionSetFactory, _completionBroker, _glyphService, textView, subjectBuffer);
}
ICompletionSource ICompletionSourceProvider.TryCreateCompletionSource(ITextBuffer textBuffer)
......
......@@ -29,7 +29,7 @@ internal sealed class CompletionPresenterSession : ForegroundThreadAffinitizedOb
public event EventHandler<PresentationItemEventArgs> ItemSelected;
public event EventHandler<CompletionItemFilterStateChangedEventArgs> FilterStateChanged;
private readonly CompletionSet3 _completionSet;
private readonly ICompletionSet _completionSet;
private ICompletionSession _editorSessionOpt;
private bool _ignoreSelectionStatusChangedEvent;
......@@ -45,6 +45,7 @@ public ITextBuffer SubjectBuffer
}
public CompletionPresenterSession(
ICompletionSetFactory completionSetFactory,
ICompletionBroker completionBroker,
IGlyphService glyphService,
ITextView textView,
......@@ -55,7 +56,7 @@ public ITextBuffer SubjectBuffer
_textView = textView;
_subjectBuffer = subjectBuffer;
_completionSet = new CompletionSet3(this, textView, subjectBuffer);
_completionSet = completionSetFactory.CreateCompletionSet(this, textView, subjectBuffer);
_completionSet.SelectionStatusChanged += OnCompletionSetSelectionStatusChanged;
}
......@@ -157,15 +158,14 @@ private void OnCompletionSetSelectionStatusChanged(object sender, ValueChangedEv
internal void AugmentCompletionSession(IList<CompletionSet> completionSets)
{
Contract.ThrowIfTrue(completionSets.Contains(_completionSet));
completionSets.Add(_completionSet);
Contract.ThrowIfTrue(completionSets.Contains(_completionSet.CompletionSet));
completionSets.Add(_completionSet.CompletionSet);
}
internal void OnIntelliSenseFiltersChanged(IReadOnlyList<IntellisenseFilter2> filters)
internal void OnIntelliSenseFiltersChanged(ImmutableDictionary<CompletionItemFilter, bool> filterStates)
{
this.FilterStateChanged?.Invoke(this,
new CompletionItemFilterStateChangedEventArgs(
filters.ToImmutableDictionary(f => f.CompletionItemFilter, f => f.IsChecked)));
new CompletionItemFilterStateChangedEventArgs(filterStates));
}
public void Dismiss()
......
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using Microsoft.CodeAnalysis.Completion;
using Microsoft.VisualStudio.Language.Intellisense;
using Microsoft.VisualStudio.Text;
using VSCompletion = Microsoft.VisualStudio.Language.Intellisense.Completion;
namespace Microsoft.CodeAnalysis.Editor.Implementation.IntelliSense.Completion.Presentation
{
internal interface ICompletionSet
{
event EventHandler<ValueChangedEventArgs<CompletionSelectionStatus>> SelectionStatusChanged;
void SetTrackingSpan(ITrackingSpan trackingSpan);
CompletionSet CompletionSet { get; }
void SetCompletionItems(
IList<PresentationItem> completionItems,
PresentationItem selectedItem,
PresentationItem presetBuilder,
bool suggestionMode,
bool isSoftSelected,
ImmutableArray<CompletionItemFilter> completionItemFilters,
IReadOnlyDictionary<CompletionItem, string> completionItemToFilterText);
PresentationItem GetPresentationItem(VSCompletion completion);
}
}
using Microsoft.VisualStudio.Text;
using Microsoft.VisualStudio.Text.Editor;
namespace Microsoft.CodeAnalysis.Editor.Implementation.IntelliSense.Completion.Presentation
{
/// <summary>
/// We have two implementations of ICompletionSet that are specific to different VS versions
/// because the newer one lights up new functionality from the platform. This let's the
/// presenter create the right one.
/// </summary>
internal interface ICompletionSetFactory
{
ICompletionSet CreateCompletionSet(
CompletionPresenterSession completionPresenterSession,
ITextView textView,
ITextBuffer subjectBuffer);
}
}
// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Linq;
......@@ -12,16 +11,15 @@
using Microsoft.VisualStudio.Language.Intellisense;
using Microsoft.VisualStudio.Text;
using Microsoft.VisualStudio.Text.Editor;
using Roslyn.Utilities;
using VSCompletion = Microsoft.VisualStudio.Language.Intellisense.Completion;
using Microsoft.CodeAnalysis.Snippets;
namespace Microsoft.CodeAnalysis.Editor.Implementation.IntelliSense.Completion.Presentation
{
#if NEWCOMPLETION
internal sealed class CompletionSet3 : CompletionSet2
#if DEV15
internal sealed class FilteredRoslynCompletionSet : CompletionSet2, ICompletionSet
#else
internal sealed class CompletionSet3 : CompletionSet
internal sealed class RoslynCompletionSet : CompletionSet, ICompletionSet
#endif
{
private readonly ForegroundThreadAffinitizedObject _foregroundObject = new ForegroundThreadAffinitizedObject();
......@@ -30,11 +28,17 @@ internal sealed class CompletionSet3 : CompletionSet
private readonly CompletionPresenterSession _completionPresenterSession;
private Dictionary<PresentationItem, VSCompletion> _presentationItemMap;
private IReadOnlyDictionary<CompletionItem, string> _completionItemToFilterText;
#if DEV15
private CompletionHelper _completionHelper;
private IReadOnlyList<IntellisenseFilter2> _filters;
private IReadOnlyDictionary<CompletionItem, string> _completionItemToFilterText;
public override IReadOnlyList<IIntellisenseFilter> Filters => _filters;
public CompletionSet3(
public FilteredRoslynCompletionSet(
#else
public RoslynCompletionSet(
#endif
CompletionPresenterSession completionPresenterSession,
ITextView textView,
ITextBuffer subjectBuffer)
......@@ -46,19 +50,15 @@ internal sealed class CompletionSet3 : CompletionSet
this.DisplayName = "All";
}
#if NEWCOMPLETION
public override IReadOnlyList<IIntellisenseFilter> Filters => _filters;
#endif
internal void SetTrackingSpan(ITrackingSpan trackingSpan)
void ICompletionSet.SetTrackingSpan(ITrackingSpan trackingSpan)
{
this.ApplicableTo = trackingSpan;
}
internal void SetCompletionItems(
void ICompletionSet.SetCompletionItems(
IList<PresentationItem> completionItems,
PresentationItem selectedItem,
PresentationItem suggestionModeItem,
PresentationItem presetBuilder,
bool suggestionMode,
bool isSoftSelected,
ImmutableArray<CompletionItemFilter> completionItemFilters,
......@@ -77,12 +77,14 @@ internal void SetTrackingSpan(ITrackingSpan trackingSpan)
this.WritableCompletionBuilders.BeginBulkOperation();
this.WritableCompletionBuilders.Clear();
#if DEV15
// If more than one filter was provided, then present it to the user.
if (_filters == null && completionItemFilters.Length > 1)
{
_filters = completionItemFilters.Select(f => new IntellisenseFilter2(this, f, GetLanguage()))
.ToArray();
}
#endif
var applicableToText = this.ApplicableTo.GetText(this.ApplicableTo.TextBuffer.CurrentSnapshot);
......@@ -93,8 +95,8 @@ internal void SetTrackingSpan(ITrackingSpan trackingSpan)
selectedItem.CompletionService,
isSuggestionModeItem: true);
var showBuilder = suggestionMode || suggestionModeItem != null;
var bestSuggestionModeItem = applicableToText.Length > 0 ? filteredSuggestionModeItem : suggestionModeItem ?? filteredSuggestionModeItem;
var showBuilder = suggestionMode || presetBuilder != null;
var bestSuggestionModeItem = applicableToText.Length > 0 ? filteredSuggestionModeItem : presetBuilder ?? filteredSuggestionModeItem;
if (showBuilder && bestSuggestionModeItem != null)
{
......@@ -151,7 +153,7 @@ private VSCompletion GetVSCompletion(PresentationItem item)
return value;
}
internal PresentationItem GetPresentationItem(VSCompletion completion)
PresentationItem ICompletionSet.GetPresentationItem(VSCompletion completion)
{
// Linear search is ok since this is only called by the user manually selecting
// an item. Creating a reverse mapping uses too much memory and affects GCs.
......@@ -194,6 +196,7 @@ private string GetLanguage()
return "";
}
#if DEV15
private CompletionHelper GetCompletionHelper()
{
_foregroundObject.AssertIsForeground();
......@@ -209,11 +212,7 @@ private CompletionHelper GetCompletionHelper()
return _completionHelper;
}
#if NEWCOMPLETION
public override IReadOnlyList<Span> GetHighlightedSpansInDisplayText(string displayText)
#else
public IReadOnlyList<Span> GetHighlightedSpansInDisplayText(string displayText)
#endif
{
if (_completionItemToFilterText != null)
{
......@@ -242,7 +241,11 @@ public IReadOnlyList<Span> GetHighlightedSpansInDisplayText(string displayText)
internal void OnIntelliSenseFiltersChanged()
{
this._completionPresenterSession.OnIntelliSenseFiltersChanged(_filters);
this._completionPresenterSession.OnIntelliSenseFiltersChanged(
_filters.ToImmutableDictionary(f => f.CompletionItemFilter, f => f.IsChecked));
}
#endif
CompletionSet ICompletionSet.CompletionSet => this;
}
}
using System.ComponentModel.Composition;
using Microsoft.VisualStudio.Text;
using Microsoft.VisualStudio.Text.Editor;
namespace Microsoft.CodeAnalysis.Editor.Implementation.IntelliSense.Completion.Presentation
{
[ExportVersionSpecific(typeof(ICompletionSetFactory), VisualStudioVersion.Dev14)]
internal sealed class VisualStudio14CompletionSetFactory : ICompletionSetFactory
{
public ICompletionSet CreateCompletionSet(
CompletionPresenterSession completionPresenterSession,
ITextView textView,
ITextBuffer subjectBuffer)
{
return new RoslynCompletionSet(
completionPresenterSession, textView, subjectBuffer);
}
}
}
#if !NEWCOMPLETION
// Copyright (c) Microsoft Corporation
// All rights reserved
// REMOVE ONCE WE ACTUALLY REFERENCE THE REAL EDITOR DLLS.
using System;
using Microsoft.VisualStudio.Imaging.Interop;
namespace Microsoft.VisualStudio.Language.Intellisense
{
/// <summary>
/// Defines a filter used to add a row of filter buttons to the bottom
/// </summary>
internal interface IIntellisenseFilter
{
/// <summary>
/// The icon shown on the filter's button.
/// </summary>
ImageMoniker Moniker { get; }
/// <summary>
/// The tooltip shown when the mouse hovers over the button.
/// </summary>
string ToolTip { get; }
/// <summary>
/// The key used to toggle the filter's state.
/// </summary>
string AccessKey { get; }
/// <summary>
/// String used to represent the button for automation.
/// </summary>
string AutomationText { get; }
/// <summary>
/// Has the user turned the filter on?
/// </summary>
/// <remarks>
/// The setter will be called when the user toggles the corresponding filter button.
/// </remarks>
bool IsChecked { get; set; }
/// <summary>
/// Is the filter enabled?
/// </summary>
/// <remarks>
/// Disabled filters are shown but are grayed out.
/// </remarks>
bool IsEnabled { get; set; }
}
}
#endif
\ No newline at end of file
#if !NEWCOMPLETION
// Copyright (c) Microsoft Corporation
// All rights reserved
// REMOVE ONCE WE ACTUALLY REFERENCE THE REAL EDITOR DLLS.
using System;
using Microsoft.VisualStudio.Imaging.Interop;
namespace Microsoft.VisualStudio.Language.Intellisense
{
internal class IntellisenseFilter : IIntellisenseFilter
{
/// <summary>
/// Create an instance of an IntellisenseFilter with the specified attributes.
/// </summary>
public IntellisenseFilter(ImageMoniker moniker, string toolTip, string accessKey, string automationText, bool initialIsChecked = false, bool initialIsEnabled = true)
{
if (string.IsNullOrEmpty(accessKey))
{
throw new ArgumentException("Must not be null or empty", nameof(accessKey));
}
this.Moniker = moniker;
this.ToolTip = toolTip;
this.AccessKey = accessKey;
this.AutomationText = automationText;
this.IsChecked = initialIsChecked;
this.IsEnabled = initialIsEnabled;
}
/// <summary>
/// The icon shown on the filter's button.
/// </summary>
public ImageMoniker Moniker { get; }
/// <summary>
/// The tooltip shown when the mouse hovers over the button.
/// </summary>
public string ToolTip { get; }
/// <summary>
/// The key used to toggle the filter's state.
/// </summary>
public string AccessKey { get; }
/// <summary>
/// String used to represent the button for automation.
/// </summary>
public string AutomationText { get; }
/// <summary>
/// Has the user turned the filter on?
/// </summary>
/// <remarks>
/// The setter will be called when the user toggles the corresponding filter button.
/// </remarks>
public virtual bool IsChecked { get; set; }
/// <summary>
/// Is the filter enabled?
/// </summary>
/// <remarks>
/// <para>Disabled filters are shown but are grayed out.</para>
/// <para>Intellisense will never call the setter but the <see cref="CompletionSet"/> owner may and the Intellisense popup will respect the changes.</para>
/// </remarks>
public bool IsEnabled { get; set; }
}
}
#endif
\ No newline at end of file
{
"dependencies": {
"RoslynDependencies.Microsoft.VisualStudio.Language.CallHierarchy": "14.0.23107",
"RoslynDependencies.Microsoft.VisualStudio.Language.NavigateTo.Interfaces": "14.0.23107"
},
"frameworks": {
"net46": {}
......
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectLanguage>CSharp</ProjectLanguage>
</PropertyGroup>
<ImportGroup Label="Settings">
<Import Project="..\..\..\build\Targets\VSL.Settings.targets" />
</ImportGroup>
<PropertyGroup>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
<Platform Condition="'$(Platform)' == ''">AnyCPU</Platform>
<ProjectGuid>{366BBCDC-B05F-4677-9B5B-78BA816A1484}</ProjectGuid>
<OutputType>Library</OutputType>
<RootNamespace>Microsoft.CodeAnalysis.Editor</RootNamespace>
<AssemblyName>Microsoft.CodeAnalysis.EditorFeatures.Next</AssemblyName>
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
<CopyNuGetImplementations>false</CopyNuGetImplementations>
<DefineConstants>DEV15</DefineConstants>
</PropertyGroup>
<ItemGroup Label="Project References">
<ProjectReference Include="..\..\Compilers\Core\Portable\CodeAnalysis.csproj">
<Project>{1EE8CAD3-55F9-4D91-96B2-084641DA9A6C}</Project>
<Name>CodeAnalysis</Name>
</ProjectReference>
<ProjectReference Include="..\..\Dependencies\Immutable\Immutable.csproj">
<Project>{DCDA908D-EF5E-494B-ADDC-C26F5FD610CA}</Project>
<Name>Immutable</Name>
</ProjectReference>
<ProjectReference Include="..\..\Dependencies\VisualStudioEditor\VisualStudioEditor.csproj">
<Project>{ef986d9b-8cfc-4ecb-9729-e260a1f84aff}</Project>
<Name>VisualStudioEditor</Name>
</ProjectReference>
<ProjectReference Include="..\..\Workspaces\Core\Desktop\Workspaces.Desktop.csproj">
<Project>{2e87fa96-50bb-4607-8676-46521599f998}</Project>
<Name>Workspaces.Desktop</Name>
</ProjectReference>
<ProjectReference Include="..\..\Workspaces\Core\Portable\Workspaces.csproj">
<Project>{5F8D2414-064A-4B3A-9B42-8E2A04246BE5}</Project>
<Name>Workspaces</Name>
</ProjectReference>
<ProjectReference Include="..\..\Features\Core\Portable\Features.csproj">
<Project>{EDC68A0E-C68D-4A74-91B7-BF38EC909888}</Project>
<Name>Features</Name>
</ProjectReference>
<ProjectReference Include="..\Core\EditorFeatures.csproj">
<Project>{3cdeeab7-2256-418a-beb2-620b5cb16302}</Project>
<Name>EditorFeatures</Name>
</ProjectReference>
<ProjectReference Include="..\Text\TextEditorFeatures.csproj">
<Project>{18F5FBB8-7570-4412-8CC7-0A86FF13B7BA}</Project>
<Name>TextEditorFeatures</Name>
</ProjectReference>
<ProjectReference Include="..\..\InteractiveWindow\Editor\InteractiveWindow.csproj">
<Project>{01E9BD68-0339-4A13-B42F-A3CA84D164F3}</Project>
<Name>InteractiveWindow</Name>
<Aliases>InteractiveWindow</Aliases>
</ProjectReference>
</ItemGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.ComponentModel.Composition" />
<Reference Include="System.Core" />
</ItemGroup>
<ItemGroup>
<None Include="project.json" />
<PublicAPI Include="PublicAPI.Shipped.txt" />
<PublicAPI Include="PublicAPI.Unshipped.txt" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\Core\Implementation\IntelliSense\Completion\Presentation\RoslynCompletionSet.cs">
<Link>IntelliSense\Completion\Presentation\RoslynCompletionSet.cs</Link>
</Compile>
<Compile Include="IntelliSense\Completion\Presentation\IntellisenseFilter2.cs" />
<Compile Include="IntelliSense\Completion\Presentation\VisualStudio15CompletionSetFactory.cs" />
</ItemGroup>
<ImportGroup Label="Targets">
<Import Project="..\..\..\build\Targets\VSL.Imports.targets" />
</ImportGroup>
</Project>
\ No newline at end of file
......@@ -6,11 +6,11 @@ namespace Microsoft.CodeAnalysis.Editor.Implementation.IntelliSense.Completion.P
{
internal class IntellisenseFilter2 : IntellisenseFilter
{
private readonly CompletionSet3 _completionSet;
private readonly FilteredRoslynCompletionSet _completionSet;
public readonly CompletionItemFilter CompletionItemFilter;
public IntellisenseFilter2(
CompletionSet3 completionSet, CompletionItemFilter filter, string language)
FilteredRoslynCompletionSet completionSet, CompletionItemFilter filter, string language)
: base(ImageMonikers.GetImageMoniker(filter.Tags, language), GetToolTip(filter),
filter.AccessKey.ToString(), automationText: filter.Tags[0])
{
......
using Microsoft.VisualStudio.Text;
using Microsoft.VisualStudio.Text.Editor;
namespace Microsoft.CodeAnalysis.Editor.Implementation.IntelliSense.Completion.Presentation
{
[ExportVersionSpecific(typeof(ICompletionSetFactory), VisualStudioVersion.Dev15)]
internal sealed class VisualStudio15CompletionSetFactory : ICompletionSetFactory
{
public ICompletionSet CreateCompletionSet(
CompletionPresenterSession completionPresenterSession,
ITextView textView,
ITextBuffer subjectBuffer)
{
return new FilteredRoslynCompletionSet(
completionPresenterSession, textView, subjectBuffer);
}
}
}
{
"dependencies": {
"Microsoft.VisualStudio.Language.Intellisense": "15.0.25123-Dev15Preview",
},
"frameworks": {
"net46": {}
}
}
......@@ -18,11 +18,6 @@
<RestorePackages>true</RestorePackages>
<CopyNuGetImplementations>true</CopyNuGetImplementations>
</PropertyGroup>
<ItemGroup Label="File References">
<Reference Include="Microsoft.VisualStudio.Platform.VSEditor.Interop.dll">
<HintPath>$(DevEnvDir)\PrivateAssemblies\Microsoft.VisualStudio.Platform.VSEditor.Interop.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup Label="Project References">
<ProjectReference Include="..\..\Compilers\Core\Portable\CodeAnalysis.csproj">
<Project>{1EE8CAD3-55F9-4D91-96B2-084641DA9A6C}</Project>
......@@ -144,10 +139,6 @@
</ItemGroup>
<ItemGroup>
<Reference Include="Microsoft.CSharp" />
<Reference Include="Microsoft.VisualStudio.Language.CallHierarchy, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="Microsoft.VisualStudio.Language.NavigateTo.Interfaces, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="Microsoft.VisualStudio.Platform.VSEditor, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="Microsoft.VisualStudio.Text.Internal, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System" />
......@@ -349,4 +340,4 @@
<Import Project="..\..\..\build\Targets\VSL.Imports.targets" />
<Import Project="..\..\..\build\Targets\Roslyn.Toolsets.Xunit.targets" />
</ImportGroup>
</Project>
\ No newline at end of file
</Project>
......@@ -2,6 +2,7 @@
"dependencies": {
"BasicUndo": "0.9.3",
"Microsoft.VisualStudio.Composition": "14.0.50715-pre",
"RoslynDependencies.Microsoft.VisualStudio.Platform.VSEditor": "14.2.25123"
},
"frameworks": {
"net46": {}
......
......@@ -116,9 +116,6 @@
<DocumentationFile>Roslyn.Services.Editor.UnitTests2.xml</DocumentationFile>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.Language.CallHierarchy, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="Microsoft.VisualStudio.Platform.VSEditor, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="Microsoft.VisualStudio.Text.Internal, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System" />
......@@ -295,4 +292,4 @@
<Import Project="..\..\..\build\Targets\VSL.Imports.targets" />
<Import Project="..\..\..\build\Targets\Roslyn.Toolsets.Xunit.targets" />
</ImportGroup>
</Project>
\ No newline at end of file
</Project>
......@@ -32,9 +32,6 @@
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.Text.Internal, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<HintPath>$(DevEnvDir)\PrivateAssemblies\Microsoft.VisualStudio.Text.Internal.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.ComponentModel.Composition" />
<Reference Include="System.Core" />
......@@ -43,6 +40,7 @@
<!-- InternalsVisibleTo go here -->
<InternalsVisibleTo Include="Microsoft.CodeAnalysis.CSharp.EditorFeatures" />
<InternalsVisibleTo Include="Microsoft.CodeAnalysis.EditorFeatures" />
<InternalsVisibleTo Include="Microsoft.CodeAnalysis.EditorFeatures.Next" />
<InternalsVisibleTo Include="Microsoft.CodeAnalysis.VisualBasic.EditorFeatures" />
<InternalsVisibleTo Include="Microsoft.VisualStudio.LanguageServices" />
<InternalsVisibleTo Include="Microsoft.VisualStudio.LanguageServices.CSharp" />
......@@ -93,4 +91,4 @@
<ImportGroup Label="Targets">
<Import Project="..\..\..\build\Targets\VSL.Imports.targets" />
</ImportGroup>
</Project>
\ No newline at end of file
</Project>
......@@ -91,9 +91,6 @@
<Optimize>true</Optimize>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.Language.NavigateTo.Interfaces, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="Microsoft.VisualStudio.Platform.VSEditor, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="Microsoft.VisualStudio.Text.Internal, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System" />
......@@ -611,4 +608,4 @@
<Import Project="..\..\..\build\Targets\VSL.Imports.targets" />
<Import Project="..\..\..\build\Targets\Roslyn.Toolsets.Xunit.targets" />
</ImportGroup>
</Project>
\ No newline at end of file
</Project>
// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System;
using Microsoft.CodeAnalysis.ExpressionEvaluator;
using Microsoft.VisualStudio.Debugger.Clr;
using Microsoft.VisualStudio.Debugger.Evaluation;
......@@ -44,7 +45,8 @@ class Q
var typeQ = assembly.GetType("Q");
string defaultDebuggeeSideVisualizerTypeName = "Microsoft.VisualStudio.DebuggerVisualizers.VisualizerObjectSource";
string defaultDebuggeeSideVisualizerAssemblyName = "Microsoft.VisualStudio.DebuggerVisualizers, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a";
var vsVersion = Environment.GetEnvironmentVariable("VisualStudioVersion") ?? "14.0";
string defaultDebuggeeSideVisualizerAssemblyName = $"Microsoft.VisualStudio.DebuggerVisualizers, Version={vsVersion}.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a";
DkmCustomUIVisualizerInfo[] customUIVisualizerInfo =
{
......
......@@ -299,7 +299,8 @@ private static DkmClrDebuggerVisualizerAttribute[] GetDebuggerVisualizerAttribut
else
{
debuggeeSideVisualizerTypeName = "Microsoft.VisualStudio.DebuggerVisualizers.VisualizerObjectSource";
debuggeeSideVisualizerAssemblyName = "Microsoft.VisualStudio.DebuggerVisualizers, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a";
var vsVersion = System.Environment.GetEnvironmentVariable("VisualStudioVersion") ?? "14.0";
debuggeeSideVisualizerAssemblyName = $"Microsoft.VisualStudio.DebuggerVisualizers, Version={vsVersion}.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a";
}
string visualizerDescription = uiSideVisualizerTypeName;
......
......@@ -34,6 +34,7 @@
<InternalsVisibleTo Include="Microsoft.CodeAnalysis.CSharp.EditorFeatures" />
<InternalsVisibleTo Include="Microsoft.CodeAnalysis.CSharp.Features" />
<InternalsVisibleTo Include="Microsoft.CodeAnalysis.EditorFeatures" />
<InternalsVisibleTo Include="Microsoft.CodeAnalysis.EditorFeatures.Next" />
<InternalsVisibleTo Include="Microsoft.CodeAnalysis.EditorFeatures.Text" />
<InternalsVisibleTo Include="Microsoft.CodeAnalysis.VisualBasic.EditorFeatures" />
<InternalsVisibleTo Include="Microsoft.CodeAnalysis.VisualBasic.Features" />
......
......@@ -9,6 +9,9 @@
using Microsoft.VisualStudio.Utilities;
using Microsoft.VisualStudio.InteractiveWindow;
using Microsoft.VisualStudio.InteractiveWindow.Commands;
using System.Collections.Generic;
using System;
using Microsoft.CodeAnalysis.Editor.Extensibility.Composition;
namespace Microsoft.CodeAnalysis.Editor.Implementation.Completion.Presentation
{
......@@ -19,18 +22,24 @@ internal partial class CompletionPresenter : ForegroundThreadAffinitizedObject,
{
private readonly ICompletionBroker _completionBroker;
private readonly IGlyphService _glyphService;
private readonly ICompletionSetFactory _completionSetFactory;
[ImportingConstructor]
public CompletionPresenter(ICompletionBroker completionBroker, IGlyphService glyphService)
public CompletionPresenter(
ICompletionBroker completionBroker,
IGlyphService glyphService,
[ImportMany] IEnumerable<Lazy<ICompletionSetFactory, VisualStudioVersionMetadata>> completionSetFactories)
{
_completionBroker = completionBroker;
_glyphService = glyphService;
_completionSetFactory = VersionSelector.SelectHighest(completionSetFactories);
}
ICompletionPresenterSession IIntelliSensePresenter<ICompletionPresenterSession, ICompletionSession>.CreateSession(ITextView textView, ITextBuffer subjectBuffer, ICompletionSession sessionOpt)
{
AssertIsForeground();
return new CompletionPresenterSession(_completionBroker, _glyphService, textView, subjectBuffer);
return new CompletionPresenterSession(
_completionSetFactory, _completionBroker, _glyphService, textView, subjectBuffer);
}
ICompletionSource ICompletionSourceProvider.TryCreateCompletionSource(ITextBuffer textBuffer)
......
......@@ -27,10 +27,6 @@
<InternalsVisibleTo Include="Microsoft.CodeAnalysis.EditorFeatures" />
</ItemGroup>
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.Text.Internal, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Private>False</Private>
<HintPath>$(DevEnvDir)\PrivateAssemblies\Microsoft.VisualStudio.Text.Internal.dll</HintPath>
</Reference>
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System" />
......@@ -137,4 +133,4 @@
<ImportGroup Label="Targets">
<Import Project="..\..\..\build\Targets\VSL.Imports.targets" />
</ImportGroup>
</Project>
\ No newline at end of file
</Project>
......@@ -49,13 +49,6 @@
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.Text.Internal, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="Microsoft.VisualStudio.Platform.VSEditor, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<HintPath>$(DevEnvDir)\CommonExtensions\Microsoft\Editor\Microsoft.VisualStudio.Platform.VSEditor.dll</HintPath>
</Reference>
<Reference Include="Microsoft.VisualStudio.Platform.VSEditor.Interop.dll">
<HintPath>$(DevEnvDir)\PrivateAssemblies\Microsoft.VisualStudio.Platform.VSEditor.Interop.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.ComponentModel.Composition" />
<Reference Include="System.Xml" />
......@@ -90,4 +83,4 @@
<Import Project="..\..\..\build\Targets\VSL.Imports.targets" />
<Import Project="..\..\..\build\Targets\Roslyn.Toolsets.Xunit.targets" />
</ImportGroup>
</Project>
\ No newline at end of file
</Project>
{
"dependencies": {
"BasicUndo": "0.9.3",
"RoslynDependencies.Microsoft.VisualStudio.Platform.VSEditor": "14.2.25123"
},
"frameworks": {
"net46": {}
......@@ -8,4 +9,4 @@
"runtimes": {
"win7-x86": {}
}
}
\ No newline at end of file
}
......@@ -2,8 +2,8 @@
call "%~dp0..\..\..\Restore.cmd"
set MSBuild=%ProgramFiles%\MSBuild\14.0\bin\msbuild.exe
if not exist "%MSBuild%" set MSBuild=%ProgramFiles(x86)%\MSBuild\14.0\bin\msbuild.exe
set MSBuild=%ProgramFiles%\MSBuild\%VisualStudioVersion%\bin\msbuild.exe
if not exist "%MSBuild%" set MSBuild=%ProgramFiles(x86)%\MSBuild\%VisualStudioVersion%\bin\msbuild.exe
"%MSBuild%" "%~dp0..\..\..\src\Interactive\csi\csi.csproj" /p:Configuration=Release /p:OutDir="%~dp0infra\bin\\"
if "%USERDNSDOMAIN%" == "REDMOND.CORP.MICROSOFT.COM" (
......@@ -12,4 +12,4 @@ if "%USERDNSDOMAIN%" == "REDMOND.CORP.MICROSOFT.COM" (
robocopy \\mlangfs1\public\basoundr\vibenchcsv2json %SYSTEMDRIVE%\CPC /s
) else (
echo "Machine not in Microsoft Corp Net Domain. Hence not downloading internal tools"
)
\ No newline at end of file
)
......@@ -12,6 +12,7 @@ using System.Diagnostics;
using System.IO;
using Roslyn.Test.Performance.Utilities;
using static Roslyn.Test.Performance.Utilities.TestUtilities;
using static System.FormattableString;
TestUtilities.InitUtilitiesFromCsx();
......@@ -35,7 +36,8 @@ foreach (var processName in new[] { "devenv", "msbuild", "VBCSCompiler"})
var logger = new ConsoleAndFileLogger();
logger.Log($"\n{message} Roslyn binaries to VS folder.");
var devenvFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), @"Microsoft Visual Studio 14.0\Common7\IDE");
var vsVersion = Environment.GetEnvironmentVariable("VisualStudioVersion") ?? "14.0";
var devenvFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), Invariant($@"Microsoft Visual Studio {vsVersion}\Common7\IDE"));
var destinationFolder = Path.Combine(devenvFolder, "PrivateAssemblies");
var filesToNGen = new List<string>();
foreach (var file in IDEFiles)
......@@ -60,8 +62,8 @@ ShellOutVital(devenv, "/updateconfiguration", IsVerbose(), logger);
ShellOutVital(devenv, $"/resetsettingsfull {Path.Combine(sourceFolder, "Default.vssettings")} /command \"File.Exit\"", IsVerbose(), logger);
logger.Log($"\n{message} compilers in MSBuild folders.");
destinationFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), @"MSBuild\14.0\Bin");
var destinationFolder64 = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), @"MSBuild\14.0\Bin\amd64");
destinationFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), Invariant($@"MSBuild\{vsVersion}\Bin"));
var destinationFolder64 = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), Invariant($@"MSBuild\14.0\{vsVersion}\amd64"));
filesToNGen = new List<string>();
foreach (var file in MSBuildFiles)
{
......
......@@ -12,6 +12,7 @@
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.Diagnostics;
using Microsoft.CodeAnalysis.Test.Utilities;
using Microsoft.Win32;
namespace Roslyn.Test.Utilities
{
......@@ -145,5 +146,24 @@ public static string AsXmlCommentText(string text)
Debug.Assert(!result.Contains("--"));
return result;
}
public static string GetMSBuildDirectory()
{
var vsVersion = Environment.GetEnvironmentVariable("VisualStudioVersion") ?? "14.0";
using (var key = Registry.LocalMachine.OpenSubKey($@"SOFTWARE\Microsoft\MSBuild\ToolsVersions\{vsVersion}", false))
{
if (key != null)
{
var toolsPath = key.GetValue("MSBuildToolsPath");
if (toolsPath != null)
{
return toolsPath.ToString();
}
}
}
return null;
}
}
}
......@@ -93,7 +93,6 @@
<Reference Include="Microsoft.VisualStudio.ComponentModelHost, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Private>false</Private>
</Reference>
<Reference Include="Microsoft.VisualStudio.GraphModel, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System" />
......@@ -268,4 +267,4 @@
<ImportGroup Label="Targets">
<Import Project="..\..\..\..\build\Targets\VSL.Imports.targets" />
</ImportGroup>
</Project>
\ No newline at end of file
</Project>
......@@ -15,11 +15,6 @@
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
<TargetFrameworkProfile />
</PropertyGroup>
<ItemGroup Label="File References">
<Reference Include="Microsoft.VisualStudio.Platform.VSEditor, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<HintPath>$(DevEnvDir)\CommonExtensions\Microsoft\Editor\Microsoft.VisualStudio.Platform.VSEditor.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup Label="Project References">
<ProjectReference Include="..\..\..\Interactive\EditorFeatures\Core\InteractiveEditorFeatures.csproj">
<Project>{92412d1a-0f23-45b5-b196-58839c524917}</Project>
......@@ -131,9 +126,6 @@
<Reference Include="Microsoft.VisualStudio.ComponentModelHost, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Private>false</Private>
</Reference>
<Reference Include="Microsoft.VisualStudio.Text.Internal, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>$(DevEnvDir)\PrivateAssemblies\Microsoft.VisualStudio.Text.Internal.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.ComponentModel.Composition" />
<Reference Include="System.Core" />
......@@ -205,4 +197,4 @@
<Import Project="..\..\..\..\build\Targets\VSL.Imports.targets" />
<Import Project="..\..\..\..\build\Targets\Roslyn.Toolsets.Xunit.targets" />
</ImportGroup>
</Project>
\ No newline at end of file
</Project>
// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.ComponentModel.Composition;
using Microsoft.VisualStudio.Utilities;
using Microsoft.Internal.VisualStudio.Shell.TableControl;
using System;
namespace Microsoft.VisualStudio.LanguageServices.Implementation.TableDataSource
{
/// <summary>
/// Supporession column definition filter
/// </summary>
/// <remarks>
/// TODO: Move this column down to the shell as it is shared by multiple issue sources (Roslyn and FxCop).
/// </remarks>
[Export(typeof(EntryFilterDefinition))]
[Name(SuppressionStateColumnDefinition.ColumnName)]
internal class SuppressionStateColumnFilterDefinition : EntryFilterDefinition
{
public override bool HasAttribute(string key) => string.Equals(NonActionable, key, StringComparison.OrdinalIgnoreCase);
}
}
......@@ -107,7 +107,6 @@
<Compile Include="Implementation\SolutionSize\SolutionSizeTracker.cs" />
<Compile Include="Implementation\TableDataSource\DiagnosticTableControlEventProcessorProvider.AggregateDiagnosticTableControlEventProcessor.cs" />
<Compile Include="Implementation\TableDataSource\Suppression\IVisualStudioDiagnosticListSuppressionStateService.cs" />
<Compile Include="Implementation\TableDataSource\Suppression\SuppressionStateColumnFilterDefinition.cs" />
<Compile Include="Implementation\TableDataSource\Suppression\VisualStudioDiagnosticListTableCommandHandler.cs" />
<Compile Include="Implementation\TableDataSource\Suppression\VisualStudioDiagnosticListSuppressionStateService.cs" />
<Compile Include="Implementation\TableDataSource\Suppression\DiagnosticTableControlEventProcessorProvider.SuppressionStateProcessor.cs" />
......@@ -249,9 +248,6 @@
</ItemGroup>
<ItemGroup Label="File References">
<Reference Include="System.ComponentModel.Composition" />
<Reference Include="Microsoft.VisualStudio.CallHierarchy.Package.Definitions.dll">
<HintPath>$(DevEnvDir)\Microsoft.VisualStudio.CallHierarchy.Package.Definitions.dll</HintPath>
</Reference>
<Reference Include="Microsoft.VisualStudio.ExtensionManager, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<HintPath>$(DevEnvDir)\PrivateAssemblies\Microsoft.VisualStudio.ExtensionManager.dll</HintPath>
</Reference>
......@@ -298,21 +294,6 @@
<Reference Include="Microsoft.VisualStudio.ComponentModelHost, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Private>false</Private>
</Reference>
<Reference Include="Microsoft.VisualStudio.GraphModel, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="Microsoft.VisualStudio.Language.CallHierarchy, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="Microsoft.VisualStudio.Language.NavigateTo.Interfaces, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="Microsoft.VisualStudio.Progression.CodeSchema, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<HintPath>$(DevEnvDir)\CommonExtensions\Microsoft\Architecture Tools\GraphProviderPackage\Microsoft.VisualStudio.Progression.CodeSchema.dll</HintPath>
</Reference>
<Reference Include="Microsoft.VisualStudio.Progression.Common, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<HintPath>$(DevEnvDir)\CommonExtensions\Microsoft\Architecture Tools\GraphProviderPackage\Microsoft.VisualStudio.Progression.Common.dll</HintPath>
</Reference>
<Reference Include="Microsoft.VisualStudio.Progression.Interfaces, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<HintPath>$(DevEnvDir)\CommonExtensions\Microsoft\Architecture Tools\GraphProviderPackage\Microsoft.VisualStudio.Progression.Interfaces.dll</HintPath>
</Reference>
<Reference Include="Microsoft.VisualStudio.Text.Internal, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Private>false</Private>
</Reference>
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System" />
......
......@@ -2,6 +2,9 @@
"dependencies": {
"ManagedEsent": "1.9.2.0",
"Microsoft.CodeAnalysis.Elfie": "0.10.6-rc2",
"RoslynDependencies.Microsoft.VisualStudio.Progression": "14.2.25123",
"RoslynDependencies.Microsoft.VisualStudio.GraphModel": "14.2.25123",
"RoslynDependencies.Microsoft.VisualStudio.CallHierarchy.Package.Definitions": "14.0.23107",
"NuGet.VisualStudio": {
"version": "3.3.0",
"suppressParent": "all"
......
......@@ -9,6 +9,8 @@ Imports Microsoft.VisualStudio.LanguageServices.Implementation
Imports Microsoft.Win32
Imports Roslyn.Test.Utilities
Imports System.FormattableString
Namespace Microsoft.VisualStudio.LanguageServices.UnitTests
Public Class AnalyzerDependencyCheckerTests
Inherits TestBase
......@@ -17,7 +19,8 @@ Namespace Microsoft.VisualStudio.LanguageServices.UnitTests
Private Shared ReadOnly Property MSBuildDirectory As String
Get
If s_msbuildDirectory Is Nothing Then
Dim key = Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0", False)
Dim vsVersion = If(Environment.GetEnvironmentVariable("VisualStudioVersion"), "14.0")
Dim key = Registry.LocalMachine.OpenSubKey(Invariant($"SOFTWARE\Microsoft\MSBuild\ToolsVersions\{vsVersion}"), False)
If key IsNot Nothing Then
Dim toolsPath = key.GetValue("MSBuildToolsPath")
......
......@@ -13,7 +13,13 @@
<PlatformTarget>AnyCPU</PlatformTarget>
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
<TargetFrameworkProfile />
<ForceGenerationOfBindingRedirects>true</ForceGenerationOfBindingRedirects>
</PropertyGroup>
<ItemGroup>
<SuggestedBindingRedirects Include="Microsoft.VisualStudio.Diagnostics.PerformanceProvider, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<MaxVersion>$(VisualStudioReferenceAssemblyVersion)</MaxVersion>
</SuggestedBindingRedirects>
</ItemGroup>
<ItemGroup Label="Project References">
<ProjectReference Include="..\..\..\Compilers\Core\Portable\CodeAnalysis.csproj">
<Project>{1EE8CAD3-55F9-4D91-96B2-084641DA9A6C}</Project>
......@@ -125,13 +131,6 @@
<Reference Include="Microsoft.VisualStudio.ComponentModelHost, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Private>false</Private>
</Reference>
<Reference Include="Microsoft.VisualStudio.GraphModel, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="Microsoft.VisualStudio.Progression.CodeSchema, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="Microsoft.VisualStudio.Progression.Common, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="Microsoft.VisualStudio.Progression.Interfaces, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="Microsoft.VisualStudio.Text.Internal, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Private>false</Private>
</Reference>
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System" />
......@@ -146,16 +145,6 @@
<Reference Include="System.Xml.Linq" />
<Reference Include="WindowsBase" />
</ItemGroup>
<Target Name="AddShellImmutable15" Condition="'$(VisualStudioVersion)' == '15.0'" BeforeTargets="ResolveAssemblyReferences">
<!-- we want this to only be added for Dev15 builds, but the project system doesn't like us having conditional
attributes on Reference nodes in regular item groups; if the condition fails you get yellow exclamation points
in the solution explorer since it doesn't think it resolved. By making this a target, we work around that issue. -->
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.Shell.Immutable.15.0, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Private>false</Private>
</Reference>
</ItemGroup>
</Target>
<ItemGroup>
<Import Include="System.Xml.Linq" />
<Import Include="Xunit" />
......@@ -404,4 +393,4 @@
<Import Project="..\..\..\..\build\Targets\VSL.Imports.targets" />
<Import Project="..\..\..\..\build\Targets\Roslyn.Toolsets.Xunit.targets" />
</ImportGroup>
</Project>
\ No newline at end of file
</Project>
// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using Microsoft.VisualStudio;
using Microsoft.VisualStudio.Shell;
using Roslyn.VisualStudio.Setup;
[assembly: ProvideRoslynBindingRedirection("Microsoft.CodeAnalysis.EditorFeatures.Next.dll")]
[assembly: ProvideBindingRedirection(
AssemblyName = "Microsoft.VisualStudio.CallHierarchy.Package.Definitions",
GenerateCodeBase = false,
PublicKeyToken = "31BF3856AD364E35",
OldVersionLowerBound = "14.0.0.0",
OldVersionUpperBound = "14.9.9.9",
NewVersion = "15.0.0.0")]
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="Settings">
<Import Project="..\..\..\build\Targets\VSL.Settings.targets" />
</ImportGroup>
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectTypeGuids>{82b43b9b-a64c-4715-b499-d71e9ca2bd60};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<ProjectGuid>{143FE684-6E1C-41DF-9C60-84C7772DC49C}</ProjectGuid>
<OutputType>Library</OutputType>
<RootNamespace>Roslyn.VisualStudio.Setup.Next</RootNamespace>
<AssemblyName>Roslyn.VisualStudio.Setup.Next</AssemblyName>
<GeneratePkgDefFile>true</GeneratePkgDefFile>
<UseCodebase>true</UseCodebase>
<VSSDKTargetPlatformRegRootSuffix>RoslynDev</VSSDKTargetPlatformRegRootSuffix>
<IncludeAssemblyInVSIXContainer>false</IncludeAssemblyInVSIXContainer>
<IncludeDebugSymbolsInVSIXContainer>false</IncludeDebugSymbolsInVSIXContainer>
<IncludeDebugSymbolsInLocalVSIXDeployment>false</IncludeDebugSymbolsInLocalVSIXDeployment>
<MinimumVisualStudioVersion>$(VisualStudioVersion)</MinimumVisualStudioVersion>
<ImportVSSDKTargets>true</ImportVSSDKTargets>
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
<CopyNuGetImplementations>true</CopyNuGetImplementations>
</PropertyGroup>
<ItemGroup Label="Project References">
<ProjectReference Include="..\..\Dependencies\VisualStudio\VisualStudio.csproj">
<Project>{8da861d8-0cce-4334-b6c0-01a846c881ec}</Project>
<Name>VisualStudio</Name>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\EditorFeatures\Next\EditorFeatures.Next.csproj">
<Project>{366BBCDC-B05F-4677-9B5B-78BA816A1484}</Project>
<Name>EditorFeatures.Next</Name>
<IncludeOutputGroupsInVSIX>BuiltProjectOutputGroup%3bGetCopyToOutputDirectoryItems%3bSatelliteDllsProjectOutputGroup%3b</IncludeOutputGroupsInVSIX>
<IncludeOutputGroupsInVSIXLocalOnly>DebugSymbolsProjectOutputGroup%3b</IncludeOutputGroupsInVSIXLocalOnly>
</ProjectReference>
<ProjectReference Include="..\Setup\VisualStudioSetup.csproj">
<Name>VisualStudioSetup</Name>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
<PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
<PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>
<PropertyGroup>
<StartAction>Program</StartAction>
<StartProgram>$(DevEnvDir)devenv.exe</StartProgram>
<StartArguments>/rootsuffix RoslynDev /log</StartArguments>
</PropertyGroup>
<ItemGroup>
<None Include="project.json" />
<None Include="source.extension.vsixmanifest">
<SubType>Designer</SubType>
</None>
</ItemGroup>
<ItemGroup>
<Reference Include="System" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\Setup\ProvideRoslynBindingRedirection.cs">
<Link>ProvideRoslynBindingRedirection.cs</Link>
</Compile>
<Compile Include="AssemblyRedirects.cs" />
</ItemGroup>
<ImportGroup Label="Targets">
<Import Project="..\..\..\build\Targets\VSL.Imports.targets" />
</ImportGroup>
</Project>
{
"dependencies": {
},
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
}
<?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="58293943-56F1-4734-82FC-0411DCF49DE1" Version="|%CurrentProject%;GetBuildVersion|" Language="en-US" Publisher="Microsoft" />
<DisplayName>Roslyn Language Services for Visual Studio 15</DisplayName>
<Description>C# and VB.NET language services for Visual Studio 15.</Description>
</Metadata>
<Installation Experimental="true">
<InstallationTarget Version="[15.0,]" Id="Microsoft.VisualStudio.Pro" />
<InstallationTarget Version="[15.0,]" Id="Microsoft.VisualStudio.VSWinDesktopExpress" />
<InstallationTarget Version="[15.0,]" Id="Microsoft.VisualStudio.VWDExpress" />
<InstallationTarget Version="[15.0,]" Id="Microsoft.VisualStudio.VSWinExpress" />
</Installation>
<Dependencies>
<Dependency Id="Microsoft.Framework.NDP" DisplayName="Microsoft .NET Framework" d:Source="Manual" Version="[4.6,)" />
<Dependency Version="[|VisualStudioSetup;GetBuildVersion|,]" DisplayName="Roslyn Language Services" Id="0b5e8ddb-f12d-4131-a71d-77acc26a798f" />
</Dependencies>
<Assets>
<Asset Type="Microsoft.VisualStudio.MefComponent" d:Source="Project" d:ProjectName="EditorFeatures.Next" Path="|EditorFeatures.Next|" />
</Assets>
</PackageManifest>
......@@ -138,9 +138,6 @@
<ForceIncludeInVSIX>true</ForceIncludeInVSIX>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<InternalsVisibleTo Include="Microsoft.VisualStudio.LanguageServices.Telemetry" />
</ItemGroup>
<ItemGroup>
<NuGetPackageToIncludeInVsix Include="ManagedEsent" />
<NuGetPackageToIncludeInVsix Include="Microsoft.CodeAnalysis.Elfie" />
......@@ -181,4 +178,4 @@
<ImportGroup Label="Targets">
<Import Project="..\..\..\build\Targets\VSL.Imports.targets" />
</ImportGroup>
</Project>
\ No newline at end of file
</Project>
......@@ -188,7 +188,6 @@
<Reference Include="Microsoft.VisualStudio.ComponentModelHost, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Private>false</Private>
</Reference>
<Reference Include="Microsoft.VisualStudio.GraphModel, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System" />
......@@ -239,4 +238,4 @@
<ImportGroup Label="Targets">
<Import Project="..\..\..\..\build\Targets\VSL.Imports.targets" />
</ImportGroup>
</Project>
\ No newline at end of file
</Project>
......@@ -13,7 +13,9 @@
<RootNamespace>Microsoft.CodeAnalysis.UnitTests</RootNamespace>
<AssemblyName>Roslyn.Services.UnitTests</AssemblyName>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
<GenerateMSBuildBindingRedirects>true</GenerateMSBuildBindingRedirects>
</PropertyGroup>
<PropertyGroup Condition="'$(MSBuildAssemblyNameFragment)' == 'v12.0'">
<DefineConstants>$(DefineConstants);MSBUILD12</DefineConstants>
</PropertyGroup>
......
......@@ -13,36 +13,4 @@
</listeners>
</trace>
</system.diagnostics>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.Build.Framework" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-99.9.9.9" newVersion="14.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Build.Engine" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-99.9.9.9" newVersion="14.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Build" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-99.9.9.9" newVersion="14.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Build.Conversion.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-99.9.9.9" newVersion="14.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Build.Tasks.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-99.9.9.9" newVersion="14.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Build.Utilities.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-99.9.9.9" newVersion="14.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.CompactFramework.Build.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-99.9.9.9" newVersion="9.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册