提交 1e85b99e 编写于 作者: N Nat Ayewah

Merge branch 'dev15.4.x' into merges/dev15.4.x-to-master-20170905-070016

......@@ -55,5 +55,11 @@
<SuggestedBindingRedirects Include="System.Security.Principal.Windows, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<MaxVersion>4.0.1.0</MaxVersion>
</SuggestedBindingRedirects>
<SuggestedBindingRedirects Include="System.ValueTuple, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51">
<MaxVersion>4.0.1.0</MaxVersion>
</SuggestedBindingRedirects>
<SuggestedBindingRedirects Include="System.Xml.ReaderWriter, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<MaxVersion>4.1.0.0</MaxVersion>
</SuggestedBindingRedirects>
</ItemGroup>
</Project>
\ No newline at end of file
......@@ -896,33 +896,32 @@ public async Task<ISuggestedActionCategorySet> GetSuggestedActionCategoriesAsync
var provider = _owner;
using (var asyncToken = _owner.OperationListener.BeginAsyncOperation(nameof(GetSuggestedActionCategoriesAsync)))
{
var selection = await GetSpanAsync(range).ConfigureAwait(false);
if (selection != null)
var document = range.Snapshot.GetOpenDocumentInCurrentContextWithChanges();
using (var linkedTokenSource = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken))
{
var document = range.Snapshot.GetOpenDocumentInCurrentContextWithChanges();
using (var linkedTokenSource = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken))
var linkedToken = linkedTokenSource.Token;
var errorTask = Task.Run(
() => GetFixLevelAsync(provider, document, range, linkedToken), linkedToken);
var selection = await GetSpanAsync(range).ConfigureAwait(false);
Task<string> refactoringTask = Task.FromResult((string)null);
if (selection != null && requestedActionCategories.Contains(PredefinedSuggestedActionCategoryNames.Refactoring))
{
var linkedToken = linkedTokenSource.Token;
var errorTask = Task.Run(
() => GetFixLevelAsync(provider, document, range, linkedToken), linkedToken);
var refactoringTask = Task.Run(
() => TryGetRefactoringSuggestedActionCategoryAsync(provider, document, selection, linkedToken),
linkedToken);
// If we happen to get the result of the error task before the refactoring task,
// and that result is non-null, we can just cancel the refactoring task.
var result = await errorTask.ConfigureAwait(false) ?? await refactoringTask.ConfigureAwait(false);
linkedTokenSource.Cancel();
return result == null
? null
: _suggestedActionCategoryRegistry.CreateSuggestedActionCategorySet(result);
refactoringTask = Task.Run(
() => TryGetRefactoringSuggestedActionCategoryAsync(provider, document, selection, linkedToken),
linkedToken);
}
// If we happen to get the result of the error task before the refactoring task,
// and that result is non-null, we can just cancel the refactoring task.
var result = await errorTask.ConfigureAwait(false) ?? await refactoringTask.ConfigureAwait(false);
linkedTokenSource.Cancel();
return result == null
? null
: _suggestedActionCategoryRegistry.CreateSuggestedActionCategorySet(result);
}
}
return null;
}
}
}
......
......@@ -2,13 +2,13 @@
<!-- 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 DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\..\..\build\Targets\SettingsSdk.props" />
<Import Project="..\..\..\build\Targets\GenerateCompilerExecutableBindingRedirects.targets" />
<PropertyGroup>
<Platform Condition="'$(Platform)' == ''">AnyCPU</Platform>
<PlatformTarget>AnyCPU</PlatformTarget>
<OutputType>Exe</OutputType>
<TargetFramework>net461</TargetFramework>
<RuntimeIdentifiers>win7</RuntimeIdentifiers>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
</PropertyGroup>
<ItemGroup Label="Project References">
<ProjectReference Include="..\..\Compilers\Core\Portable\CodeAnalysis.csproj" />
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册