提交 3ba7b6e6 编写于 作者: A Allison Chou

Merge branch 'AddParameter' of https://github.com/ivanbasov/roslyn into AddParameterIvan

...@@ -291,31 +291,31 @@ private SyntaxNode GetNodeContainingTargetNode(SyntaxNode matchingNode) ...@@ -291,31 +291,31 @@ private SyntaxNode GetNodeContainingTargetNode(SyntaxNode matchingNode)
// Update declarations parameter lists // Update declarations parameter lists
if (updatedNode.IsKind(SyntaxKind.MethodDeclaration, out MethodDeclarationSyntax method)) if (updatedNode.IsKind(SyntaxKind.MethodDeclaration, out MethodDeclarationSyntax method))
{ {
var updatedParameters = PermuteDeclaration(method.ParameterList.Parameters, signaturePermutation, CreateNewParameterSyntax); var updatedParameters = UpdateDeclaration(method.ParameterList.Parameters, signaturePermutation, CreateNewParameterSyntax);
return method.WithParameterList(method.ParameterList.WithParameters(updatedParameters).WithAdditionalAnnotations(changeSignatureFormattingAnnotation)); return method.WithParameterList(method.ParameterList.WithParameters(updatedParameters).WithAdditionalAnnotations(changeSignatureFormattingAnnotation));
} }
if (updatedNode.IsKind(SyntaxKind.LocalFunctionStatement, out LocalFunctionStatementSyntax localFunction)) if (updatedNode.IsKind(SyntaxKind.LocalFunctionStatement, out LocalFunctionStatementSyntax localFunction))
{ {
var updatedParameters = PermuteDeclaration(localFunction.ParameterList.Parameters, signaturePermutation, CreateNewParameterSyntax); var updatedParameters = UpdateDeclaration(localFunction.ParameterList.Parameters, signaturePermutation, CreateNewParameterSyntax);
return localFunction.WithParameterList(localFunction.ParameterList.WithParameters(updatedParameters).WithAdditionalAnnotations(changeSignatureFormattingAnnotation)); return localFunction.WithParameterList(localFunction.ParameterList.WithParameters(updatedParameters).WithAdditionalAnnotations(changeSignatureFormattingAnnotation));
} }
if (updatedNode.IsKind(SyntaxKind.ConstructorDeclaration, out ConstructorDeclarationSyntax constructor)) if (updatedNode.IsKind(SyntaxKind.ConstructorDeclaration, out ConstructorDeclarationSyntax constructor))
{ {
var updatedParameters = PermuteDeclaration(constructor.ParameterList.Parameters, signaturePermutation, CreateNewParameterSyntax); var updatedParameters = UpdateDeclaration(constructor.ParameterList.Parameters, signaturePermutation, CreateNewParameterSyntax);
return constructor.WithParameterList(constructor.ParameterList.WithParameters(updatedParameters).WithAdditionalAnnotations(changeSignatureFormattingAnnotation)); return constructor.WithParameterList(constructor.ParameterList.WithParameters(updatedParameters).WithAdditionalAnnotations(changeSignatureFormattingAnnotation));
} }
if (updatedNode.IsKind(SyntaxKind.IndexerDeclaration, out IndexerDeclarationSyntax indexer)) if (updatedNode.IsKind(SyntaxKind.IndexerDeclaration, out IndexerDeclarationSyntax indexer))
{ {
var updatedParameters = PermuteDeclaration(indexer.ParameterList.Parameters, signaturePermutation, CreateNewParameterSyntax); var updatedParameters = UpdateDeclaration(indexer.ParameterList.Parameters, signaturePermutation, CreateNewParameterSyntax);
return indexer.WithParameterList(indexer.ParameterList.WithParameters(updatedParameters).WithAdditionalAnnotations(changeSignatureFormattingAnnotation)); return indexer.WithParameterList(indexer.ParameterList.WithParameters(updatedParameters).WithAdditionalAnnotations(changeSignatureFormattingAnnotation));
} }
if (updatedNode.IsKind(SyntaxKind.DelegateDeclaration, out DelegateDeclarationSyntax delegateDeclaration)) if (updatedNode.IsKind(SyntaxKind.DelegateDeclaration, out DelegateDeclarationSyntax delegateDeclaration))
{ {
var updatedParameters = PermuteDeclaration(delegateDeclaration.ParameterList.Parameters, signaturePermutation, CreateNewParameterSyntax); var updatedParameters = UpdateDeclaration(delegateDeclaration.ParameterList.Parameters, signaturePermutation, CreateNewParameterSyntax);
return delegateDeclaration.WithParameterList(delegateDeclaration.ParameterList.WithParameters(updatedParameters).WithAdditionalAnnotations(changeSignatureFormattingAnnotation)); return delegateDeclaration.WithParameterList(delegateDeclaration.ParameterList.WithParameters(updatedParameters).WithAdditionalAnnotations(changeSignatureFormattingAnnotation));
} }
...@@ -327,7 +327,7 @@ private SyntaxNode GetNodeContainingTargetNode(SyntaxNode matchingNode) ...@@ -327,7 +327,7 @@ private SyntaxNode GetNodeContainingTargetNode(SyntaxNode matchingNode)
return anonymousMethod; return anonymousMethod;
} }
var updatedParameters = PermuteDeclaration(anonymousMethod.ParameterList.Parameters, signaturePermutation, CreateNewParameterSyntax); var updatedParameters = UpdateDeclaration(anonymousMethod.ParameterList.Parameters, signaturePermutation, CreateNewParameterSyntax);
return anonymousMethod.WithParameterList(anonymousMethod.ParameterList.WithParameters(updatedParameters).WithAdditionalAnnotations(changeSignatureFormattingAnnotation)); return anonymousMethod.WithParameterList(anonymousMethod.ParameterList.WithParameters(updatedParameters).WithAdditionalAnnotations(changeSignatureFormattingAnnotation));
} }
...@@ -335,7 +335,7 @@ private SyntaxNode GetNodeContainingTargetNode(SyntaxNode matchingNode) ...@@ -335,7 +335,7 @@ private SyntaxNode GetNodeContainingTargetNode(SyntaxNode matchingNode)
{ {
if (signaturePermutation.UpdatedConfiguration.ToListOfParameters().Any()) if (signaturePermutation.UpdatedConfiguration.ToListOfParameters().Any())
{ {
var updatedParameters = PermuteDeclaration(SyntaxFactory.SeparatedList<ParameterSyntax>(new[] { lambda.Parameter }), signaturePermutation, CreateNewParameterSyntax); var updatedParameters = UpdateDeclaration(SyntaxFactory.SeparatedList<ParameterSyntax>(new[] { lambda.Parameter }), signaturePermutation, CreateNewParameterSyntax);
return SyntaxFactory.ParenthesizedLambdaExpression( return SyntaxFactory.ParenthesizedLambdaExpression(
lambda.AsyncKeyword, lambda.AsyncKeyword,
SyntaxFactory.ParameterList(updatedParameters), SyntaxFactory.ParameterList(updatedParameters),
...@@ -359,7 +359,7 @@ private SyntaxNode GetNodeContainingTargetNode(SyntaxNode matchingNode) ...@@ -359,7 +359,7 @@ private SyntaxNode GetNodeContainingTargetNode(SyntaxNode matchingNode)
Func<AddedParameter, ParameterSyntax> createNewParameterDelegate = Func<AddedParameter, ParameterSyntax> createNewParameterDelegate =
p => CreateNewParameterSyntax(p, !doNotSkipParameterType); p => CreateNewParameterSyntax(p, !doNotSkipParameterType);
var updatedParameters = PermuteDeclaration( var updatedParameters = UpdateDeclaration(
parenLambda.ParameterList.Parameters, parenLambda.ParameterList.Parameters,
signaturePermutation, signaturePermutation,
createNewParameterDelegate); createNewParameterDelegate);
...@@ -430,7 +430,7 @@ private SyntaxNode GetNodeContainingTargetNode(SyntaxNode matchingNode) ...@@ -430,7 +430,7 @@ private SyntaxNode GetNodeContainingTargetNode(SyntaxNode matchingNode)
return nameMemberCref; return nameMemberCref;
} }
var newParameters = PermuteDeclaration(nameMemberCref.Parameters.Parameters, signaturePermutation, CreateNewCrefParameterSyntax); var newParameters = UpdateDeclaration(nameMemberCref.Parameters.Parameters, signaturePermutation, CreateNewCrefParameterSyntax);
var newCrefParameterList = nameMemberCref.Parameters.WithParameters(newParameters); var newCrefParameterList = nameMemberCref.Parameters.WithParameters(newParameters);
return nameMemberCref.WithParameters(newCrefParameterList); return nameMemberCref.WithParameters(newCrefParameterList);
...@@ -524,13 +524,13 @@ private static ParameterSyntax CreateNewParameterSyntax(AddedParameter addedPara ...@@ -524,13 +524,13 @@ private static ParameterSyntax CreateNewParameterSyntax(AddedParameter addedPara
private static CrefParameterSyntax CreateNewCrefParameterSyntax(AddedParameter addedParameter) private static CrefParameterSyntax CreateNewCrefParameterSyntax(AddedParameter addedParameter)
=> SyntaxFactory.CrefParameter(type: SyntaxFactory.ParseTypeName(addedParameter.TypeName)).WithLeadingTrivia(SyntaxFactory.ElasticSpace); => SyntaxFactory.CrefParameter(type: SyntaxFactory.ParseTypeName(addedParameter.TypeName)).WithLeadingTrivia(SyntaxFactory.ElasticSpace);
private SeparatedSyntaxList<T> PermuteDeclaration<T>( private SeparatedSyntaxList<T> UpdateDeclaration<T>(
SeparatedSyntaxList<T> list, SeparatedSyntaxList<T> list,
SignatureChange updatedSignature, SignatureChange updatedSignature,
Func<AddedParameter, T> createNewParameterMethod) where T : SyntaxNode Func<AddedParameter, T> createNewParameterMethod) where T : SyntaxNode
{ {
var permuteDeclarationBase = base.PermuteDeclarationBase<T>(list, updatedSignature, createNewParameterMethod); var updatedDeclaration = base.UpdateDeclarationBase<T>(list, updatedSignature, createNewParameterMethod);
return SyntaxFactory.SeparatedList(permuteDeclarationBase.parameters, permuteDeclarationBase.separators); return SyntaxFactory.SeparatedList(updatedDeclaration.parameters, updatedDeclaration.separators);
} }
protected override T TransferLeadingWhitespaceTrivia<T>(T newArgument, SyntaxNode oldArgument) protected override T TransferLeadingWhitespaceTrivia<T>(T newArgument, SyntaxNode oldArgument)
......
...@@ -649,7 +649,7 @@ protected static int GetParameterIndex<TNode>(SeparatedSyntaxList<TNode> paramet ...@@ -649,7 +649,7 @@ protected static int GetParameterIndex<TNode>(SeparatedSyntaxList<TNode> paramet
return parameters.Count - 1; return parameters.Count - 1;
} }
protected (IEnumerable<T> parameters, IEnumerable<SyntaxToken> separators) PermuteDeclarationBase<T>( protected (IEnumerable<T> parameters, IEnumerable<SyntaxToken> separators) UpdateDeclarationBase<T>(
SeparatedSyntaxList<T> list, SeparatedSyntaxList<T> list,
SignatureChange updatedSignature, SignatureChange updatedSignature,
Func<AddedParameter, T> createNewParameterMethod) where T : SyntaxNode Func<AddedParameter, T> createNewParameterMethod) where T : SyntaxNode
......
...@@ -78,6 +78,9 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.ChangeSignature ...@@ -78,6 +78,9 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.ChangeSignature
SyntaxKind.SubNewStatement, SyntaxKind.SubNewStatement,
SyntaxKind.ConstructorBlock) SyntaxKind.ConstructorBlock)
Dim s_createNewParameterSyntaxDelegate As Func(Of AddedParameter, ParameterSyntax) = AddressOf CreateNewParameterSyntax
Dim s_createNewCrefParameterSyntaxDelegate As Func(Of AddedParameter, CrefSignaturePartSyntax) = AddressOf CreateNewCrefParameterSyntax
<ImportingConstructor> <ImportingConstructor>
Public Sub New() Public Sub New()
End Sub End Sub
...@@ -281,7 +284,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.ChangeSignature ...@@ -281,7 +284,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.ChangeSignature
If vbnode.IsKind(SyntaxKind.SubStatement) OrElse vbnode.IsKind(SyntaxKind.FunctionStatement) Then If vbnode.IsKind(SyntaxKind.SubStatement) OrElse vbnode.IsKind(SyntaxKind.FunctionStatement) Then
Dim method = DirectCast(vbnode, MethodStatementSyntax) Dim method = DirectCast(vbnode, MethodStatementSyntax)
Dim updatedParameters = PermuteDeclaration(method.ParameterList.Parameters, updatedSignature, Function(p) CreateNewParameterSyntax(p)) Dim updatedParameters = UpdateDeclaration(method.ParameterList.Parameters, updatedSignature, s_createNewParameterSyntaxDelegate)
Return method.WithParameterList(method.ParameterList.WithParameters(updatedParameters).WithAdditionalAnnotations(changeSignatureFormattingAnnotation)) Return method.WithParameterList(method.ParameterList.WithParameters(updatedParameters).WithAdditionalAnnotations(changeSignatureFormattingAnnotation))
End If End If
...@@ -289,7 +292,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.ChangeSignature ...@@ -289,7 +292,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.ChangeSignature
Dim eventStatement = DirectCast(vbnode, EventStatementSyntax) Dim eventStatement = DirectCast(vbnode, EventStatementSyntax)
If eventStatement.ParameterList IsNot Nothing Then If eventStatement.ParameterList IsNot Nothing Then
Dim updatedParameters = PermuteDeclaration(eventStatement.ParameterList.Parameters, updatedSignature, Function(p) CreateNewParameterSyntax(p)) Dim updatedParameters = UpdateDeclaration(eventStatement.ParameterList.Parameters, updatedSignature, s_createNewParameterSyntaxDelegate)
eventStatement = eventStatement.WithParameterList(eventStatement.ParameterList.WithParameters(updatedParameters).WithAdditionalAnnotations(changeSignatureFormattingAnnotation)) eventStatement = eventStatement.WithParameterList(eventStatement.ParameterList.WithParameters(updatedParameters).WithAdditionalAnnotations(changeSignatureFormattingAnnotation))
End If End If
...@@ -300,14 +303,14 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.ChangeSignature ...@@ -300,14 +303,14 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.ChangeSignature
Dim eventBlock = DirectCast(vbnode, EventBlockSyntax) Dim eventBlock = DirectCast(vbnode, EventBlockSyntax)
If eventBlock.EventStatement.ParameterList IsNot Nothing Then If eventBlock.EventStatement.ParameterList IsNot Nothing Then
Dim updatedParameters = PermuteDeclaration(eventBlock.EventStatement.ParameterList.Parameters, updatedSignature, Function(p) CreateNewParameterSyntax(p)) Dim updatedParameters = UpdateDeclaration(eventBlock.EventStatement.ParameterList.Parameters, updatedSignature, s_createNewParameterSyntaxDelegate)
Return eventBlock.WithEventStatement(eventBlock.EventStatement.WithParameterList(eventBlock.EventStatement.ParameterList.WithParameters(updatedParameters).WithAdditionalAnnotations(changeSignatureFormattingAnnotation))) Return eventBlock.WithEventStatement(eventBlock.EventStatement.WithParameterList(eventBlock.EventStatement.ParameterList.WithParameters(updatedParameters).WithAdditionalAnnotations(changeSignatureFormattingAnnotation)))
End If End If
Dim raiseEventAccessor = eventBlock.Accessors.FirstOrDefault(Function(a) a.IsKind(SyntaxKind.RaiseEventAccessorBlock)) Dim raiseEventAccessor = eventBlock.Accessors.FirstOrDefault(Function(a) a.IsKind(SyntaxKind.RaiseEventAccessorBlock))
If raiseEventAccessor IsNot Nothing Then If raiseEventAccessor IsNot Nothing Then
If raiseEventAccessor.BlockStatement.ParameterList IsNot Nothing Then If raiseEventAccessor.BlockStatement.ParameterList IsNot Nothing Then
Dim updatedParameters = PermuteDeclaration(raiseEventAccessor.BlockStatement.ParameterList.Parameters, updatedSignature, Function(p) CreateNewParameterSyntax(p)) Dim updatedParameters = UpdateDeclaration(raiseEventAccessor.BlockStatement.ParameterList.Parameters, updatedSignature, s_createNewParameterSyntaxDelegate)
Dim updatedRaiseEventAccessor = raiseEventAccessor.WithAccessorStatement(raiseEventAccessor.AccessorStatement.WithParameterList(raiseEventAccessor.AccessorStatement.ParameterList.WithParameters(updatedParameters).WithAdditionalAnnotations(changeSignatureFormattingAnnotation))) Dim updatedRaiseEventAccessor = raiseEventAccessor.WithAccessorStatement(raiseEventAccessor.AccessorStatement.WithParameterList(raiseEventAccessor.AccessorStatement.ParameterList.WithParameters(updatedParameters).WithAdditionalAnnotations(changeSignatureFormattingAnnotation)))
eventBlock = eventBlock.WithAccessors(eventBlock.Accessors.Remove(raiseEventAccessor).Add(updatedRaiseEventAccessor)) eventBlock = eventBlock.WithAccessors(eventBlock.Accessors.Remove(raiseEventAccessor).Add(updatedRaiseEventAccessor))
End If End If
...@@ -340,7 +343,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.ChangeSignature ...@@ -340,7 +343,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.ChangeSignature
If vbnode.IsKind(SyntaxKind.SubNewStatement) Then If vbnode.IsKind(SyntaxKind.SubNewStatement) Then
Dim constructor = DirectCast(vbnode, SubNewStatementSyntax) Dim constructor = DirectCast(vbnode, SubNewStatementSyntax)
Dim newParameters = PermuteDeclaration(constructor.ParameterList.Parameters, updatedSignature, Function(p) CreateNewParameterSyntax(p)) Dim newParameters = UpdateDeclaration(constructor.ParameterList.Parameters, updatedSignature, s_createNewParameterSyntaxDelegate)
Return constructor.WithParameterList(constructor.ParameterList.WithParameters(newParameters).WithAdditionalAnnotations(changeSignatureFormattingAnnotation)) Return constructor.WithParameterList(constructor.ParameterList.WithParameters(newParameters).WithAdditionalAnnotations(changeSignatureFormattingAnnotation))
End If End If
...@@ -368,7 +371,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.ChangeSignature ...@@ -368,7 +371,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.ChangeSignature
If vbnode.IsKind(SyntaxKind.PropertyStatement) Then If vbnode.IsKind(SyntaxKind.PropertyStatement) Then
Dim propertyStatement = DirectCast(vbnode, PropertyStatementSyntax) Dim propertyStatement = DirectCast(vbnode, PropertyStatementSyntax)
Dim newParameters = PermuteDeclaration(propertyStatement.ParameterList.Parameters, updatedSignature, Function(p) CreateNewParameterSyntax(p)) Dim newParameters = UpdateDeclaration(propertyStatement.ParameterList.Parameters, updatedSignature, s_createNewParameterSyntaxDelegate)
Return propertyStatement.WithParameterList(propertyStatement.ParameterList.WithParameters(newParameters).WithAdditionalAnnotations(changeSignatureFormattingAnnotation)) Return propertyStatement.WithParameterList(propertyStatement.ParameterList.WithParameters(newParameters).WithAdditionalAnnotations(changeSignatureFormattingAnnotation))
End If End If
...@@ -380,7 +383,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.ChangeSignature ...@@ -380,7 +383,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.ChangeSignature
Return crefReference Return crefReference
End If End If
Dim newParameters = PermuteDeclaration(crefReference.Signature.ArgumentTypes, updatedSignature, Function(p) CreateNewCrefParameterSyntax(p)) Dim newParameters = UpdateDeclaration(crefReference.Signature.ArgumentTypes, updatedSignature, s_createNewCrefParameterSyntaxDelegate)
Return crefReference.WithSignature(crefReference.Signature.WithArgumentTypes(newParameters)) Return crefReference.WithSignature(crefReference.Signature.WithArgumentTypes(newParameters))
End If End If
...@@ -393,7 +396,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.ChangeSignature ...@@ -393,7 +396,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.ChangeSignature
Return vbnode Return vbnode
End If End If
Dim newParameters = PermuteDeclaration(lambda.SubOrFunctionHeader.ParameterList.Parameters, updatedSignature, Function(p) CreateNewParameterSyntax(p)) Dim newParameters = UpdateDeclaration(lambda.SubOrFunctionHeader.ParameterList.Parameters, updatedSignature, s_createNewParameterSyntaxDelegate)
Dim newBegin = lambda.SubOrFunctionHeader.WithParameterList(lambda.SubOrFunctionHeader.ParameterList.WithParameters(newParameters).WithAdditionalAnnotations(changeSignatureFormattingAnnotation)) Dim newBegin = lambda.SubOrFunctionHeader.WithParameterList(lambda.SubOrFunctionHeader.ParameterList.WithParameters(newParameters).WithAdditionalAnnotations(changeSignatureFormattingAnnotation))
Return lambda.WithSubOrFunctionHeader(newBegin) Return lambda.WithSubOrFunctionHeader(newBegin)
End If End If
...@@ -407,7 +410,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.ChangeSignature ...@@ -407,7 +410,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.ChangeSignature
Return vbnode Return vbnode
End If End If
Dim newParameters = PermuteDeclaration(lambda.SubOrFunctionHeader.ParameterList.Parameters, updatedSignature, Function(p) CreateNewParameterSyntax(p)) Dim newParameters = UpdateDeclaration(lambda.SubOrFunctionHeader.ParameterList.Parameters, updatedSignature, s_createNewParameterSyntaxDelegate)
Dim newBegin = lambda.SubOrFunctionHeader.WithParameterList(lambda.SubOrFunctionHeader.ParameterList.WithParameters(newParameters).WithAdditionalAnnotations(changeSignatureFormattingAnnotation)) Dim newBegin = lambda.SubOrFunctionHeader.WithParameterList(lambda.SubOrFunctionHeader.ParameterList.WithParameters(newParameters).WithAdditionalAnnotations(changeSignatureFormattingAnnotation))
Return lambda.WithSubOrFunctionHeader(newBegin) Return lambda.WithSubOrFunctionHeader(newBegin)
End If End If
...@@ -415,7 +418,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.ChangeSignature ...@@ -415,7 +418,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.ChangeSignature
If vbnode.IsKind(SyntaxKind.DelegateSubStatement) OrElse If vbnode.IsKind(SyntaxKind.DelegateSubStatement) OrElse
vbnode.IsKind(SyntaxKind.DelegateFunctionStatement) Then vbnode.IsKind(SyntaxKind.DelegateFunctionStatement) Then
Dim delegateStatement = DirectCast(vbnode, DelegateStatementSyntax) Dim delegateStatement = DirectCast(vbnode, DelegateStatementSyntax)
Dim newParameters = PermuteDeclaration(delegateStatement.ParameterList.Parameters, updatedSignature, Function(p) CreateNewParameterSyntax(p)) Dim newParameters = UpdateDeclaration(delegateStatement.ParameterList.Parameters, updatedSignature, s_createNewParameterSyntaxDelegate)
Return delegateStatement.WithParameterList(delegateStatement.ParameterList.WithParameters(newParameters).WithAdditionalAnnotations(changeSignatureFormattingAnnotation)) Return delegateStatement.WithParameterList(delegateStatement.ParameterList.WithParameters(newParameters).WithAdditionalAnnotations(changeSignatureFormattingAnnotation))
End If End If
...@@ -507,24 +510,20 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.ChangeSignature ...@@ -507,24 +510,20 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.ChangeSignature
Return SyntaxFactory.SeparatedList(newArguments.Select(Function(a) CType(DirectCast(a, UnifiedArgumentSyntax), ArgumentSyntax)), GetSeparators(arguments, numSeparatorsToSkip)) Return SyntaxFactory.SeparatedList(newArguments.Select(Function(a) CType(DirectCast(a, UnifiedArgumentSyntax), ArgumentSyntax)), GetSeparators(arguments, numSeparatorsToSkip))
End Function End Function
Private Function PermuteDeclaration(Of T As SyntaxNode)( Private Function UpdateDeclaration(Of T As SyntaxNode)(
parameterList As SeparatedSyntaxList(Of T), parameterList As SeparatedSyntaxList(Of T),
updatedSignature As SignatureChange, updatedSignature As SignatureChange,
createNewParameterMethod As Func(Of AddedParameter, T)) As SeparatedSyntaxList(Of T) createNewParameterMethod As Func(Of AddedParameter, T)) As SeparatedSyntaxList(Of T)
Dim basePermuteDeclaration = PermuteDeclarationBase(parameterList, updatedSignature, createNewParameterMethod) Dim updatedDeclaration = UpdateDeclarationBase(parameterList, updatedSignature, createNewParameterMethod)
Return SyntaxFactory.SeparatedList(basePermuteDeclaration.parameters, basePermuteDeclaration.separators) Return SyntaxFactory.SeparatedList(updatedDeclaration.parameters, updatedDeclaration.separators)
End Function End Function
Private Shared Function CreateNewParameterSyntax(addedParameter As AddedParameter) As ParameterSyntax Private Shared Function CreateNewParameterSyntax(addedParameter As AddedParameter) As ParameterSyntax
Return CreateNewParameterSyntax(addedParameter, skipType:=False)
End Function
Private Shared Function CreateNewParameterSyntax(addedParameter As AddedParameter, skipType As Boolean) As ParameterSyntax
Return SyntaxFactory.Parameter( Return SyntaxFactory.Parameter(
attributeLists:=SyntaxFactory.List(Of AttributeListSyntax)(), attributeLists:=SyntaxFactory.List(Of AttributeListSyntax)(),
modifiers:=SyntaxFactory.TokenList(), modifiers:=SyntaxFactory.TokenList(),
identifier:=SyntaxFactory.ModifiedIdentifier(addedParameter.ParameterName), identifier:=SyntaxFactory.ModifiedIdentifier(addedParameter.ParameterName),
asClause:=SyntaxFactory.SimpleAsClause(If(skipType, Nothing, SyntaxFactory.ParseTypeName(addedParameter.TypeName).WithTrailingTrivia(SyntaxFactory.ElasticSpace))), asClause:=SyntaxFactory.SimpleAsClause(SyntaxFactory.ParseTypeName(addedParameter.TypeName).WithTrailingTrivia(SyntaxFactory.ElasticSpace)),
[default]:=Nothing) [default]:=Nothing)
End Function End Function
...@@ -667,7 +666,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.ChangeSignature ...@@ -667,7 +666,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.ChangeSignature
SyntaxFactory.List(extraNodeList.AsEnumerable())) SyntaxFactory.List(extraNodeList.AsEnumerable()))
extraDocComments = extraDocComments.WithLeadingTrivia(SyntaxFactory.DocumentationCommentExteriorTrivia("''' ")). extraDocComments = extraDocComments.WithLeadingTrivia(SyntaxFactory.DocumentationCommentExteriorTrivia("''' ")).
WithTrailingTrivia(node.GetTrailingTrivia()). WithTrailingTrivia(node.GetTrailingTrivia()).
WithTrailingTrivia(SyntaxFactory.EndOfLine(document.Project.Solution.Workspace.Options.GetOption(FormattingOptions.NewLine, LanguageNames.CSharp)), WithTrailingTrivia(SyntaxFactory.EndOfLine(document.Project.Solution.Workspace.Options.GetOption(FormattingOptions.NewLine, LanguageNames.VisualBasic)),
lastWhiteSpaceTrivia) lastWhiteSpaceTrivia)
Dim newTrivia = SyntaxFactory.Trivia(extraDocComments) Dim newTrivia = SyntaxFactory.Trivia(extraDocComments)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册