提交 71357b38 编写于 作者: C CyrusNajmabadi

Reference latest VS binaries so we can consume them in our features.

上级 a9a3dc64
......@@ -31,5 +31,4 @@
<add key="dotnet.myget.org msbuild" value="https://dotnet.myget.org/F/msbuild/api/v3/index.json" />
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
</packageSources>
</configuration>
{
"dependencies": { },
"frameworks": {
// We don't actually target netstandard1.6; this is to work around https://github.com/dotnet/roslyn/issues/12458
"netstandard1.6": {
"imports": "portable-net452"
"dependencies": { },
"frameworks": {
// We don't actually target netstandard1.6; this is to work around https://github.com/dotnet/roslyn/issues/12458
"netstandard1.6": {
"imports": "portable-net452"
},
"NETCoreApp1.0": {
"imports": "portable-net452"
}
},
"NETCoreApp1.0": {
"imports": "portable-net452"
"runtimes": {
"win7-x64": { },
"ubuntu.14.04-x64": { },
"osx.10.10-x64": { }
}
},
"runtimes": {
"win7-x64": {},
"ubuntu.14.04-x64": {},
"osx.10.10-x64": {}
}
}
{
"dependencies": { },
"frameworks": {
".NETPortable,Version=v4.5,Profile=Profile7": {}
}
"dependencies": { },
"frameworks": {
".NETPortable,Version=v4.5,Profile=Profile7": { }
}
}
{
"dependencies": {
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239"
},
"frameworks": {
"net46": {}
},
"runtimes": {
"win7": {}
}
"dependencies": {
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239"
},
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
}
\ No newline at end of file
{
"dependencies": {
"Microsoft.DiaSymReader": "1.1.0-beta1-60625-03",
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239"
},
"frameworks": {
"net46": {}
},
"runtimes": {
"win7": {}
}
"dependencies": {
"Microsoft.DiaSymReader": "1.1.0-beta1-60625-03",
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239"
},
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
}
\ No newline at end of file
{
"dependencies": {
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239"
},
"frameworks": {
"net46": {}
},
"runtimes": {
"win7": {}
}
"dependencies": {
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239"
},
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
}
\ No newline at end of file
{
"dependencies": {
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239"
},
"frameworks": {
"net46": {}
},
"runtimes": {
"win7": {}
}
"dependencies": {
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239"
},
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
}
\ No newline at end of file
{
"dependencies": { },
"frameworks": {
"netstandard1.3": {
"imports": "portable-net452"
"dependencies": { },
"frameworks": {
"netstandard1.3": {
"imports": "portable-net452"
}
}
}
}
{
"dependencies": {
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239"
},
"frameworks": {
"net46": {}
},
"runtimes": {
"win7": {}
}
"dependencies": {
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239"
},
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
}
\ No newline at end of file
{
"dependencies": {
"Microsoft.DiaSymReader.Native": "1.5.0-beta1"
},
"frameworks": {
"net46": {}
},
"runtimes": {
"win7": {}
}
"dependencies": {
"Microsoft.DiaSymReader.Native": "1.5.0-beta1"
},
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
}
\ No newline at end of file
{
"dependencies": {
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239",
"Moq": "4.2.1402.2112"
},
"frameworks": {
"net46": {}
},
"runtimes": {
"win7": {}
}
"dependencies": {
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239",
"Moq": "4.2.1402.2112"
},
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
}
\ No newline at end of file
{
"dependencies": {
"Microsoft.Build": "14.3.0-prerelease01",
"Microsoft.Build.Tasks.Core": "14.3.0-prerelease01",
"Microsoft.NETCore.Platforms": "1.0.1",
"Microsoft.NETCore.Portable.Compatibility": "1.0.1",
"Microsoft.Win32.Primitives": "4.0.1",
"System.AppContext": "4.1.0",
"System.Console": "4.0.0",
"System.Diagnostics.Process": "4.1.0",
"System.Diagnostics.Tools": "4.0.1",
"System.IO.FileSystem": "4.0.1",
"System.IO.FileSystem.DriveInfo": "4.0.0",
"System.IO.Pipes": "4.0.0",
"System.Runtime.InteropServices.RuntimeInformation": "4.0.0",
"System.Security.AccessControl": "4.0.0",
"System.Security.Cryptography.Algorithms": "4.2.0",
"System.Security.Principal.Windows": "4.0.0",
"System.Text.RegularExpressions": "4.1.0",
"System.Threading.Thread": "4.0.0"
},
"frameworks": {
"netstandard1.3": {
"imports": [
"portable-net452",
"dotnet5.4"
]
"dependencies": {
"Microsoft.Build": "14.3.0-prerelease01",
"Microsoft.Build.Tasks.Core": "14.3.0-prerelease01",
"Microsoft.NETCore.Platforms": "1.0.1",
"Microsoft.NETCore.Portable.Compatibility": "1.0.1",
"Microsoft.Win32.Primitives": "4.0.1",
"System.AppContext": "4.1.0",
"System.Console": "4.0.0",
"System.Diagnostics.Process": "4.1.0",
"System.Diagnostics.Tools": "4.0.1",
"System.IO.FileSystem": "4.0.1",
"System.IO.FileSystem.DriveInfo": "4.0.0",
"System.IO.Pipes": "4.0.0",
"System.Runtime.InteropServices.RuntimeInformation": "4.0.0",
"System.Security.AccessControl": "4.0.0",
"System.Security.Cryptography.Algorithms": "4.2.0",
"System.Security.Principal.Windows": "4.0.0",
"System.Text.RegularExpressions": "4.1.0",
"System.Threading.Thread": "4.0.0"
},
"frameworks": {
"netstandard1.3": {
"imports": [
"portable-net452",
"dotnet5.4"
]
}
}
}
}
\ No newline at end of file
{
"dependencies": {
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239",
"Roslyn.Microsoft.Build": "0.0.2",
"Moq": "4.2.1402.2112"
},
"frameworks": {
"net46": {}
},
"runtimes": {
"win7": {}
}
"dependencies": {
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239",
"Roslyn.Microsoft.Build": "0.0.2",
"Moq": "4.2.1402.2112"
},
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
}
\ No newline at end of file
{
"supports": {},
"dependencies": {
"System.Collections.Immutable": "1.2.0",
"System.Reflection.Metadata": "1.4.1-beta-24430-01"
},
"frameworks": {
".NETPortable,Version=v4.5,Profile=Profile7": {}
}
"supports": { },
"dependencies": {
"System.Collections.Immutable": "1.2.0",
"System.Reflection.Metadata": "1.4.1-beta-24430-01"
},
"frameworks": {
".NETPortable,Version=v4.5,Profile=Profile7": { }
}
}
{
"dependencies": {
"Microsoft.VisualStudio.Shell.14.0": "14.3.25407",
"Microsoft.VisualStudio.Shell.Interop.10.0": "10.0.30319"
},
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
"dependencies": {
"Microsoft.VisualStudio.Shell.14.0": "14.3.25407",
"Microsoft.VisualStudio.Shell.Interop.10.0": "10.0.30319"
},
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
}
{
"dependencies": { },
"frameworks": {
// We don't actually target netstandard1.6; this is to work around https://github.com/dotnet/roslyn/issues/12458
"netstandard1.6": {
"imports": "portable-net452"
"dependencies": { },
"frameworks": {
// We don't actually target netstandard1.6; this is to work around https://github.com/dotnet/roslyn/issues/12458
"netstandard1.6": {
"imports": "portable-net452"
},
"NETCoreApp1.0": {
"imports": "portable-net452"
}
},
"NETCoreApp1.0": {
"imports": "portable-net452"
"runtimes": {
"win7-x64": { },
"ubuntu.14.04-x64": { },
"osx.10.10-x64": { }
}
},
"runtimes": {
"win7-x64": {},
"ubuntu.14.04-x64": {},
"osx.10.10-x64": {}
}
}
{
"dependencies": {
},
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { },
"ubuntu.14.04": { },
"osx.10.10": { }
}
"dependencies": {
},
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { },
"ubuntu.14.04": { },
"osx.10.10": { }
}
}
{
"dependencies": {
"Roslyn.Microsoft.Build": "0.0.2",
"Microsoft.DiaSymReader": "1.1.0-beta1-60625-03",
"Moq": "4.2.1402.2112",
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239"
},
"frameworks": {
"net46": {}
},
"runtimes": {
"win7": {}
}
"dependencies": {
"Roslyn.Microsoft.Build": "0.0.2",
"Microsoft.DiaSymReader": "1.1.0-beta1-60625-03",
"Moq": "4.2.1402.2112",
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239"
},
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
}
\ No newline at end of file
{
"supports": { },
"dependencies": { },
"frameworks": {
".NETPortable,Version=v4.5,Profile=Profile7": {}
}
"supports": { },
"dependencies": { },
"frameworks": {
".NETPortable,Version=v4.5,Profile=Profile7": { }
}
}
{
"dependencies": { },
"frameworks": {
"net46": { }
}
"dependencies": { },
"frameworks": {
"net46": { }
}
}
{
"dependencies": {
},
"frameworks": {
"netstandard1.3": {
"imports": "portable-net452"
"dependencies": {
},
"frameworks": {
"netstandard1.3": {
"imports": "portable-net452"
}
}
}
}
\ No newline at end of file
{
"dependencies": { },
"frameworks": {
"net46": { }
}
"dependencies": { },
"frameworks": {
"net46": { }
}
}
{
"dependencies": { },
"frameworks": {
".NETPortable,Version=v4.5,Profile=Profile7": {}
}
"dependencies": { },
"frameworks": {
".NETPortable,Version=v4.5,Profile=Profile7": { }
}
}
{
"dependencies": {
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239"
},
"frameworks": {
"net46": {}
},
"runtimes": {
"win7": {}
}
"dependencies": {
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239"
},
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
}
\ No newline at end of file
{
"dependencies": {
"Microsoft.DiaSymReader": "1.1.0-beta1-60625-03",
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239"
},
"frameworks": {
"net46": {}
},
"runtimes": {
"win7": {}
}
"dependencies": {
"Microsoft.DiaSymReader": "1.1.0-beta1-60625-03",
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239"
},
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
}
\ No newline at end of file
{
"dependencies": {
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239"
},
"frameworks": {
"net46": {}
},
"runtimes": {
"win7": {}
}
"dependencies": {
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239"
},
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
}
\ No newline at end of file
{
"dependencies": {
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239"
},
"frameworks": {
"net46": {}
},
"runtimes": {
"win7": {}
}
"dependencies": {
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239"
},
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
}
\ No newline at end of file
{
"dependencies": {
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239"
},
"frameworks": {
"net46": {}
},
"runtimes": {
"win7": {}
}
"dependencies": {
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239"
},
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
}
\ No newline at end of file
{
"dependencies": { },
"frameworks": {
// We don't actually target netstandard1.6; this is to work around https://github.com/dotnet/roslyn/issues/12458
"netstandard1.6": {
"imports": "portable-net452"
"dependencies": { },
"frameworks": {
// We don't actually target netstandard1.6; this is to work around https://github.com/dotnet/roslyn/issues/12458
"netstandard1.6": {
"imports": "portable-net452"
},
"NETCoreApp1.0": {
"imports": "portable-net452"
}
},
"NETCoreApp1.0": {
"imports": "portable-net452"
"runtimes": {
"win7-x64": { },
"ubuntu.14.04-x64": { },
"osx.10.10-x64": { }
}
},
"runtimes": {
"win7-x64": {},
"ubuntu.14.04-x64": {},
"osx.10.10-x64": {}
}
}
{
"dependencies": {
"Microsoft.DiaSymReader.Native": "1.5.0-beta1"
},
"frameworks": {
"net46": {}
},
"runtimes": {
"win7": {}
}
"dependencies": {
"Microsoft.DiaSymReader.Native": "1.5.0-beta1"
},
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
}
\ No newline at end of file
{
"supports": { },
"dependencies": {
"Microsoft.VisualStudio.Designer.Interfaces": "1.1.4322",
"Microsoft.VisualStudio.ImageCatalog": "14.3.25407",
"Microsoft.VisualStudio.OLE.Interop": "7.10.6070",
"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.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",
"Microsoft.VisualStudio.SDK.EmbedInteropTypes": "14.1.2",
"Microsoft.VisualStudio.ManagedInterfaces": "8.0.50727",
"Microsoft.VisualStudio.WCFReference.Interop": "9.0.30729",
"Microsoft.VisualStudio.Data.Core": "9.0.21022",
"Microsoft.VisualStudio.Data.Services": "9.0.21022",
"Roslyn.Microsoft.VisualStudio.ExtensionManager": "0.0.4"
},
"frameworks": {
".NETFramework,Version=v4.6": { }
}
"supports": { },
"dependencies": {
"Microsoft.VisualStudio.Designer.Interfaces": "1.1.4322",
"Microsoft.VisualStudio.ImageCatalog": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.OLE.Interop": "7.10.6070",
"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.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",
"Microsoft.VisualStudio.SDK.EmbedInteropTypes": "14.1.2",
"Microsoft.VisualStudio.ManagedInterfaces": "8.0.50727",
"Microsoft.VisualStudio.WCFReference.Interop": "9.0.30729",
"Microsoft.VisualStudio.Data.Core": "9.0.21022",
"Microsoft.VisualStudio.Data.Services": "9.0.21022",
"Roslyn.Microsoft.VisualStudio.ExtensionManager": "0.0.4"
},
"frameworks": {
".NETFramework,Version=v4.6": { }
}
}
\ No newline at end of file
{
"supports": { },
"dependencies": {
"Microsoft.VisualStudio.Imaging": "14.3.25407",
"Microsoft.VisualStudio.ImageCatalog": "14.3.25407",
"Microsoft.VisualStudio.Language.StandardClassification": "14.3.25407",
"Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "14.3.25407"
},
"frameworks": {
".NETFramework,Version=v4.6": { }
}
"supports": { },
"dependencies": {
"Microsoft.VisualStudio.Imaging": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.ImageCatalog": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.Language.StandardClassification": {
"version": "14.3.25407",
"suppressParent": "all"
},
},
"frameworks": {
".NETFramework,Version=v4.6": { }
}
}
\ No newline at end of file
{
"supports": { },
"dependencies": {
"Microsoft.VisualStudio.Text.Data": "14.3.25407",
"Microsoft.VisualStudio.Text.Logic": "14.3.25407",
"Microsoft.VisualStudio.Text.UI": "14.3.25407",
"Microsoft.VisualStudio.Text.UI.Wpf": "14.3.25407",
"RoslynDependencies.Microsoft.VisualStudio.Text.Internal": "14.3.25407"
},
"frameworks": {
".NETFramework,Version=v4.6": { }
}
"supports": { },
"dependencies": {
"Microsoft.VisualStudio.Text.Data": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.Text.Logic": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.Text.UI": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.Text.UI.Wpf": {
"version": "14.3.25407",
"suppressParent": "all"
},
"RoslynDependencies.Microsoft.VisualStudio.Text.Internal": {
"version": "14.3.25407",
"suppressParent": "all"
},
},
"frameworks": {
".NETFramework,Version=v4.6": { }
}
}
{
"dependencies": {
"Microsoft.VisualStudio.Language.Intellisense": {
"version": "14.3.25407",
"suppressParent": "all"
"dependencies": {
"Microsoft.VisualStudio.Language.Intellisense": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.Text.UI.Wpf": {
"version": "14.3.25407",
"suppressParent": "all"
},
},
},
"frameworks": {
"net46": { }
}
"frameworks": {
"net46": { }
}
}
......@@ -6,6 +6,7 @@
using System.Threading.Tasks;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using Microsoft.CodeAnalysis.Editor.Extensibility.Composition;
using Microsoft.CodeAnalysis.Editor.Implementation.NavigateTo;
using Microsoft.CodeAnalysis.Editor.UnitTests.Workspaces;
using Microsoft.CodeAnalysis.Shared.TestHooks;
......@@ -33,7 +34,8 @@ private async Task<TestWorkspace> SetupWorkspaceAsync(params string[] files)
_provider = new NavigateToItemProvider(
workspace,
_glyphServiceMock.Object,
aggregateListener);
aggregateListener,
workspace.ExportProvider.GetExportedValues<Lazy<INavigateToOptionsService, VisualStudioVersionMetadata>>());
_aggregator = new NavigateToTestAggregator(_provider);
return workspace;
......
......@@ -6,9 +6,12 @@
using System.Threading.Tasks;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using Microsoft.CodeAnalysis.Editor.Extensibility.Composition;
using Microsoft.CodeAnalysis.Editor.Implementation.NavigateTo;
using Microsoft.CodeAnalysis.Editor.UnitTests;
using Microsoft.CodeAnalysis.Editor.UnitTests.Workspaces;
using Microsoft.CodeAnalysis.Shared.TestHooks;
using Microsoft.VisualStudio.Composition;
using Microsoft.VisualStudio.Language.Intellisense;
using Microsoft.VisualStudio.Language.NavigateTo.Interfaces;
using Moq;
......@@ -25,15 +28,21 @@ public class NavigateToTests
private INavigateToItemProvider _provider;
private NavigateToTestAggregator _aggregator;
private static ExportProvider s_exportProvider =
MinimalTestExportProvider.CreateExportProvider(
TestExportProvider.CreateAssemblyCatalogWithCSharpAndVisualBasic().WithPart(
typeof(Dev14NavigateToOptionsService)));
private async Task<TestWorkspace> SetupWorkspaceAsync(string content)
{
var workspace = await TestWorkspace.CreateCSharpAsync(content);
var workspace = await TestWorkspace.CreateCSharpAsync(content, exportProvider: s_exportProvider);
var aggregateListener = AggregateAsynchronousOperationListener.CreateEmptyListener();
_provider = new NavigateToItemProvider(
workspace,
_glyphServiceMock.Object,
aggregateListener);
aggregateListener,
workspace.ExportProvider.GetExportedValues<Lazy<INavigateToOptionsService, VisualStudioVersionMetadata>>());
_aggregator = new NavigateToTestAggregator(_provider);
return workspace;
......@@ -867,11 +876,13 @@ public partial class C
</Document>
</Project>
</Workspace>
"))
", exportProvider: s_exportProvider))
{
var aggregateListener = AggregateAsynchronousOperationListener.CreateEmptyListener();
_provider = new NavigateToItemProvider(workspace, _glyphServiceMock.Object, aggregateListener);
_provider = new NavigateToItemProvider(
workspace, _glyphServiceMock.Object, aggregateListener,
workspace.ExportProvider.GetExportedValues<Lazy<INavigateToOptionsService, VisualStudioVersionMetadata>>());
_aggregator = new NavigateToTestAggregator(_provider);
var items = _aggregator.GetItems("VisibleMethod");
......
{
"dependencies": {
"Microsoft.VisualStudio.Language.Intellisense": {
"version": "14.3.25407",
"suppressParent": "all"
"dependencies": {
"Microsoft.VisualStudio.Language.Intellisense": {
"version": "14.3.25407",
"suppressParent": "all"
},
"RoslynDependencies.Microsoft.VisualStudio.Language.CallHierarchy": {
"version": "14.3.25407",
"suppressParent": "all"
},
"RoslynDependencies.Microsoft.VisualStudio.Language.NavigateTo.Interfaces": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.Text.UI": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.Text.UI.Wpf": {
"version": "14.3.25407",
"suppressParent": "all"
},
},
},
"frameworks": {
"net46": {}
},
"runtimes": {
"win7": { }
}
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
}
{
"dependencies": { },
"frameworks": {
"net46": {}
},
"runtimes": {
"win7": { }
}
"dependencies": { },
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
}
......@@ -281,6 +281,7 @@
<Compile Include="Implementation\Intellisense\Completion\Presentation\VisualStudio14CompletionSetFactory.cs" />
<Compile Include="Implementation\Interactive\IAbstractResetInteractiveCommand.cs" />
<Compile Include="Implementation\LineSeparators\LineSeparatorAdornmentManagerProvider.cs" />
<Compile Include="Implementation\NavigateTo\INavigateToOptionsService.cs" />
<Compile Include="Implementation\NavigateTo\NavigateToSearchResultProvider.cs" />
<Compile Include="Implementation\NavigateTo\INavigateToSearchResultProvider.cs" />
<Compile Include="Implementation\Structure\InvalidOutliningRegionException.cs" />
......
......@@ -24,10 +24,11 @@ internal enum VisualStudioVersion
internal sealed class ExportVersionSpecificAttribute : ExportAttribute
{
public VisualStudioVersion Version { get; }
public ExportVersionSpecificAttribute(Type contractType, VisualStudioVersion version)
: base(contractType)
{
this.Version = version;
}
}
}
}
\ No newline at end of file
// 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.Threading;
using System.Threading.Tasks;
using Roslyn.Utilities;
namespace Microsoft.CodeAnalysis.Editor.Implementation.NavigateTo
{
......@@ -17,42 +17,49 @@ protected AbstractNavigateToSearchService(IEnumerable<INavigateToSearchResultPro
_resultProviders = resultProviders.ToImmutableArray();
}
public async Task<IEnumerable<INavigateToSearchResult>> SearchProjectAsync(Project project, string searchPattern, CancellationToken cancellationToken)
private async Task<ImmutableArray<INavigateToSearchResult>> SearchAsync(
Func<INavigateToSearchResultProvider, Task<ImmutableArray<INavigateToSearchResult>>> searchAsync,
CancellationToken cancellationToken)
{
if (_resultProviders.Length == 0)
var tasks = new Task<ImmutableArray<INavigateToSearchResult>>[_resultProviders.Length];
for (int i = 0; i < _resultProviders.Length; i++)
{
return SpecializedCollections.EmptyEnumerable<INavigateToSearchResult>();
}
else if (_resultProviders.Length == 1)
{
return await _resultProviders[0].SearchProjectAsync(project, searchPattern, cancellationToken).ConfigureAwait(false);
}
else
{
var tasks = new Task<IEnumerable<INavigateToSearchResult>>[_resultProviders.Length];
for (int i = 0; i < _resultProviders.Length; i++)
{
cancellationToken.ThrowIfCancellationRequested();
cancellationToken.ThrowIfCancellationRequested();
var resultProvider = _resultProviders[i];
tasks[i] = Task.Run(() => resultProvider.SearchProjectAsync(project, searchPattern, cancellationToken), cancellationToken);
}
var resultProvider = _resultProviders[i];
tasks[i] = searchAsync(resultProvider);
}
await Task.WhenAll(tasks).ConfigureAwait(false);
await Task.WhenAll(tasks).ConfigureAwait(false);
cancellationToken.ThrowIfCancellationRequested();
cancellationToken.ThrowIfCancellationRequested();
var results = ArrayBuilder<INavigateToSearchResult>.GetInstance();
foreach (var task in tasks)
var results = ArrayBuilder<INavigateToSearchResult>.GetInstance();
foreach (var task in tasks)
{
if (task.Status == TaskStatus.RanToCompletion)
{
if (task.Status == TaskStatus.RanToCompletion)
{
results.AddRange(task.Result);
}
results.AddRange(task.Result);
}
return results.ToImmutableAndFree();
}
return results.ToImmutableAndFree();
}
public Task<ImmutableArray<INavigateToSearchResult>> SearchProjectAsync(
Project project, string searchPattern, CancellationToken cancellationToken)
{
return SearchAsync(
provider => provider.SearchProjectAsync(project, searchPattern, cancellationToken),
cancellationToken);
}
public Task<ImmutableArray<INavigateToSearchResult>> SearchDocumentAsync(
Document document, string searchPattern, CancellationToken cancellationToken)
{
return SearchAsync(
provider => provider.SearchDocumentAsync(document, searchPattern, cancellationToken),
cancellationToken);
}
}
}
}
\ No newline at end of file
// 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.Language.NavigateTo.Interfaces;
namespace Microsoft.CodeAnalysis.Editor.Implementation.NavigateTo
{
internal interface INavigateToOptionsService
{
bool GetSearchCurrentDocument(INavigateToOptions options);
}
[ExportVersionSpecific(typeof(INavigateToOptionsService), VisualStudioVersion.Dev14)]
internal class Dev14NavigateToOptionsService : INavigateToOptionsService
{
public bool GetSearchCurrentDocument(INavigateToOptions options)
{
return false;
}
}
}
\ No newline at end of file
// 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.Collections.Generic;
using System.Collections.Immutable;
using System.Threading;
using System.Threading.Tasks;
......@@ -11,6 +11,7 @@ internal interface INavigateToSearchResultProvider
/// <summary>
/// Compute navigate to search results for the given search pattern in the given project.
/// </summary>
Task<IEnumerable<INavigateToSearchResult>> SearchProjectAsync(Project project, string searchPattern, CancellationToken cancellationToken);
Task<ImmutableArray<INavigateToSearchResult>> SearchProjectAsync(Project project, string searchPattern, CancellationToken cancellationToken);
Task<ImmutableArray<INavigateToSearchResult>> SearchDocumentAsync(Document document, string searchPattern, CancellationToken cancellationToken);
}
}
}
\ No newline at end of file
// 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.Collections.Generic;
using System.Collections.Immutable;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.CodeAnalysis.Host;
......@@ -9,7 +10,7 @@ namespace Microsoft.CodeAnalysis.Editor.Implementation.NavigateTo
{
internal interface INavigateToSearchService : ILanguageService
{
// TODO(cyrusn): Should this be an IAsyncEnumerable instead?
Task<IEnumerable<INavigateToSearchResult>> SearchProjectAsync(Project project, string searchPattern, CancellationToken cancellationToken);
Task<ImmutableArray<INavigateToSearchResult>> SearchProjectAsync(Project project, string searchPattern, CancellationToken cancellationToken);
Task<ImmutableArray<INavigateToSearchResult>> SearchDocumentAsync(Document document, string searchPattern, CancellationToken cancellationToken);
}
}
......@@ -20,6 +20,8 @@ private class Searcher
private readonly ItemDisplayFactory _displayFactory;
private readonly INavigateToCallback _callback;
private readonly string _searchPattern;
private readonly bool _searchCurrentDocument;
private readonly Document _currentDocument;
private readonly ProgressTracker _progress;
private readonly IAsynchronousOperationListener _asyncListener;
private readonly CancellationToken _cancellationToken;
......@@ -30,15 +32,24 @@ private class Searcher
ItemDisplayFactory displayFactory,
INavigateToCallback callback,
string searchPattern,
bool searchCurrentDocument,
CancellationToken cancellationToken)
{
_solution = solution;
_displayFactory = displayFactory;
_callback = callback;
_searchPattern = searchPattern;
_searchCurrentDocument = searchCurrentDocument;
_cancellationToken = cancellationToken;
_progress = new ProgressTracker(callback.ReportProgress);
_asyncListener = asyncListener;
if (_searchCurrentDocument)
{
var documentService = _solution.Workspace.Services.GetService<IDocumentTrackingService>();
var activeId = documentService.GetActiveDocument();
_currentDocument = activeId != null ? _solution.GetDocument(activeId) : null;
}
}
internal void Search()
......@@ -73,6 +84,23 @@ private void Search(IDisposable navigateToSearch, IAsyncToken asyncToken)
private async Task SearchAsync(Project project)
{
try
{
await SearchAsyncWorker(project).ConfigureAwait(false);
}
finally
{
_progress.ItemCompleted();
}
}
private async Task SearchAsyncWorker(Project project)
{
if (_searchCurrentDocument && _currentDocument?.Project != project)
{
return;
}
var cacheService = project.Solution.Services.CacheService;
if (cacheService != null)
{
......@@ -81,7 +109,11 @@ private async Task SearchAsync(Project project)
var service = project.LanguageServices.GetService<INavigateToSearchService>();
if (service != null)
{
var results = await service.SearchProjectAsync(project, _searchPattern, _cancellationToken).ConfigureAwait(false);
var searchTask = _currentDocument != null
? service.SearchDocumentAsync(_currentDocument, _searchPattern, _cancellationToken)
: service.SearchProjectAsync(project, _searchPattern, _cancellationToken);
var results = await searchTask.ConfigureAwait(false);
if (results != null)
{
foreach (var result in results)
......@@ -92,8 +124,6 @@ private async Task SearchAsync(Project project)
}
}
}
_progress.ItemCompleted();
}
private void ReportMatchResult(Project project, INavigateToSearchResult result)
......
// 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.Threading;
using Microsoft.CodeAnalysis.Editor.Extensibility.Composition;
using Microsoft.CodeAnalysis.Shared.TestHooks;
using Microsoft.VisualStudio.Language.Intellisense;
using Microsoft.VisualStudio.Language.NavigateTo.Interfaces;
......@@ -12,6 +16,7 @@ internal partial class NavigateToItemProvider : INavigateToItemProvider
{
private readonly Workspace _workspace;
private readonly IAsynchronousOperationListener _asyncListener;
private readonly ImmutableArray<Lazy<INavigateToOptionsService, VisualStudioVersionMetadata>> _optionsServices;
private readonly ItemDisplayFactory _displayFactory;
private CancellationTokenSource _cancellationTokenSource = new CancellationTokenSource();
......@@ -19,7 +24,8 @@ internal partial class NavigateToItemProvider : INavigateToItemProvider
public NavigateToItemProvider(
Workspace workspace,
IGlyphService glyphService,
IAsynchronousOperationListener asyncListener)
IAsynchronousOperationListener asyncListener,
IEnumerable<Lazy<INavigateToOptionsService, VisualStudioVersionMetadata>> optionsServices)
{
Contract.ThrowIfNull(workspace);
Contract.ThrowIfNull(glyphService);
......@@ -27,6 +33,7 @@ internal partial class NavigateToItemProvider : INavigateToItemProvider
_workspace = workspace;
_asyncListener = asyncListener;
_optionsServices = optionsServices.ToImmutableArray();
_displayFactory = new ItemDisplayFactory(new NavigateToIconFactory(glyphService));
}
......@@ -52,12 +59,17 @@ public void StartSearch(INavigateToCallback callback, string searchValue)
return;
}
var optionsService = _optionsServices.Length > 0
? VersionSelector.SelectHighest(_optionsServices)
: null;
var searchCurrentDocument = optionsService?.GetSearchCurrentDocument(callback.Options) ?? false;
var searcher = new Searcher(
_workspace.CurrentSolution,
_asyncListener,
_displayFactory,
callback,
searchValue,
searchCurrentDocument,
_cancellationTokenSource.Token);
searcher.Search();
......
......@@ -3,22 +3,24 @@
using System;
using System.Collections.Generic;
using System.Composition;
using Microsoft.CodeAnalysis.Editor.Extensibility.Composition;
using Microsoft.CodeAnalysis.Shared.TestHooks;
using Microsoft.VisualStudio.Language.Intellisense;
using Microsoft.VisualStudio.Language.NavigateTo.Interfaces;
namespace Microsoft.CodeAnalysis.Editor.Implementation.NavigateTo
{
[Export(typeof(INavigateToItemProviderFactory))]
[Shared]
[Export(typeof(INavigateToItemProviderFactory)), Shared]
internal class NavigateToItemProviderFactory : INavigateToItemProviderFactory
{
private readonly IGlyphService _glyphService;
private readonly IAsynchronousOperationListener _asyncListener;
private readonly IEnumerable<Lazy<INavigateToOptionsService, VisualStudioVersionMetadata>> _optionsServices;
[ImportingConstructor]
public NavigateToItemProviderFactory(
IGlyphService glyphService,
[ImportMany] IEnumerable<Lazy<INavigateToOptionsService, VisualStudioVersionMetadata>> optionsServices,
[ImportMany] IEnumerable<Lazy<IAsynchronousOperationListener, FeatureMetadata>> asyncListeners)
{
if (glyphService == null)
......@@ -32,6 +34,7 @@ internal class NavigateToItemProviderFactory : INavigateToItemProviderFactory
}
_glyphService = glyphService;
_optionsServices = optionsServices;
_asyncListener = new AggregateAsynchronousOperationListener(asyncListeners, FeatureAttribute.NavigateTo);
}
......@@ -46,7 +49,7 @@ public bool TryCreateNavigateToItemProvider(IServiceProvider serviceProvider, ou
return false;
}
provider = new NavigateToItemProvider(workspace, _glyphService, _asyncListener);
provider = new NavigateToItemProvider(workspace, _glyphService, _asyncListener, _optionsServices);
return true;
}
}
......
// 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.Collections.Generic;
using System.Collections.Immutable;
using System.Composition;
using System.Linq;
using System.Threading;
......@@ -17,21 +18,43 @@ namespace Microsoft.CodeAnalysis.Editor.Implementation.NavigateTo
[Export(typeof(INavigateToSearchResultProvider)), Shared]
internal sealed partial class NavigateToSearchResultProvider : INavigateToSearchResultProvider
{
public async Task<IEnumerable<INavigateToSearchResult>> SearchProjectAsync(Project project, string searchPattern, CancellationToken cancellationToken)
public async Task<ImmutableArray<INavigateToSearchResult>> SearchProjectAsync(
Project project, string searchPattern, CancellationToken cancellationToken)
{
var results = await FindNavigableDeclaredSymbolInfos(
project, searchDocument: null, pattern: searchPattern, cancellationToken: cancellationToken).ConfigureAwait(false);
return ProcessResult(searchPattern, results);
}
public async Task<ImmutableArray<INavigateToSearchResult>> SearchDocumentAsync(
Document document, string searchPattern, CancellationToken cancellationToken)
{
var results = await FindNavigableDeclaredSymbolInfos(
document.Project, document, searchPattern, cancellationToken).ConfigureAwait(false);
return ProcessResult(searchPattern, results);
}
private ImmutableArray<INavigateToSearchResult> ProcessResult(
string searchPattern,
ImmutableArray<ValueTuple<DeclaredSymbolInfo, Document, IEnumerable<PatternMatch>>> results)
{
var results = await FindNavigableDeclaredSymbolInfos(project, searchPattern, cancellationToken).ConfigureAwait(false);
var containsDots = searchPattern.IndexOf('.') >= 0;
return results.Select(r => ConvertResult(containsDots, r));
return results.SelectAsArray(r => ConvertResult(containsDots, r));
}
private static async Task<IEnumerable<ValueTuple<DeclaredSymbolInfo, Document, IEnumerable<PatternMatch>>>> FindNavigableDeclaredSymbolInfos(
Project project, string pattern, CancellationToken cancellationToken)
private static async Task<ImmutableArray<ValueTuple<DeclaredSymbolInfo, Document, IEnumerable<PatternMatch>>>> FindNavigableDeclaredSymbolInfos(
Project project, Document searchDocument, string pattern, CancellationToken cancellationToken)
{
using (var patternMatcher = new PatternMatcher(pattern, allowFuzzyMatching: true))
{
var result = new List<ValueTuple<DeclaredSymbolInfo, Document, IEnumerable<PatternMatch>>>();
var result = ImmutableArray.CreateBuilder<ValueTuple<DeclaredSymbolInfo, Document, IEnumerable<PatternMatch>>>();
foreach (var document in project.Documents)
{
if (searchDocument != null && document != searchDocument)
{
continue;
}
cancellationToken.ThrowIfCancellationRequested();
var declarationInfo = await document.GetDeclarationInfoAsync(cancellationToken).ConfigureAwait(false);
......@@ -50,7 +73,7 @@ public async Task<IEnumerable<INavigateToSearchResult>> SearchProjectAsync(Proje
}
}
return result;
return result.ToImmutable();
}
}
......@@ -66,7 +89,6 @@ private static string GetSearchName(DeclaredSymbolInfo declaredSymbolInfo)
}
}
private INavigateToSearchResult ConvertResult(
bool containsDots, ValueTuple<DeclaredSymbolInfo, Document, IEnumerable<PatternMatch>> result)
{
......@@ -178,4 +200,4 @@ private static MatchKind GetNavigateToMatchKind(bool containsDots, IEnumerable<P
return MatchKind.Regular;
}
}
}
}
\ No newline at end of file
{
"dependencies": {
"System.Collections.Immutable": "1.2.0",
"RoslynDependencies.Microsoft.VisualStudio.Language.CallHierarchy": "14.3.25407",
"RoslynDependencies.Microsoft.VisualStudio.Language.NavigateTo.Interfaces": "14.3.25407",
"Microsoft.VisualStudio.Language.Intellisense": {
"version": "14.3.25407",
"suppressParent": "all"
"dependencies": {
"System.Collections.Immutable": "1.2.0",
"RoslynDependencies.Microsoft.VisualStudio.Language.CallHierarchy": {
"version": "14.3.25407",
"suppressParent": "all"
},
"RoslynDependencies.Microsoft.VisualStudio.Language.NavigateTo.Interfaces": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.Language.Intellisense": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.Imaging": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.ImageCatalog": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.Text.UI.Wpf": {
"version": "14.3.25407",
"suppressParent": "all"
},
},
"frameworks": {
"net46": { }
}
},
"frameworks": {
"net46": {}
}
}
......@@ -70,8 +70,7 @@
<Compile Include="IntelliSense\Completion\Presentation\Roslyn15CompletionSet.cs" />
<Compile Include="IntelliSense\Completion\Presentation\VisualStudio15CompletionSetFactory.cs" />
<Compile Include="IntelliSense\Completion\Presentation\VisualStudio15CompletionSet.cs" />
<Compile Include="Structure\BlockTag2.cs" />
<Compile Include="Structure\IBlockTag2.cs" />
<Compile Include="NavigateTo\Dev15NavigateToOptionsService.cs" />
<Compile Include="Structure\VisualStudio15StructureTaggerProvider.cs" />
</ItemGroup>
<ItemGroup />
......
// 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.CodeAnalysis.Editor.Implementation.NavigateTo;
using Microsoft.VisualStudio.Language.NavigateTo.Interfaces;
namespace Microsoft.CodeAnalysis.Editor.NavigateTo
{
[ExportVersionSpecific(typeof(INavigateToOptionsService), VisualStudioVersion.Dev15)]
internal class Dev15NavigateToOptionsService : INavigateToOptionsService
{
public bool GetSearchCurrentDocument(INavigateToOptions options)
{
var options2 = options as INavigateToOptions2;
return options2?.SearchCurrentDocument ?? false;
}
}
}
\ No newline at end of file
using System;
namespace Microsoft.VisualStudio.Text.Tagging
{
/// <summary>
/// An implementation of <see cref="IBlockTag2" />.
/// </summary>
internal abstract class BlockTag2 : IBlockTag2
{
public BlockTag2(SnapshotSpan span, SnapshotSpan statementSpan, IBlockTag2 parent, string type, bool isCollapsible, bool isDefaultCollapsed, bool isImplementation, object collapsedForm, object collapsedHintForm)
{
this.Span = span;
this.Level = (parent == null) ? 0 : (parent.Level + 1);
this.StatementSpan = statementSpan;
this.Parent = parent;
this.Type = type;
this.IsCollapsible = isCollapsible;
this.IsDefaultCollapsed = isDefaultCollapsed;
this.IsImplementation = isImplementation;
this.CollapsedForm = collapsedForm;
this.CollapsedHintForm = collapsedHintForm;
}
/// <summary>
/// Gets the span of the structural block.
/// </summary>
public SnapshotSpan Span { get; }
/// <summary>
/// Gets the level of nested-ness of the structural block.
/// </summary>
public int Level { get; }
/// <summary>
/// Gets the span of the statement that control the structral block.
/// </summary>
/// <remarks>
/// <para>
/// For example, in the following snippet of code,
/// <code>
/// if (condition1 &amp;&amp;
/// condition2) // comment
/// {
/// something;
/// }
/// </code>
/// this.StatementSpan would extend from the start of the "if" to the end of comment.
/// this.Span would extend from before the "{" to the end of the "}".
/// </para>
/// </remarks>
public SnapshotSpan StatementSpan { get; }
/// <summary>
/// Gets the hierarchical parent of the structural block.
/// </summary>
public IBlockTag2 Parent { get; }
/// <summary>
/// Determines the semantic type of the structural block.
/// </summary>
/// <remarks>
/// The type should be set to "NonStructural" if an outlining region should be created but
/// not adorned with vertical structure lines, else the type should be set to "Structural".
/// Types are defined in the class PredefinedStructureTypes.
/// </remarks>
public string Type { get; }
/// <summary>
/// Determines whether a block can be collapsed.
/// </summary>
public bool IsCollapsible { get; }
/// <summary>
/// Determines whether a block is collapsed by default.
/// </summary>
public bool IsDefaultCollapsed { get; }
/// <summary>
/// Determines whether a block is an block region.
/// </summary>
/// <remarks>
/// Implementation blocks are the blocks of code following a method definition.
/// They are used for commands such as the Visual Studio Collapse to Definition command,
/// which hides the implementation block and leaves only the method definition exposed.
/// </remarks>
public bool IsImplementation { get; }
/// <summary>
/// Gets the data object for the collapsed UI. If the default is set, returns null.
/// </summary>
public object CollapsedForm { get; }
/// <summary>
/// Gets the data object for the collapsed UI tooltip. If the default is set, returns null.
/// </summary>
public object CollapsedHintForm { get; }
}
}
\ No newline at end of file
// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
namespace Microsoft.VisualStudio.Text.Tagging
{
using Microsoft.VisualStudio.Text.Adornments;
/// <summary>
/// Represents a structural code block, which is used for vertical structural line adornments.
/// </summary>
internal interface IBlockTag2 : ITag
{
/// <summary>
/// Gets the span of the structural block.
/// </summary>
SnapshotSpan Span { get; }
/// <summary>
/// Gets the level of nested-ness of the structural block.
/// </summary>
int Level { get; }
/// <summary>
/// Gets the span of the statement that control the structral block.
/// </summary>
/// <remarks>
/// <para>
/// For example, in the following snippet of code,
/// <code>
/// if (condition1 &amp;&amp;
/// condition2) // comment
/// {
/// something;
/// }
/// </code>
/// this.StatementSpan would extend from the start of the "if" to the end of comment.
/// this.Span would extend from before the "{" to the end of the "}".
/// </para>
/// </remarks>
SnapshotSpan StatementSpan { get; }
/// <summary>
/// Gets the hierarchical parent of the structural block.
/// </summary>
IBlockTag2 Parent { get; }
/// <summary>
/// Determines the semantic type of the structural block.
/// <remarks>
/// See <see cref="PredefinedStructureTypes2"/> for the canonical types.
/// Use <see cref="PredefinedStructureTypes2.NonStructural"/> for blocks that will not have any visible affordance
/// (but will be used for outlining).
/// </remarks>
/// </summary>
string Type { get; }
/// <summary>
/// Determines whether a block can be collapsed.
/// </summary>
bool IsCollapsible { get; }
/// <summary>
/// Determines whether a block is collapsed by default.
/// </summary>
bool IsDefaultCollapsed { get; }
/// <summary>
/// Determines whether a block is an implementation block.
/// </summary>
/// <remarks>
/// Implementation blocks are the blocks of code following a method definition.
/// They are used for commands such as the Visual Studio Collapse to Definition command,
/// which hides the implementation block and leaves only the method definition exposed.
/// </remarks>
bool IsImplementation { get; }
/// <summary>
/// Gets the data object for the collapsed UI. If the default is set, returns null.
/// </summary>
object CollapsedForm { get; }
/// <summary>
/// Gets the data object for the collapsed UI tooltip. If the default is set, returns null.
/// </summary>
object CollapsedHintForm { get; }
}
}
\ No newline at end of file
......@@ -8,6 +8,7 @@
using Microsoft.CodeAnalysis.Structure;
using Microsoft.CodeAnalysis.Text.Shared.Extensions;
using Microsoft.VisualStudio.Text;
using Microsoft.VisualStudio.Text.Adornments;
using Microsoft.VisualStudio.Text.Editor;
using Microsoft.VisualStudio.Text.Projection;
using Microsoft.VisualStudio.Text.Tagging;
......@@ -17,10 +18,10 @@ namespace Microsoft.CodeAnalysis.Editor.Structure
{
[Export(typeof(ITaggerProvider))]
[Export(typeof(VisualStudio15StructureTaggerProvider))]
[TagType(typeof(IBlockTag2))]
[TagType(typeof(IBlockTag))]
[ContentType(ContentTypeNames.RoslynContentType)]
internal partial class VisualStudio15StructureTaggerProvider :
AbstractStructureTaggerProvider<IBlockTag2>
AbstractStructureTaggerProvider<IBlockTag>
{
[ImportingConstructor]
public VisualStudio15StructureTaggerProvider(
......@@ -33,27 +34,27 @@ internal partial class VisualStudio15StructureTaggerProvider :
{
}
public override bool Equals(IBlockTag2 x, IBlockTag2 y)
public override bool Equals(IBlockTag x, IBlockTag y)
{
// This is only called if the spans for the tags were the same. In that case, we consider ourselves the same
// unless the CollapsedForm properties are different.
return EqualityComparer<object>.Default.Equals(x.CollapsedForm, y.CollapsedForm);
}
public override int GetHashCode(IBlockTag2 obj)
public override int GetHashCode(IBlockTag obj)
{
return EqualityComparer<object>.Default.GetHashCode(obj.CollapsedForm);
}
protected override IBlockTag2 CreateTag(
IBlockTag2 parentTag, ITextSnapshot snapshot, BlockSpan region)
protected override IBlockTag CreateTag(
IBlockTag parentTag, ITextSnapshot snapshot, BlockSpan region)
{
return new RoslynRegionTag(this, parentTag, snapshot, region);
}
private class RoslynRegionTag : RegionTag, IBlockTag2
private class RoslynRegionTag : RegionTag, IBlockTag
{
public IBlockTag2 Parent { get; }
public IBlockTag Parent { get; }
public int Level { get; }
public SnapshotSpan Span { get; }
public SnapshotSpan StatementSpan { get; }
......@@ -62,8 +63,8 @@ private class RoslynRegionTag : RegionTag, IBlockTag2
public bool IsCollapsible => true;
public RoslynRegionTag(
AbstractStructureTaggerProvider<IBlockTag2> provider,
IBlockTag2 parent,
AbstractStructureTaggerProvider<IBlockTag> provider,
IBlockTag parent,
ITextSnapshot snapshot,
BlockSpan outliningSpan) :
base(provider, snapshot, outliningSpan)
......
{
"dependencies": {
"System.Collections.Immutable": "1.2.0",
"Microsoft.VisualStudio.Language.Intellisense": "15.0.25604-Preview4",
"Microsoft.VisualStudio.Text.UI": "15.0.25604-Preview4",
},
"frameworks": {
"net46": {}
}
"dependencies": {
"Dev15BinariesForRoslyn": "4.0.0.0",
"System.Collections.Immutable": "1.2.0",
"Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": {
"version": "14.3.25407",
"suppressParent": "all"
},
},
"frameworks": {
"net46": { }
}
}
\ No newline at end of file
......@@ -3,6 +3,7 @@
using System;
using System.Linq;
using Microsoft.CodeAnalysis.CodeGeneration;
using Microsoft.CodeAnalysis.Editor.Implementation.NavigateTo;
using Microsoft.CodeAnalysis.Formatting;
using Microsoft.CodeAnalysis.Formatting.Rules;
using Microsoft.VisualStudio.Composition;
......
{
"dependencies": {
"BasicUndo": "0.9.3",
"Microsoft.VisualStudio.Composition": "14.2.19-pre",
"RoslynDependencies.Microsoft.VisualStudio.Platform.VSEditor": "14.3.25407",
"Microsoft.VisualStudio.Language.Intellisense": {
"version": "14.3.25407",
"suppressParent": "all"
"dependencies": {
"BasicUndo": "0.9.3",
"Microsoft.VisualStudio.Composition": "14.2.19-pre",
"RoslynDependencies.Microsoft.VisualStudio.Platform.VSEditor": "14.3.25407",
"Microsoft.VisualStudio.Language.Intellisense": {
"version": "14.3.25407",
"suppressParent": "all"
},
"RoslynDependencies.Microsoft.VisualStudio.Language.CallHierarchy": {
"version": "14.3.25407",
"suppressParent": "all"
},
"RoslynDependencies.Microsoft.VisualStudio.Language.NavigateTo.Interfaces": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.Text.UI": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.Text.UI.Wpf": {
"version": "14.3.25407",
"suppressParent": "all"
},
},
},
"frameworks": {
"net46": {}
},
"runtimes": {
"win7": { }
}
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
}
{
"dependencies": {
"Microsoft.VisualStudio.Language.Intellisense": {
"version": "14.3.25407",
"suppressParent": "all"
},
},
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
"dependencies": {
"Microsoft.VisualStudio.Language.Intellisense": {
"version": "14.3.25407",
"suppressParent": "all"
},
"RoslynDependencies.Microsoft.VisualStudio.Language.CallHierarchy": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.Imaging": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.Text.UI": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.Text.UI.Wpf": {
"version": "14.3.25407",
"suppressParent": "all"
},
},
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
}
{
"dependencies": {
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239"
},
"frameworks": {
"net46": {}
}
"dependencies": {
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239"
},
"frameworks": {
"net46": { }
}
}
\ No newline at end of file
{
"dependencies": {
"Microsoft.VisualStudio.Text.Data": {
"version": "14.3.25407",
"suppressParent": "all"
"dependencies": {
"Microsoft.VisualStudio.Text.Data": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.Text.Logic": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.Text.UI": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.Text.UI.Wpf": {
"version": "14.3.25407",
"suppressParent": "all"
},
"RoslynDependencies.Microsoft.VisualStudio.Text.Internal": {
"version": "14.3.25407",
"suppressParent": "all"
}
},
"Microsoft.VisualStudio.Text.Logic": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.Text.UI": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.Text.UI.Wpf": {
"version": "14.3.25407",
"suppressParent": "all"
},
"RoslynDependencies.Microsoft.VisualStudio.Text.Internal": {
"version": "14.3.25407",
"suppressParent": "all"
"frameworks": {
"net46": { }
}
},
"frameworks": {
"net46": { }
}
}
\ No newline at end of file
{
"dependencies": {
"Microsoft.VisualStudio.Language.Intellisense": {
"version": "14.3.25407",
"suppressParent": "all"
"dependencies": {
"Microsoft.VisualStudio.Language.Intellisense": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.Text.UI": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.Text.UI.Wpf": {
"version": "14.3.25407",
"suppressParent": "all"
},
},
},
"frameworks": {
"net46": { }
}
"frameworks": {
"net46": { }
}
}
......@@ -3,9 +3,12 @@
Imports System.Windows.Media
Imports System.Windows.Media.Imaging
Imports System.Xml.Linq
Imports Microsoft.CodeAnalysis.Editor.Extensibility.Composition
Imports Microsoft.CodeAnalysis.Editor.Implementation.NavigateTo
Imports Microsoft.CodeAnalysis.Editor.UnitTests
Imports Microsoft.CodeAnalysis.Editor.UnitTests.Workspaces
Imports Microsoft.CodeAnalysis.Shared.TestHooks
Imports Microsoft.VisualStudio.Composition
Imports Microsoft.VisualStudio.Language.Intellisense
Imports Microsoft.VisualStudio.Language.NavigateTo.Interfaces
Imports Moq
......@@ -17,20 +20,27 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.NavigateTo
Private _provider As NavigateToItemProvider
Private _aggregator As NavigateToTestAggregator
Private Shared s_exportProvider As ExportProvider =
MinimalTestExportProvider.CreateExportProvider(
TestExportProvider.CreateAssemblyCatalogWithCSharpAndVisualBasic().WithPart(
GetType(Dev14NavigateToOptionsService)))
Private Async Function SetupWorkspaceAsync(content As String) As Task(Of TestWorkspace)
Dim workspace = Await TestWorkspace.CreateVisualBasicAsync(content)
Dim workspace = Await TestWorkspace.CreateVisualBasicAsync(content, exportProvider:=s_exportProvider)
SetupNavigateTo(workspace)
Return workspace
End Function
Private Sub SetupNavigateTo(workspace As TestWorkspace)
Dim aggregateListener = New AggregateAsynchronousOperationListener(Array.Empty(Of Lazy(Of IAsynchronousOperationListener, FeatureMetadata))(), FeatureAttribute.NavigateTo)
_provider = New NavigateToItemProvider(workspace, _glyphServiceMock.Object, aggregateListener)
_provider = New NavigateToItemProvider(
workspace, _glyphServiceMock.Object, aggregateListener,
workspace.ExportProvider.GetExportedValues(Of Lazy(Of INavigateToOptionsService, VisualStudioVersionMetadata))())
_aggregator = New NavigateToTestAggregator(_provider)
End Sub
Private Async Function SetupWorkspaceAsync(workspaceElement As XElement) As Task(Of TestWorkspace)
Dim workspace = Await TestWorkspace.CreateAsync(workspaceElement)
Dim workspace = Await TestWorkspace.CreateAsync(workspaceElement, exportProvider:=s_exportProvider)
SetupNavigateTo(workspace)
Return workspace
End Function
......
{
"dependencies": {
"Microsoft.VisualStudio.Language.Intellisense": {
"version": "14.3.25407",
"suppressParent": "all"
"dependencies": {
"Microsoft.VisualStudio.Language.Intellisense": {
"version": "14.3.25407",
"suppressParent": "all"
},
"RoslynDependencies.Microsoft.VisualStudio.Language.NavigateTo.Interfaces": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.Text.UI": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.Text.UI.Wpf": {
"version": "14.3.25407",
"suppressParent": "all"
},
},
},
"frameworks": {
"net46": {}
},
"runtimes": {
"win7": { }
}
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
}
{
"dependencies": {
"Microsoft.VisualStudio.Debugger.Engine": "14.3.25422"
},
"frameworks": {
".NETPortable,Version=v4.5,Profile=Profile7": { }
}
"dependencies": {
"Microsoft.VisualStudio.Debugger.Engine": "14.3.25422"
},
"frameworks": {
".NETPortable,Version=v4.5,Profile=Profile7": { }
}
}
\ No newline at end of file
{
"dependencies": {
"Microsoft.NetFX20": "1.0.3"
},
"frameworks": {
"net20": { }
}
"dependencies": {
"Microsoft.NetFX20": "1.0.3"
},
"frameworks": {
"net20": { }
}
}
\ No newline at end of file
{
"dependencies": {
"Microsoft.VisualStudio.Debugger.Engine": "14.3.25422",
"Microsoft.VisualStudio.Debugger.Metadata": "14.3.25421"
},
"frameworks": {
".NETPortable,Version=v4.5,Profile=Profile7": { }
}
{
"dependencies": {
"Microsoft.VisualStudio.Debugger.Engine": "14.3.25422",
"Microsoft.VisualStudio.Debugger.Metadata": "14.3.25421"
},
"frameworks": {
".NETPortable,Version=v4.5,Profile=Profile7": { }
}
}
{
"dependencies": {
"Microsoft.VisualStudio.Debugger.Engine": "14.3.25422",
"Microsoft.DiaSymReader": "1.1.0-beta1-60625-03",
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239"
},
"frameworks": {
"net46": {}
},
"runtimes": {
"win7": {}
}
"dependencies": {
"Microsoft.VisualStudio.Debugger.Engine": "14.3.25422",
"Microsoft.DiaSymReader": "1.1.0-beta1-60625-03",
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239"
},
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
}
\ No newline at end of file
{
"dependencies": {
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239"
},
"frameworks": {
"net46": {}
},
"runtimes": {
"win7": {}
}
"dependencies": {
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239"
},
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
}
\ No newline at end of file
{
"dependencies": {
"Microsoft.VisualStudio.Debugger.Engine": "14.3.25422",
"Microsoft.DiaSymReader": "1.1.0-beta1-60625-03"
},
"frameworks": {
".NETPortable,Version=v4.5,Profile=Profile7": { }
}
"dependencies": {
"Microsoft.VisualStudio.Debugger.Engine": "14.3.25422",
"Microsoft.DiaSymReader": "1.1.0-beta1-60625-03"
},
"frameworks": {
".NETPortable,Version=v4.5,Profile=Profile7": { }
}
}
{
"dependencies": {
"Microsoft.NetFX20": "1.0.3",
"Microsoft.VisualStudio.Debugger.Engine": "14.3.25422",
"Microsoft.VisualStudio.Debugger.Metadata": "14.3.25421"
},
"frameworks": {
"net20": { }
}
"dependencies": {
"Microsoft.NetFX20": "1.0.3",
"Microsoft.VisualStudio.Debugger.Engine": "14.3.25422",
"Microsoft.VisualStudio.Debugger.Metadata": "14.3.25421"
},
"frameworks": {
"net20": { }
}
}
\ No newline at end of file
{
"dependencies": {
"Microsoft.VisualStudio.Debugger.Engine": "14.3.25422",
"Microsoft.VisualStudio.Debugger.Metadata": "14.3.25421"
},
"frameworks": {
".NETPortable,Version=v4.5,Profile=Profile7": { }
}
{
"dependencies": {
"Microsoft.VisualStudio.Debugger.Engine": "14.3.25422",
"Microsoft.VisualStudio.Debugger.Metadata": "14.3.25421"
},
"frameworks": {
".NETPortable,Version=v4.5,Profile=Profile7": { }
}
}
{
"dependencies": {
"Microsoft.VisualStudio.Debugger.Engine": "14.3.25422",
"Microsoft.DiaSymReader": "1.1.0-beta1-60625-03",
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239"
},
"frameworks": {
"net46": {}
}
"dependencies": {
"Microsoft.VisualStudio.Debugger.Engine": "14.3.25422",
"Microsoft.DiaSymReader": "1.1.0-beta1-60625-03",
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239"
},
"frameworks": {
"net46": { }
}
}
\ No newline at end of file
{
"dependencies": {
"System.Collections.Immutable": "1.2.0",
"Microsoft.VisualStudio.Debugger.Metadata": "14.3.25421",
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239"
},
"frameworks": {
"net46": {}
}
"dependencies": {
"System.Collections.Immutable": "1.2.0",
"Microsoft.VisualStudio.Debugger.Metadata": "14.3.25421",
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239"
},
"frameworks": {
"net46": { }
}
}
\ No newline at end of file
{
"dependencies": {
},
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
"dependencies": {
},
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
}
{
"dependencies": {
"Microsoft.VisualStudio.Debugger.Engine": "14.3.25422"
},
"frameworks": {
".NETPortable,Version=v4.5,Profile=Profile7": { }
}
"dependencies": {
"Microsoft.VisualStudio.Debugger.Engine": "14.3.25422"
},
"frameworks": {
".NETPortable,Version=v4.5,Profile=Profile7": { }
}
}
\ No newline at end of file
{
"dependencies": {
"Microsoft.NetFX20": "1.0.3"
},
"frameworks": {
"net20": { }
}
"dependencies": {
"Microsoft.NetFX20": "1.0.3"
},
"frameworks": {
"net20": { }
}
}
\ No newline at end of file
{
"dependencies": {
"Microsoft.VisualStudio.Debugger.Engine": "14.3.25422",
"Microsoft.VisualStudio.Debugger.Metadata": "14.3.25421"
},
"frameworks": {
".NETPortable,Version=v4.5,Profile=Profile7": { }
}
{
"dependencies": {
"Microsoft.VisualStudio.Debugger.Engine": "14.3.25422",
"Microsoft.VisualStudio.Debugger.Metadata": "14.3.25421"
},
"frameworks": {
".NETPortable,Version=v4.5,Profile=Profile7": { }
}
}
{
"dependencies": {
"Microsoft.VisualStudio.Debugger.Engine": "14.3.25422",
"Microsoft.DiaSymReader": "1.1.0-beta1-60625-03",
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239"
},
"frameworks": {
"net46": {}
},
"runtimes": {
"win7": {}
}
"dependencies": {
"Microsoft.VisualStudio.Debugger.Engine": "14.3.25422",
"Microsoft.DiaSymReader": "1.1.0-beta1-60625-03",
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239"
},
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
}
\ No newline at end of file
{
"dependencies": {
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239"
},
"frameworks": {
"net46": {}
},
"runtimes": {
"win7": {}
}
"dependencies": {
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239"
},
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
}
\ No newline at end of file
......@@ -91,6 +91,7 @@
</Compile>
<Compile Include="AddMissingReference\AbstractAddMissingReferenceCodeFixProvider.cs" />
<Compile Include="AddMissingReference\CodeAction.cs" />
<Compile Include="Structure\BlockTypes.cs" />
<Compile Include="Structure\Syntax\BlockStructureExtensions.cs" />
<Compile Include="Structure\Syntax\AbstractBlockStructureProvider.cs" />
<Compile Include="Structure\BlockSpan.cs" />
......@@ -267,7 +268,6 @@
<Compile Include="Shared\Utilities\PatternMatcher.Segment.cs" />
<Compile Include="Shared\Utilities\PatternMatcher.TextChunk.cs" />
<Compile Include="SolutionCrawler\GlobalOperationAwareIdleProcessor.cs" />
<Compile Include="Structure\PredefinedStructureTypes2.cs" />
<Compile Include="Structure\Syntax\AbstractSyntaxNodeStructureProvider.cs" />
<Compile Include="Structure\Syntax\AbstractSyntaxStructureProvider.cs" />
<Compile Include="Structure\Syntax\AbstractSyntaxTriviaStructureProvider.cs" />
......@@ -671,4 +671,4 @@
<ItemGroup />
<Import Project="..\..\..\Compilers\Core\AnalyzerDriver\AnalyzerDriver.projitems" Label="Shared" />
<Import Project="..\..\..\..\build\Targets\VSL.Imports.targets" />
</Project>
</Project>
\ No newline at end of file
// 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.CodeAnalysis.Text;
using Microsoft.VisualStudio.Text.Adornments;
namespace Microsoft.CodeAnalysis.Structure
{
......@@ -56,7 +55,7 @@ internal class BlockSpan
IsCollapsible = isCollapsible;
AutoCollapse = autoCollapse;
IsDefaultCollapsed = isDefaultCollapsed;
Type = type ?? PredefinedStructureTypes2.NonStructural;
Type = type ?? BlockTypes.Nonstructural;
}
public override string ToString()
......
// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
namespace Microsoft.VisualStudio.Text.Adornments
namespace Microsoft.CodeAnalysis.Structure
{
/// <summary>
/// Enumerates the predefined structural block types.
/// </summary>
internal static class PredefinedStructureTypes2
internal static class BlockTypes
{
/// <summary>
/// Represents structural blocks, with vertical line adornments displayed.
/// </summary>
public const string Structural = "Structural";
/// <summary>
/// Represents non-structural blocks, with no vertical line adornments
/// displayed, only expand and collapse.
/// </summary>
public const string NonStructural = "Nonstructural";
public const string PropertyBlock = "PropertyBlock";
public const string AccessorBlock = "AccessorBlock";
public const string AnonymousMethodBlock = "AnonymousMethodBlock"; // i.e. lambda bodies
public const string AnonymousMethodBlock = "AnonymousMethodBlock";
public const string Case = "Case";
public const string Class = "Class";
public const string Conditional = "Conditional";
public const string Constructor = "Constructor";
public const string Destructor = "Destructor";
public const string Operator = "Operator";
public const string Interface = "Interface";
public const string Lock = "Context";
public const string Loop = "Loop";
public const string Method = "Method";
public const string Namespace = "Namespace";
public const string Class = "Class";
public const string Interface = "Interface";
public const string Nonstructural = "Nonstructural";
public const string Operator = "Operator";
public const string PropertyBlock = "PropertyBlock";
public const string Standalone = "Standalone";
public const string Struct = "Struct";
public const string Structural = "Structural";
public const string TryCatchFinally = "TryCatchFinally";
public const string Conditional = "Conditional"; // i.e. If statements, ‘switch’ statements.i.e conditionals+branches
public const string Case = "Case";
public const string Loop = "Loop"; // i.e. While/For/Foreach/Do/Until (i.e.loops)
public const string Standalone = "Standalone"; // i.e. stand-alone {} used for scoping.
public const string Lock = "Context"; // i.e. using/lock/checked/unchecked. Need a better name for this.
public const string Unknown = "Unknown";
}
}
\ No newline at end of file
{
"dependencies": {
"System.Reflection": "4.1.0"
},
"frameworks": {
".NETPortable,Version=v4.5,Profile=Profile7": {}
}
"dependencies": {
"System.Reflection": "4.1.0"
},
"frameworks": {
".NETPortable,Version=v4.5,Profile=Profile7": { }
}
}
{
"dependencies": {
},
"frameworks": {
".NETPortable,Version=v4.5,Profile=Profile7": {}
}
"dependencies": {
},
"frameworks": {
".NETPortable,Version=v4.5,Profile=Profile7": { }
}
}
{
"dependencies": { },
"frameworks": {
// We don't actually target netstandard1.6; this is to work around https://github.com/dotnet/roslyn/issues/12458
"netstandard1.6": {
"imports": "portable-net452"
"dependencies": { },
"frameworks": {
// We don't actually target netstandard1.6; this is to work around https://github.com/dotnet/roslyn/issues/12458
"netstandard1.6": {
"imports": "portable-net452"
},
"NETCoreApp1.0": {
"imports": "portable-net452"
}
},
"NETCoreApp1.0": {
"imports": "portable-net452"
"runtimes": {
"win7-x64": { },
"ubuntu.14.04-x64": { },
"osx.10.10-x64": { }
}
},
"runtimes": {
"win7-x64": {},
"ubuntu.14.04-x64": {},
"osx.10.10-x64": {}
}
}
{
"dependencies": { },
"frameworks": {
"net46": { }
}
"dependencies": {
"Microsoft.VisualStudio.Text.UI.Wpf": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.Text.UI": {
"version": "14.3.25407",
"suppressParent": "all"
},
},
"frameworks": {
"net46": { }
}
}
\ No newline at end of file
{
"dependencies": {
"Microsoft.VisualStudio.Language.Intellisense": {
"version": "14.3.25407",
"suppressParent": "all"
"dependencies": {
"Microsoft.VisualStudio.Language.Intellisense": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.Editor": {
"version": "14.3.25407",
"suppressParent": "all"
}
},
"frameworks": {
"net46": { }
},
"Microsoft.VisualStudio.Editor": {
"version": "14.3.25407",
"suppressParent": "all"
}
},
"frameworks": {
"net46": { }
},
}
\ No newline at end of file
{
"dependencies": { },
"frameworks": {
"net46": { }
},
"dependencies": {
"Microsoft.VisualStudio.Text.UI": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.Text.UI.Wpf": {
"version": "14.3.25407",
"suppressParent": "all"
},
},
"frameworks": {
"net46": { }
},
}
\ No newline at end of file
{
"dependencies": {
},
"frameworks": {
"net46": {}
}
"dependencies": {
},
"frameworks": {
"net46": { }
}
}
\ No newline at end of file
{
"dependencies": { },
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
"dependencies": { },
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
}
{
"dependencies": { },
"frameworks": {
"net46": {}
},
"runtimes": {
"win7-x86": { },
"win7-x64": { }
}
"dependencies": { },
"frameworks": {
"net46": { }
},
"runtimes": {
"win7-x86": { },
"win7-x64": { }
}
}
{
"dependencies": { },
"frameworks": {
// We don't actually target netstandard1.6; this is to work around https://github.com/dotnet/roslyn/issues/12458
"netstandard1.6": {
"imports": "portable-net452"
"dependencies": { },
"frameworks": {
// We don't actually target netstandard1.6; this is to work around https://github.com/dotnet/roslyn/issues/12458
"netstandard1.6": {
"imports": "portable-net452"
},
"NETCoreApp1.0": {
"imports": "portable-net452"
}
},
"NETCoreApp1.0": {
"imports": "portable-net452"
"runtimes": {
"win7-x64": { },
"ubuntu.14.04-x64": { },
"osx.10.10-x64": { }
}
},
"runtimes": {
"win7-x64": {},
"ubuntu.14.04-x64": {},
"osx.10.10-x64": {}
}
}
{
"dependencies": { },
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
"dependencies": { },
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
}
{
"dependencies": { },
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
"dependencies": { },
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
}
{
"dependencies": {
"Microsoft.VisualStudio.Text.Data": "14.3.25407",
"Microsoft.VisualStudio.Text.Logic": "14.3.25407",
"Microsoft.VisualStudio.Text.UI": "14.3.25407",
"Microsoft.VisualStudio.Text.UI.Wpf": "14.3.25407",
"RoslynDependencies.Microsoft.VisualStudio.Text.Internal": "14.3.25407",
"Microsoft.VisualStudio.Imaging": "14.3.25407",
"Microsoft.VisualStudio.ImageCatalog": "14.3.25407",
"Microsoft.VisualStudio.Language.StandardClassification": "14.3.25407",
"Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "14.3.25407",
"Microsoft.VisualStudio.Language.Intellisense": {
"version": "14.3.25407",
"suppressParent": "all"
"dependencies": {
"Microsoft.VisualStudio.Text.Data": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.Text.Logic": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.Text.UI": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.Text.UI.Wpf": {
"version": "14.3.25407",
"suppressParent": "all"
},
"RoslynDependencies.Microsoft.VisualStudio.Text.Internal": "14.3.25407",
"Microsoft.VisualStudio.ImageCatalog": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.Language.StandardClassification": "14.3.25407",
"Microsoft.VisualStudio.Imaging": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.Language.Intellisense": {
"version": "14.3.25407",
"suppressParent": "all"
}
},
"frameworks": {
"net46": { }
}
},
"frameworks": {
"net46": { }
}
}
\ No newline at end of file
{
"dependencies": {
"System.Collections.Immutable": "1.2.0",
"BasicUndo": "0.9.3",
"RoslynDependencies.Microsoft.VisualStudio.Platform.VSEditor": "14.3.25407",
"Moq": "4.2.1402.2112",
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239"
},
"frameworks": {
"net46": {}
},
"runtimes": {
"win7": {}
}
"dependencies": {
"System.Collections.Immutable": "1.2.0",
"BasicUndo": "0.9.3",
"RoslynDependencies.Microsoft.VisualStudio.Platform.VSEditor": "14.3.25407",
"Moq": "4.2.1402.2112",
"xunit": "2.1.0",
"xunit.runner.console": "2.2.0-beta1-build3239",
"Microsoft.VisualStudio.Text.UI": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.Text.UI.Wpf": {
"version": "14.3.25407",
"suppressParent": "all"
},
},
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
}
\ No newline at end of file
{
"dependencies": {
"RoslynDependencies.Microsoft.VisualStudio.ComponentModelHost": "14.3.25407",
"Microsoft.VisualStudio.Designer.Interfaces": "1.1.4322",
"Microsoft.VisualStudio.ImageCatalog": "14.3.25407",
"Microsoft.VisualStudio.OLE.Interop": "7.10.6070",
"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.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",
"Microsoft.VisualStudio.SDK.EmbedInteropTypes": "14.1.2",
"Microsoft.VisualStudio.ManagedInterfaces": "8.0.50727",
"Microsoft.VisualStudio.WCFReference.Interop": "9.0.30729",
"Microsoft.VisualStudio.Data.Core": "9.0.21022",
"Microsoft.VisualStudio.Data.Services": "9.0.21022",
"Microsoft.VisualStudio.Editor": {
"version": "14.3.25407",
"suppressParent": "all"
"dependencies": {
"RoslynDependencies.Microsoft.VisualStudio.ComponentModelHost": "14.3.25407",
"Microsoft.VisualStudio.Designer.Interfaces": "1.1.4322",
"Microsoft.VisualStudio.ImageCatalog": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.OLE.Interop": "7.10.6070",
"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.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",
"Microsoft.VisualStudio.SDK.EmbedInteropTypes": "14.1.2",
"Microsoft.VisualStudio.ManagedInterfaces": "8.0.50727",
"Microsoft.VisualStudio.WCFReference.Interop": "9.0.30729",
"Microsoft.VisualStudio.Data.Core": "9.0.21022",
"Microsoft.VisualStudio.Data.Services": "9.0.21022",
"Microsoft.VisualStudio.Editor": {
"version": "14.3.25407",
"suppressParent": "all"
},
"Microsoft.VisualStudio.Shell.14.0": {
"version": "14.3.25407",
"suppressParent": "all"
}
},
"Microsoft.VisualStudio.Shell.14.0": {
"version": "14.3.25407",
"suppressParent": "all"
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
},
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
}
\ No newline at end of file
{
"dependencies": {
"Microsoft.CSharp": "4.0.1",
"System.Dynamic.Runtime": "4.0.11"
},
"frameworks": {
"netstandard1.3": {
"imports": "portable-net452"
"dependencies": {
"Microsoft.CSharp": "4.0.1",
"System.Dynamic.Runtime": "4.0.11"
},
"frameworks": {
"netstandard1.3": {
"imports": "portable-net452"
}
}
}
}
{
"dependencies": {
"System.Diagnostics.Process": "4.1.0"
},
"frameworks": {
"net46": {}
},
"runtimes": {
"win7": {}
}
"dependencies": {
"System.Diagnostics.Process": "4.1.0"
},
"frameworks": {
"net46": { }
},
"runtimes": {
"win7": { }
}
}
{
"dependencies": {
"System.AppContext": "4.1.0"
},
"frameworks": {
"netstandard1.3": {
"imports": "portable-net452"
"dependencies": {
"System.AppContext": "4.1.0"
},
"frameworks": {
"netstandard1.3": {
"imports": "portable-net452"
}
}
}
}
\ No newline at end of file
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册