提交 013a882e 编写于 作者: C CyrusNajmabadi

Remove blocking on async calls.

上级 80e33adb
......@@ -43,7 +43,7 @@ protected override void NextAction(IEditorOperations editorOperation, Action nex
protected override bool TreatAsReturn(Document document, int position, CancellationToken cancellationToken)
{
var root = document.GetSyntaxRootAsync(cancellationToken).WaitAndGetResult(cancellationToken);
var root = document.GetSyntaxRootSynchronously(cancellationToken);
var endToken = root.FindToken(position);
if (endToken.IsMissing)
......@@ -77,7 +77,7 @@ protected override bool TreatAsReturn(Document document, int position, Cancellat
protected override void FormatAndApply(Document document, int position, CancellationToken cancellationToken)
{
var root = document.GetSyntaxRootAsync(cancellationToken).WaitAndGetResult(cancellationToken);
var root = document.GetSyntaxRootSynchronously(cancellationToken);
var endToken = root.FindToken(position);
if (endToken.IsMissing)
......
......@@ -139,7 +139,7 @@ public void ExecuteCommand(AutomaticLineEnderCommandArgs args, Action nextHandle
/// </summary>
private int? GetInsertionPoint(Document document, ITextSnapshotLine line, CancellationToken cancellationToken)
{
var root = document.GetSyntaxRootAsync(cancellationToken).WaitAndGetResult(cancellationToken);
var root = document.GetSyntaxRootSynchronously(cancellationToken);
var text = document.GetTextAsync(cancellationToken).WaitAndGetResult(cancellationToken);
var syntaxFacts = document.GetLanguageService<ISyntaxFactsService>();
......
......@@ -265,7 +265,7 @@ private void TryStartRenameSession(Workspace workspace, Solution oldSolution, So
continue;
}
var root = document.GetSyntaxRootAsync(cancellationToken).WaitAndGetResult(cancellationToken);
var root = document.GetSyntaxRootSynchronously(cancellationToken);
var renameTokenOpt = root.GetAnnotatedNodesAndTokens(RenameAnnotation.Kind)
.Where(s => s.IsToken)
......@@ -282,7 +282,7 @@ private void TryStartRenameSession(Workspace workspace, Solution oldSolution, So
var pathToRenameToken = new SyntaxPath(renameTokenOpt.Value);
var latestDocument = workspace.CurrentSolution.GetDocument(documentId);
var latestRoot = latestDocument.GetSyntaxRootAsync(cancellationToken).WaitAndGetResult(cancellationToken);
var latestRoot = latestDocument.GetSyntaxRootSynchronously(cancellationToken);
SyntaxNodeOrToken resolvedRenameToken;
if (pathToRenameToken.TryResolve(latestRoot, out resolvedRenameToken) &&
......@@ -293,7 +293,7 @@ private void TryStartRenameSession(Workspace workspace, Solution oldSolution, So
if (navigationService.TryNavigateToSpan(editorWorkspace, documentId, resolvedRenameToken.Span))
{
var openDocument = workspace.CurrentSolution.GetDocument(documentId);
var openRoot = openDocument.GetSyntaxRootAsync(cancellationToken).WaitAndGetResult(cancellationToken);
var openRoot = openDocument.GetSyntaxRootSynchronously(cancellationToken);
// NOTE: We need to resolve the syntax path again in case VB line commit kicked in
// due to the navigation.
......
......@@ -3,11 +3,9 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using Microsoft.CodeAnalysis.Editor.Shared.Extensions;
using Microsoft.CodeAnalysis.Editor.Shared.Utilities;
using Microsoft.CodeAnalysis.Formatting;
using Microsoft.CodeAnalysis.Text;
using Microsoft.CodeAnalysis.Text.Shared.Extensions;
using Roslyn.Utilities;
namespace Microsoft.CodeAnalysis.Editor.Implementation.CommentSelection
......@@ -21,10 +19,10 @@ internal abstract class AbstractCommentUncommentService : ICommentUncommentServi
public Document Format(Document document, IEnumerable<TextSpan> changes, CancellationToken cancellationToken)
{
var root = document.GetSyntaxRootAsync(cancellationToken).WaitAndGetResult(cancellationToken);
var root = document.GetSyntaxRootSynchronously(cancellationToken);
var formattingSpans = changes.Select(s => CommonFormattingHelpers.GetFormattingSpan(root, s));
return Formatter.FormatAsync(document, formattingSpans, cancellationToken: cancellationToken).WaitAndGetResult(cancellationToken);
}
}
}
}
\ No newline at end of file
......@@ -44,7 +44,7 @@ internal abstract class AbstractSmartTokenFormatterCommandHandler :
/// <returns>True if any change is made.</returns>
protected bool FormatToken(ITextView view, Document document, SyntaxToken token, IEnumerable<IFormattingRule> formattingRules, CancellationToken cancellationToken)
{
var root = document.GetSyntaxRootAsync(cancellationToken).WaitAndGetResult(cancellationToken);
var root = document.GetSyntaxRootSynchronously(cancellationToken);
var formatter = CreateSmartTokenFormatter(document.Options, formattingRules, root);
var changes = formatter.FormatTokenAsync(document.Project.Solution.Workspace, token, cancellationToken).WaitAndGetResult(cancellationToken);
if (changes.Count == 0)
......@@ -295,7 +295,7 @@ private bool TryFormatUsingTokenFormatter(ITextView view, ITextBuffer subjectBuf
{
var position = view.GetCaretPoint(subjectBuffer).Value;
var line = position.GetContainingLine().AsTextLine();
var root = document.GetSyntaxRootAsync(cancellationToken).WaitAndGetResult(cancellationToken);
var root = document.GetSyntaxRootSynchronously(cancellationToken);
var options = document.Options;
if (!UseSmartTokenFormatter(root, line, formattingRules, options, cancellationToken))
{
......@@ -341,4 +341,4 @@ protected CaretPreservingEditTransaction CreateEditTransaction(ITextView view, s
return new CaretPreservingEditTransaction(description, view, _undoHistoryRegistry, _editorOperationsFactoryService);
}
}
}
}
\ No newline at end of file
......@@ -82,7 +82,7 @@ public bool TryGoToDefinition(Document document, int position, CancellationToken
private static bool IsThirdPartyNavigationAllowed(ISymbol symbolToNavigateTo, int caretPosition, Document document, CancellationToken cancellationToken)
{
var syntaxRoot = document.GetSyntaxRootAsync(cancellationToken).WaitAndGetResult(cancellationToken);
var syntaxRoot = document.GetSyntaxRootSynchronously(cancellationToken);
var syntaxFactsService = document.GetLanguageService<ISyntaxFactsService>();
var containingTypeDeclaration = syntaxFactsService.GetContainingTypeDeclaration(syntaxRoot, caretPosition);
......
......@@ -643,7 +643,7 @@ private void ApplyRename(Solution newSolution, IWaitContext waitContext)
var newDocument = newSolution.GetDocument(id);
if (newDocument.SupportsSyntaxTree)
{
var root = newDocument.GetSyntaxRootAsync(waitContext.CancellationToken).WaitAndGetResult(waitContext.CancellationToken);
var root = newDocument.GetSyntaxRootSynchronously(waitContext.CancellationToken);
finalSolution = finalSolution.WithDocumentSyntaxRoot(id, root);
}
else
......
......@@ -385,7 +385,7 @@ public Task<object> CreateChangedDocumentPreviewViewAsync(Document oldDocument,
if (newDocument.SupportsSyntaxTree)
{
var newRoot = newDocument.GetSyntaxRootAsync(cancellationToken).WaitAndGetResult(cancellationToken);
var newRoot = newDocument.GetSyntaxRootSynchronously(cancellationToken);
var conflictNodes = newRoot.GetAnnotatedNodesAndTokens(ConflictAnnotation.Kind);
var conflictSpans = conflictNodes.Select(n => n.Span.ToSpan()).ToList();
var conflictDescriptions = conflictNodes.SelectMany(n => n.GetAnnotations(ConflictAnnotation.Kind))
......
......@@ -159,7 +159,7 @@ private bool ApplyChangesToWorkspace(CancellationToken cancellationToken)
{
// because changes have already been made to the workspace (UpdateWorkspaceForResetOfTypedIdentifier() above),
// these calls can't be cancelled and must be allowed to complete.
var root = renameTrackingSolutionSet.RenamedSolution.GetDocument(docId).GetSyntaxRootAsync(CancellationToken.None).WaitAndGetResult(CancellationToken.None);
var root = renameTrackingSolutionSet.RenamedSolution.GetDocument(docId).GetSyntaxRootSynchronously(CancellationToken.None);
finalSolution = finalSolution.WithDocumentSyntaxRoot(docId, root);
}
......
......@@ -35,7 +35,7 @@ public static void FormatAndApplyToBuffer(this ITextSnapshot snapshot, TextSpan
rules = GetFormattingRules(document, rules, span);
var root = document.GetSyntaxRootAsync(cancellationToken).WaitAndGetResult(cancellationToken);
var root = document.GetSyntaxRootSynchronously(cancellationToken);
var changes = Formatter.GetFormattedTextChanges(root, SpecializedCollections.SingletonEnumerable(span), document.Project.Solution.Workspace, document.Options, rules, cancellationToken);
using (Logger.LogBlock(FunctionId.Formatting_ApplyResultToBuffer, cancellationToken))
......
......@@ -43,7 +43,7 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.AutomaticCompletion
Protected Overrides Function GetEndingString(document As Document, position As Integer, cancellationToken As CancellationToken) As String
' prepare expansive information from document
Dim root = DirectCast(document.GetSyntaxRootAsync(cancellationToken).WaitAndGetResult(cancellationToken), SyntaxNode)
Dim root = document.GetSyntaxRootSynchronously(cancellationToken)
Dim text = document.GetTextAsync(cancellationToken).WaitAndGetResult(cancellationToken)
' get line where the caret is on
......
......@@ -139,7 +139,7 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.AutomaticEndConstructCorrect
Return False
End If
Dim root = _previousDocument.GetSyntaxRootAsync(cancellationToken).WaitAndGetResult(cancellationToken)
Dim root = _previousDocument.GetSyntaxRootSynchronously(cancellationToken)
token = root.FindToken(textChange.OldPosition)
If Not IsChangeOnCorrectToken(token) Then
......
......@@ -109,7 +109,7 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.EndConstructGeneration
Return
End If
Dim root = document.GetSyntaxRootAsync(cancellationToken).WaitAndGetResult(cancellationToken)
Dim root = document.GetSyntaxRootSynchronously(cancellationToken)
Dim statement = root.FindToken(position.Value).GetAncestor(Of StatementSyntax)()
If statement Is Nothing OrElse TypeOf statement Is EmptyStatementSyntax OrElse
Not statement.ContainsDiagnostics Then
......
......@@ -71,7 +71,7 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.LineCommit
codeCleanups,
cancellationToken).WaitAndGetResult(cancellationToken)
Else
Dim root = document.GetSyntaxRootAsync(cancellationToken).WaitAndGetResult(cancellationToken)
Dim root = document.GetSyntaxRootSynchronously(cancellationToken)
Dim newRoot = Await CodeCleaner.CleanupAsync(root, textSpanToFormat, document.Project.Solution.Workspace, codeCleanups, cancellationToken).ConfigureAwait(False)
If root Is newRoot Then
finalDocument = document
......
......@@ -520,7 +520,7 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.NavigationBar
' We'll compute everything up front before we go mutate state
Dim text = document.GetTextAsync(cancellationToken).WaitAndGetResult(cancellationToken)
Dim newDocument = generateCodeItem.GetGeneratedDocumentAsync(document, cancellationToken).WaitAndGetResult(cancellationToken)
Dim generatedTree = newDocument.GetSyntaxRootAsync(cancellationToken).WaitAndGetResult(cancellationToken)
Dim generatedTree = newDocument.GetSyntaxRootSynchronously(cancellationToken)
Dim generatedNode = generatedTree.GetAnnotatedNodes(AbstractGenerateCodeItem.GeneratedSymbolAnnotation).Single().FirstAncestorOrSelf(Of MethodBlockBaseSyntax)
Dim indentSize = newDocument.Options.GetOption(FormattingOptions.IndentationSize)
Dim navigationPoint = NavigationPointHelpers.GetNavigationPoint(generatedTree.GetText(text.Encoding), indentSize, generatedNode)
......
......@@ -52,7 +52,7 @@ internal override async Task<SyntaxNode> GetTypeDeclarationAsync(Document docume
CancellationToken cancellationToken)
{
var documentWithTypeNode = solutionWithFormattedInterfaceDocument.GetDocument(documentIdWithTypeNode);
var root = documentWithTypeNode.GetSyntaxRootAsync(cancellationToken).WaitAndGetResult(cancellationToken);
var root = documentWithTypeNode.GetSyntaxRootSynchronously(cancellationToken);
var typeDeclaration = root.GetAnnotatedNodes<TypeDeclarationSyntax>(typeNodeAnnotation).Single();
var docId = solutionWithFormattedInterfaceDocument.GetDocument(typeDeclaration.SyntaxTree).Id;
......
......@@ -323,7 +323,7 @@ private bool TryCreateUpdatedSolution(ChangeSignatureAnalyzedContext context, Ch
{
var doc = updatedSolution.GetDocument(docId);
var updater = doc.Project.LanguageServices.GetService<AbstractChangeSignatureService>();
var root = doc.GetSyntaxRootAsync(CancellationToken.None).WaitAndGetResult(CancellationToken.None);
var root = doc.GetSyntaxRootSynchronously(CancellationToken.None);
var nodes = nodesToUpdate[docId];
......
......@@ -276,7 +276,8 @@ public ExtractInterfaceResult ExtractInterfaceFromAnalyzedType(ExtractInterfaceT
private static Solution GetSolutionWithFormattedInterfaceDocument(Document unformattedInterfaceDocument, CancellationToken cancellationToken)
{
Solution solutionWithInterfaceDocument;
var formattedRoot = Formatter.Format(unformattedInterfaceDocument.GetSyntaxRootAsync(cancellationToken).WaitAndGetResult(cancellationToken), unformattedInterfaceDocument.Project.Solution.Workspace, cancellationToken: cancellationToken);
var formattedRoot = Formatter.Format(unformattedInterfaceDocument.GetSyntaxRootSynchronously(cancellationToken),
unformattedInterfaceDocument.Project.Solution.Workspace, cancellationToken: cancellationToken);
var rootToSimplify = formattedRoot.WithAdditionalAnnotations(Simplifier.Annotation);
var finalInterfaceDocument = Simplifier.ReduceAsync(unformattedInterfaceDocument.WithSyntaxRoot(rootToSimplify), cancellationToken: cancellationToken).WaitAndGetResult(cancellationToken);
......
......@@ -97,7 +97,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.ExtractInterface
cancellationToken As CancellationToken) As String
Dim documentWithTypeNode = solutionWithInterfaceDocument.GetDocument(invocationLocationDocument)
Dim typeDeclaration = documentWithTypeNode.GetSyntaxRootAsync(cancellationToken).WaitAndGetResult(cancellationToken).GetAnnotatedNodes(Of TypeBlockSyntax)(typeNodeAnnotation).Single()
Dim typeDeclaration = documentWithTypeNode.GetSyntaxRootSynchronously(cancellationToken).GetAnnotatedNodes(Of TypeBlockSyntax)(typeNodeAnnotation).Single()
Dim implementedInterfaceStatementSyntax = If(extractedInterfaceSymbol.TypeParameters.Any(),
SyntaxFactory.GenericName(
......@@ -110,7 +110,9 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.ExtractInterface
Dim updatedTypeDeclaration = typeDeclaration.WithImplements(updatedImplementsList)
Dim docId = solutionWithInterfaceDocument.GetDocument(typeDeclaration.SyntaxTree).Id
Dim updatedRoot = solutionWithInterfaceDocument.GetDocument(docId).GetSyntaxRootAsync(cancellationToken).WaitAndGetResult(cancellationToken).ReplaceNode(typeDeclaration, updatedTypeDeclaration)
Dim updatedRoot = solutionWithInterfaceDocument.GetDocument(docId).
GetSyntaxRootSynchronously(cancellationToken).
ReplaceNode(typeDeclaration, updatedTypeDeclaration)
Dim updatedCompilationUnit = CType(updatedRoot, CompilationUnitSyntax)
docToRootMap.Add(docId, updatedCompilationUnit)
......@@ -138,7 +140,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.ExtractInterface
If docToRootMap.ContainsKey(candidateDocId) Then
currentRoot = docToRootMap(candidateDocId)
Else
currentRoot = CType(solutionWithInterfaceDocument.GetDocument(candidateDocId).GetSyntaxRootAsync(cancellationToken).WaitAndGetResult(cancellationToken), CompilationUnitSyntax)
currentRoot = CType(solutionWithInterfaceDocument.GetDocument(candidateDocId).GetSyntaxRootSynchronously(cancellationToken), CompilationUnitSyntax)
End If
token = currentRoot.DescendantNodesAndTokensAndSelf().FirstOrDefault(Function(x) x.HasAnnotation(annotation))
......
......@@ -103,7 +103,7 @@ internal override Document AddImports(Document document, XElement snippetNode, b
return document;
}
var root = document.GetSyntaxRootAsync(cancellationToken).WaitAndGetResult(cancellationToken);
var root = document.GetSyntaxRootSynchronously(cancellationToken);
var newRoot = ((CompilationUnitSyntax)root).AddUsingDirectives(newUsingDirectives, placeSystemNamespaceFirst);
var newDocument = document.WithSyntaxRoot(newRoot);
......@@ -117,7 +117,7 @@ internal override Document AddImports(Document document, XElement snippetNode, b
private static IList<UsingDirectiveSyntax> GetUsingDirectivesToAdd(Document document, XElement snippetNode, XElement importsNode, CancellationToken cancellationToken)
{
var namespaceXmlName = XName.Get("Namespace", snippetNode.Name.NamespaceName);
var root = document.GetSyntaxRootAsync(cancellationToken).WaitAndGetResult(cancellationToken);
var root = document.GetSyntaxRootSynchronously(cancellationToken);
var existingUsings = ((CompilationUnitSyntax)root).Usings;
var newUsings = new List<UsingDirectiveSyntax>();
......
......@@ -4,7 +4,6 @@
using System.Linq;
using System.Threading;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp.Extensions;
using Microsoft.CodeAnalysis.Editor.Shared.Extensions;
using Microsoft.CodeAnalysis.Shared.Extensions;
using Microsoft.CodeAnalysis.Simplification;
......@@ -95,7 +94,7 @@ protected override bool TryGetSimplifiedTypeNameInCaseContext(Document document,
var textWithCaseAdded = document.GetTextAsync(cancellationToken).WaitAndGetResult(cancellationToken).WithChanges(textChange);
var documentWithCaseAdded = document.WithText(textWithCaseAdded);
var syntaxRoot = documentWithCaseAdded.GetSyntaxRootAsync(cancellationToken).WaitAndGetResult(cancellationToken);
var syntaxRoot = documentWithCaseAdded.GetSyntaxRootSynchronously(cancellationToken);
var nodeToReplace = syntaxRoot.DescendantNodes().FirstOrDefault(n => n.Span == typeSpanToAnnotate);
if (nodeToReplace == null)
......@@ -107,8 +106,8 @@ protected override bool TryGetSimplifiedTypeNameInCaseContext(Document document,
var documentWithAnnotations = documentWithCaseAdded.WithSyntaxRoot(updatedRoot);
var simplifiedDocument = Simplifier.ReduceAsync(documentWithAnnotations, cancellationToken: cancellationToken).Result;
simplifiedTypeName = simplifiedDocument.GetSyntaxRootAsync(cancellationToken).WaitAndGetResult(cancellationToken).GetAnnotatedNodesAndTokens(typeAnnotation).Single().ToString();
simplifiedTypeName = simplifiedDocument.GetSyntaxRootSynchronously(cancellationToken).GetAnnotatedNodesAndTokens(typeAnnotation).Single().ToString();
return true;
}
}
}
}
\ No newline at end of file
......@@ -3,7 +3,6 @@
using System.Linq;
using System.Threading;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp.Extensions;
using Microsoft.CodeAnalysis.Simplification;
using Microsoft.CodeAnalysis.Text;
using Microsoft.VisualStudio.LanguageServices.Implementation.Snippets.SnippetFunctions;
......@@ -25,7 +24,7 @@ protected override bool TryGetSimplifiedTypeName(Document documentWithFullyQuali
simplifiedTypeName = string.Empty;
var typeAnnotation = new SyntaxAnnotation();
var syntaxRoot = documentWithFullyQualifiedTypeName.GetSyntaxRootAsync(cancellationToken).WaitAndGetResult(cancellationToken);
var syntaxRoot = documentWithFullyQualifiedTypeName.GetSyntaxRootSynchronously(cancellationToken);
var nodeToReplace = syntaxRoot.DescendantNodes().FirstOrDefault(n => n.Span == updatedTextSpan);
if (nodeToReplace == null)
......@@ -37,8 +36,8 @@ protected override bool TryGetSimplifiedTypeName(Document documentWithFullyQuali
var documentWithAnnotations = documentWithFullyQualifiedTypeName.WithSyntaxRoot(updatedRoot);
var simplifiedDocument = Simplifier.ReduceAsync(documentWithAnnotations, cancellationToken: cancellationToken).WaitAndGetResult(cancellationToken);
simplifiedTypeName = simplifiedDocument.GetSyntaxRootAsync(cancellationToken).WaitAndGetResult(cancellationToken).GetAnnotatedNodesAndTokens(typeAnnotation).Single().ToString();
simplifiedTypeName = simplifiedDocument.GetSyntaxRootSynchronously(cancellationToken).GetAnnotatedNodesAndTokens(typeAnnotation).Single().ToString();
return true;
}
}
}
}
\ No newline at end of file
......@@ -288,7 +288,7 @@ private void FormatDocumentCreatedFromTemplate(IVsHierarchy hierarchy, uint item
var forkedSolution = solution.AddDocument(DocumentInfo.Create(documentId, filePath, loader: new FileTextLoader(filePath, defaultEncoding: null), filePath: filePath));
var addedDocument = forkedSolution.GetDocument(documentId);
var rootToFormat = addedDocument.GetSyntaxRootAsync(cancellationToken).WaitAndGetResult(cancellationToken);
var rootToFormat = addedDocument.GetSyntaxRootSynchronously(cancellationToken);
var formattedTextChanges = Formatter.GetFormattedTextChanges(rootToFormat, workspace, addedDocument.Options, cancellationToken);
var formattedText = addedDocument.GetTextAsync(cancellationToken).WaitAndGetResult(cancellationToken).WithChanges(formattedTextChanges);
......
......@@ -48,7 +48,7 @@ private int FormatWorker(IVsTextLayer textLayer, TextSpan[] selections, Cancella
}
var text = document.GetTextAsync(cancellationToken).WaitAndGetResult(cancellationToken);
var root = document.GetSyntaxRootAsync(cancellationToken).WaitAndGetResult(cancellationToken);
var root = document.GetSyntaxRootSynchronously(cancellationToken);
var ts = selections.Single();
int start = text.Lines[ts.iStartLine].Start + ts.iStartIndex;
......
......@@ -808,7 +808,7 @@ private void AdjustIndentation(IProjectionBuffer subjectBuffer, IEnumerable<int>
var originalText = document.GetTextAsync(CancellationToken.None).WaitAndGetResult(CancellationToken.None);
Contract.Requires(object.ReferenceEquals(originalText, snapshot.AsText()));
var root = document.GetSyntaxRootAsync(CancellationToken.None).WaitAndGetResult(CancellationToken.None);
var root = document.GetSyntaxRootSynchronously(CancellationToken.None);
var editorOptionsFactory = _componentModel.GetService<IEditorOptionsFactoryService>();
var editorOptions = editorOptionsFactory.GetOptions(_containedLanguage.DataBuffer);
......@@ -840,7 +840,7 @@ private void AdjustIndentation(IProjectionBuffer subjectBuffer, IEnumerable<int>
private void AdjustIndentationForSpan(
Document document, ITextEdit edit, TextSpan visibleSpan, IFormattingRule baseIndentationRule, OptionSet options)
{
var root = document.GetSyntaxRootAsync(CancellationToken.None).WaitAndGetResult(CancellationToken.None);
var root = document.GetSyntaxRootSynchronously(CancellationToken.None);
using (var rulePool = SharedPools.Default<List<IFormattingRule>>().GetPooledObject())
using (var spanPool = SharedPools.Default<List<TextSpan>>().GetPooledObject())
......
......@@ -213,7 +213,8 @@ public static string GetEventHandlerMemberId(Document document, string className
var newType = codeGenerationService.AddMethod(destinationType, newMethod, new CodeGenerationOptions(autoInsertionLocation: false), cancellationToken);
var newRoot = targetSyntaxTree.GetRoot(cancellationToken).ReplaceNode(destinationType, newType);
newRoot = Simplifier.ReduceAsync(targetDocument.WithSyntaxRoot(newRoot), Simplifier.Annotation, null, cancellationToken).WaitAndGetResult_Venus(cancellationToken).GetSyntaxRootAsync(cancellationToken).WaitAndGetResult_Venus(cancellationToken);
newRoot = Simplifier.ReduceAsync(
targetDocument.WithSyntaxRoot(newRoot), Simplifier.Annotation, null, cancellationToken).WaitAndGetResult_Venus(cancellationToken).GetSyntaxRootSynchronously(cancellationToken);
var formattingRules = additionalFormattingRule.Concat(Formatter.GetDefaultFormattingRules(targetDocument));
......
......@@ -80,7 +80,7 @@ public IFormattingRule CreateRule(Document document, int position)
{
var spans = pooledObject.Object;
var root = document.GetSyntaxRootAsync(CancellationToken.None).WaitAndGetResult(CancellationToken.None);
var root = document.GetSyntaxRootSynchronously(CancellationToken.None);
var text = document.GetTextAsync(CancellationToken.None).WaitAndGetResult(CancellationToken.None);
spans.AddRange(containedDocument.GetEditorVisibleSpans());
......
......@@ -1152,7 +1152,7 @@ private int GetParameterInsertionIndex(SyntaxNode container, int insertionIndex)
private Document FormatAnnotatedNode(Document document, SyntaxAnnotation annotation, IEnumerable<IFormattingRule> additionalRules, CancellationToken cancellationToken)
{
var root = document.GetSyntaxRootAsync(cancellationToken).WaitAndGetResult_CodeModel(cancellationToken);
var root = document.GetSyntaxRootSynchronously(cancellationToken);
var annotatedNode = root.GetAnnotatedNodesAndTokens(annotation).Single().AsNode();
var formattingSpan = GetSpanToFormat(root, annotatedNode.FullSpan);
......@@ -1180,7 +1180,7 @@ private Document FormatAnnotatedNode(Document document, SyntaxAnnotation annotat
CancellationToken cancellationToken,
out Document newDocument)
{
var root = document.GetSyntaxRootAsync(cancellationToken).WaitAndGetResult_CodeModel(cancellationToken);
var root = document.GetSyntaxRootSynchronously(cancellationToken);
// Annotate the member we're inserting so we can get back to it.
var annotation = new SyntaxAnnotation();
......@@ -1210,7 +1210,7 @@ private Document FormatAnnotatedNode(Document document, SyntaxAnnotation annotat
// new node
return document
.GetSyntaxRootAsync(cancellationToken).WaitAndGetResult_CodeModel(cancellationToken)
.GetSyntaxRootSynchronously(cancellationToken)
.GetAnnotatedNodesAndTokens(annotation)
.Single()
.AsNode();
......@@ -1234,7 +1234,7 @@ private Document FormatAnnotatedNode(Document document, SyntaxAnnotation annotat
// REVIEW: how simplifier ever worked for code model? nobody added simplifier.Annotation before?
var annotatedNode = newNode.WithAdditionalAnnotations(annotation, Simplifier.Annotation);
var oldRoot = document.GetSyntaxRootAsync(cancellationToken).WaitAndGetResult_CodeModel(cancellationToken);
var oldRoot = document.GetSyntaxRootSynchronously(cancellationToken);
var newRoot = oldRoot.ReplaceNode(node, annotatedNode);
document = document.WithSyntaxRoot(newRoot);
......
......@@ -107,7 +107,7 @@ Namespace Microsoft.VisualStudio.LanguageServices.VisualBasic.Snippets
Return document
End If
Dim root = document.GetSyntaxRootAsync(cancellationToken).WaitAndGetResult(cancellationToken)
Dim root = document.GetSyntaxRootSynchronously(cancellationToken)
Dim newRoot = CType(root, CompilationUnitSyntax).AddImportsStatements(newImportsStatements, placeSystemNamespaceFirst)
Dim newDocument = document.WithSyntaxRoot(newRoot)
......@@ -119,7 +119,7 @@ Namespace Microsoft.VisualStudio.LanguageServices.VisualBasic.Snippets
End Function
Private Shared Function GetImportsStatementsToAdd(document As Document, snippetNode As XElement, importsNode As XElement, cancellationToken As CancellationToken) As IList(Of ImportsStatementSyntax)
Dim root = document.GetSyntaxRootAsync(cancellationToken).WaitAndGetResult(cancellationToken)
Dim root = document.GetSyntaxRootSynchronously(cancellationToken)
Dim localImportsClauses = CType(root, CompilationUnitSyntax).Imports.SelectMany(Function(x) x.ImportsClauses)
Dim compilation = document.Project.GetCompilationAsync(cancellationToken).WaitAndGetResult(cancellationToken)
Dim options = CType(compilation.Options, VisualBasicCompilationOptions)
......
......@@ -77,7 +77,7 @@ Namespace Microsoft.VisualStudio.LanguageServices.VisualBasic.Snippets.SnippetFu
Dim textWithCaseAdded = document.GetTextAsync(cancellationToken).WaitAndGetResult(cancellationToken).WithChanges(textChange)
Dim documentWithCaseAdded = document.WithText(textWithCaseAdded)
Dim syntaxRoot = documentWithCaseAdded.GetSyntaxRootAsync(cancellationToken).WaitAndGetResult(cancellationToken)
Dim syntaxRoot = documentWithCaseAdded.GetSyntaxRootSynchronously(cancellationToken)
Dim nodeToReplace = syntaxRoot.DescendantNodes().FirstOrDefault(Function(n) n.Span = typeSpanToAnnotate)
If nodeToReplace Is Nothing Then
......@@ -88,9 +88,8 @@ Namespace Microsoft.VisualStudio.LanguageServices.VisualBasic.Snippets.SnippetFu
Dim documentWithAnnotations = documentWithCaseAdded.WithSyntaxRoot(updatedRoot)
Dim simplifiedDocument = Simplifier.ReduceAsync(documentWithAnnotations, cancellationToken:=cancellationToken).WaitAndGetResult(cancellationToken)
simplifiedTypeName = simplifiedDocument.GetSyntaxRootAsync(cancellationToken).WaitAndGetResult(cancellationToken).GetAnnotatedNodesAndTokens(typeAnnotation).Single().ToString()
simplifiedTypeName = simplifiedDocument.GetSyntaxRootSynchronously(cancellationToken).GetAnnotatedNodesAndTokens(typeAnnotation).Single().ToString()
Return True
End Function
End Class
End Namespace
End Namespace
\ No newline at end of file
......@@ -20,7 +20,7 @@ Namespace Microsoft.VisualStudio.LanguageServices.VisualBasic.Snippets.SnippetFu
simplifiedTypeName = String.Empty
Dim typeAnnotation = New SyntaxAnnotation()
Dim syntaxRoot = documentWithFullyQualifiedTypeName.GetSyntaxRootAsync(cancellationToken).WaitAndGetResult(cancellationToken)
Dim syntaxRoot = documentWithFullyQualifiedTypeName.GetSyntaxRootSynchronously(cancellationToken)
Dim nodeToReplace = syntaxRoot.DescendantNodes().FirstOrDefault(Function(n) n.Span = updatedTextSpan)
If nodeToReplace Is Nothing Then
......@@ -31,7 +31,7 @@ Namespace Microsoft.VisualStudio.LanguageServices.VisualBasic.Snippets.SnippetFu
Dim documentWithAnnotations = documentWithFullyQualifiedTypeName.WithSyntaxRoot(updatedRoot)
Dim simplifiedDocument = Simplifier.ReduceAsync(documentWithAnnotations, cancellationToken:=cancellationToken).WaitAndGetResult(cancellationToken)
simplifiedTypeName = simplifiedDocument.GetSyntaxRootAsync(cancellationToken).WaitAndGetResult(cancellationToken).GetAnnotatedNodesAndTokens(typeAnnotation).Single().ToString()
simplifiedTypeName = simplifiedDocument.GetSyntaxRootSynchronously(cancellationToken).GetAnnotatedNodesAndTokens(typeAnnotation).Single().ToString()
Return True
End Function
End Class
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册